2.1 SDO_GEORASTERオブジェクト型

GeoRasterオブジェクト・リレーショナル・モデルでは、ラスター・イメージまたはグリッド・オブジェクトが、ユーザーが定義した表のSDO_GEORASTERオブジェクト型の1列に、1行で格納されます。1つ以上のSDO_GEORASTER型の列が含まれる表は、GeoRaster表と呼ばれます。

SDO_GEORASTERオブジェクト型の定義は次のとおりです。

CREATE TYPE sdo_georaster AS OBJECT (
 rasterType       NUMBER,
 spatialExtent    SDO_GEOMETRY,
 rasterDataTable  VARCHAR2(128),
 rasterID         NUMBER,
 metadata         XMLType);

この項では、各SDO_GEORASTER属性の意味について説明します。

2.1.1 rasterType属性

rasterType属性には、[d][b][t][gt]という書式の5桁の値を指定する必要があります。

  • [d]は、空間次元数を示します。今回のリリースでは、2を指定する必要があります。

  • [b]は、バンドまたはレイヤーの情報を示します。0(ゼロ)は、バンドまたはレイヤーが1つであることを意味します。1は、バンドまたはレイヤーが1つまたは複数であることを意味します。このフィールドにはバンドまたはレイヤーの合計数を指定するのではないことに注意してください。(バンドとレイヤーの詳細は、「バンド、レイヤーおよびメタデータ」を参照してください。)

  • [t]は、将来使用するために予約されており、0 (ゼロ)を指定する必要があります。

  • [gt]は、2桁のGeoRaster型を示し、次の値のいずれかを指定する必要があります。

    [gt]の値 意味

    00

    Oracleで使用するために予約されています。

    01

    任意のGeoRaster型です。今回のリリースでは、この値のみがサポートされています。この値を指定すると、GeoRasterで、将来のリリースで型が実装された場合に、その特定の型に関連付けられた制限が適用されなくなります。

    02-50

    Oracleで使用するために予約されています。

    51-99

    将来のリリースで顧客が使用するために予約されています。

たとえば、20001のRasterType値は、次のことを意味します。

  • 2次元データである

  • 1つのバンド(レイヤー)である

  • 任意のGeoRaster型である

2.1.2 spatialExtent属性

spatialExtent属性は、ラスター・データに関連付けられた空間エクステント(フットプリント)を表します。空間エクステントは、SDO_GEOMETRY型のOracle Spatialジオメトリです。空間エクステント・ジオメトリは、必ずしもGeoRasterモデル空間内ではなく、任意の座標系に存在できます。また、ジオメトリを指定したSQLのUPDATE文で直接更新できます。ただし、空間エクステント・ジオメトリがGeoRasterオブジェクトのモデル(地上)空間内に存在するのは、GeoRasterオブジェクトが地理参照されている場合で、かつSDO_GEOR.generateSpatialExtentファンクションのコール、またはGeoRasterクライアント側ローダー(GeoRasterツール: ローダー、ビューア、エクスポータを参照)により、空間エクステント・ジオメトリを生成する場合です。

SDO_CS.transformをコールすることにより、サポートされている他のすべての座標系に空間エクステント・ジオメトリを変換できます。SRIDの値がNULLまたは0 (ゼロ)の場合、空間エクステントは、セル空間ではなくNULLに設定されます。SDO_GEOMETRYデータ型の詳細は、『Oracle Spatial開発者ガイド』を参照してください。

GeoRasterの空間エクステントは、通常、GeoRaster列に空間Rツリー索引を作成する際に使用されます。たとえば、すべてのGeoRasterオブジェクトが異なるローカル投影に存在する場合、すべての空間エクステントに対して測地SRIDを使用でき、全地球ベースの空間索引をGeoRaster表に作成して、GeoRasterオブジェクトの空間検索をグローバルに実行できます。空間索引の作成によってGeoRasterアプリケーションのパフォーマンスが向上する可能性があるため、ジオメトリは、XMLのmetadata属性(「metadata属性」を参照)に含まれるのではなく、spatialExtent属性に関連付けられます。GeoRasterデータの索引付けの詳細は、「GeoRasterオブジェクトの索引付け」を参照してください。

2.1.3 rasterDataTable属性

rasterDataTable属性は、ラスター・データ表の名前を識別します。ラスター・データ表は、SDO_RASTER型のオブジェクト表か、含まれるすべての列がオブジェクト型SDO_RASTERによって定義されている、リレーショナル表である必要があります。この表には、格納されている各ラスター・ブロックに対して1つの行が含まれます。ラスター・データ表は作成および(必要に応じて)削除する必要があります。この表の行を直接変更することはできませんが、この表を問い合せてラスター・データにアクセスすることはできます。

この属性は、引用符で囲まれていない有効な識別子で、ピリオドで区切る必要はありません。また、英数字はすべて大文字であることが必要です。

ラスター・データ表およびSDO_RASTER型の詳細は、「SDO_RASTERオブジェクト型およびラスター・データ表」を参照してください。

2.1.4 rasterID属性

rasterID属性の値は、ラスター・データ表の行に格納され、GeoRasterオブジェクトに属する行を識別します。rasterDataTable属性とrasterID属性の組合せによって、データベース内でGeoRasterオブジェクトが一意に識別されます。各GeoRasterオブジェクトには1つのラスター・データ表が存在しますが、1つのラスター・データ表に複数のGeoRasterオブジェクトのデータが含まれる場合があります。

rasterIDおよびrasterDataTable属性は新しいGeoRasterオブジェクトに指定できます。ただし、それぞれの組合せがデータベース内で一意である必要があります。これらの値を指定しない場合、SDO_GEOR.initおよびSDO_GEOR.createBlankファンクションによって値が自動的に生成されます。

2.1.5 metadata属性

metadata属性には、オラクル社によって定義されたGeoRasterメタデータが含まれます。このメタデータは、GeoRasterメタデータのXMLスキーマによって記述されます(「GeoRasterメタデータのXMLスキーマ」を参照。)すべてのGeoRasterオブジェクトのメタデータは、このXMLスキーマに対して検証する必要があります。また、SDO_GEOR.validateGeoRasterファンクションを使用して検証する必要もあります。このXMLスキーマでは定義されない追加の制限が、このファンクションによって適用されます。

GeoRasterメタデータのデフォルトの記憶域オプションは、バイナリXMLです。