2.2 SDO_RASTERオブジェクト型およびラスター・データ表

GeoRasterオブジェクト・リレーショナル・モデルでは、ラスター・データ表(RDT)使用して、ラスター・イメージ内のすべてのセル・データが格納されます。

GeoRasterオブジェクトのセル・データはブロック化され、各ブロックは1つの行としてRDTに格納されます。この表はSDO_GEORASTERオブジェクトのrasterDataTable属性で指定します(「rasterDataTable属性」を参照)。セル・データを格納する前にRDTを作成する必要があります。

RDTは、SDO_RASTERオブジェクト型の表として、または含まれるすべての列がオブジェクト型SDO_RASTERによって定義されているリレーショナル表として定義されたオブジェクト表です。RDTの名前は、「ラスター・データ表」での説明のとおり、データベース内で一意である必要があります。

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

CREATE TYPE sdo_raster AS OBJECT (
 rasterID           NUMBER,
 pyramidLevel       NUMBER,
 bandBlockNumber    NUMBER,
 rowBlockNumber     NUMBER,
 columnBlockNumber  NUMBER,
 blockMBR           SDO_GEOMETRY,
 rasterBlock        BLOB);

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

2.2.1 rasterID属性

SDO_RASTERオブジェクトのrasterID属性には、関連付けられたSDO_GEORASTERオブジェクトのrasterIDの値と一致する数値を指定する必要があります。(SDO_GEORASTERオブジェクトのrasterID属性については、「rasterID属性」を参照してください。)これらの数値が一致することによって、特定のGeoRasterオブジェクトに属しているラスター・ブロックが識別されます。

2.2.2 pyramidLevel属性

pyramidLevel属性は、セルの特定のブロックのピラミッド・レベルを識別します。ピラミッド・レベルには、0(ゼロ)または任意の正の整数を指定します。ピラミッド・レベルは、必要な記憶域が小さい低解像度のイメージを作成するために使用されます。値が0 (ゼロ)のピラミッド・レベルは、元のラスター・データを示します(この場合、イメージの解像度は低下せず、必要な記憶域は変化しません)。値が0 (ゼロ)より大きくなるほど、イメージの解像度のレベルが低くなり、必要な記憶域が小さくなります。ピラミッドの詳細は、「ピラミッド」を参照してください。

この属性とbandBlockNumber属性(「bandBlockNumber属性」を参照)は、ビットマップ・マスクおよびビットマップ・マスク・ピラミッドの指定にも使用します。ビットマップ・マスク、ビットマップ・マスク・ピラミッド、およびpyramidLevel属性とbandBlockNumber属性の使用方法は、「ビットマップ・マスク」を参照してください。

2.2.3 bandBlockNumber属性

bandBlockNumber属性は、バンド次元でのブロック番号を識別します。バンドとレイヤーの詳細は、「バンド、レイヤーおよびメタデータ」を参照してください。ビットマップ・マスクおよびビットマップ・マスク・ピラミッドでのbandBlockNumber属性の使用方法は、「ビットマップ・マスク」を参照してください。

2.2.4 rowBlockNumber属性

rowBlockNumber属性は、行次元でのブロック番号を識別します。

2.2.5 columnBlockNumber属性

columnBlockNumber属性は、列次元でのブロック番号を識別します。

2.2.6 blockMBR属性

blockMBR属性は、特定のブロックの最小境界矩形(MBR)の(SDO_GEOMETRY型の)ジオメトリです。ジオメトリはセル空間に存在し(SRID値はNULL)、すべての座標は整数になります。座標は、このブロックに格納された最小行と最小列、および最大行と最大列を表します。

2.2.7 rasterBlock属性

rasterBlock属性には、特定のブロックのすべてのラスター・セル・データが含まれます。また、GeoRasterオブジェクトのビットマップ・マスクの格納にも使用されます。rasterBlock属性は、BLOB型です。