2 GeoRasterのデータ型および関連構造

GeoRasterのオブジェクト・リレーショナル実装は、データおよびシステム・データを格納するための一連のオブジェクト・データ型で構成されます。

イメージまたはグリッド・ラスター・データはそれぞれSDO_GEORASTER型の列に格納され、そのラスター・データ内のブロックはSDO_RASTER型のラスター・データ表に格納されます(「GeoRasterの物理記憶域」を参照)。この章の内容は次のとおりです。

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 and Graphジオメトリです。空間エクステント・ジオメトリは、必ずしもGeoRasterモデル空間内ではなく、任意の座標系に存在できます。また、ジオメトリを指定したSQLのUPDATE文で直接更新できます。ただし、空間エクステント・ジオメトリがGeoRasterオブジェクトのモデル(地上)空間内に存在するのは、GeoRasterオブジェクトが地理参照されていて、空間エクステント・ジオメトリを生成する際に、SDO_GEOR.generateSpatialExtentファンクションをコールしたか、あるいはspatialExtent=TRUESDO_GEOR.importFromプロシージャまたはGeoRasterのクライアント側ローダー(「GeoRasterツール: ローダー、ビューア、エクスポータ」を参照)の記憶域パラメータとして指定した場合です。

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

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です。

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型です。

2.3 他のGeoRasterの型

GeoRasterは、他のデータ型も提供します。

GeoRasterには、SDO_GEORASTER、SDO_RASTER、SDO_RANGE_ARRAYおよびSDO_RANGEに加えて、特定の種類の操作に使用する他のオブジェクト型とコレクション型がいくつか用意されています。(表の列を定義する場合などに)データベースのストレージで使用されるSDO_GEORASTER型およびSDO_RASTER型とは異なり、この項で説明する型は、今回のリリースのGeoRaster PL/SQL APIでのみ使用されます。

2.3.1 SDO_GEOR_HISTOGRAMオブジェクト型

GeoRasterでは、XMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)を使用してヒストグラムがGeoRasterメタデータに格納されます。SDO_GEOR_HISTOGRAMオブジェクト型は、GeoRasterオブジェクトまたはレイヤーのヒストグラム・データを含めるためにPL/SQL API内で使用されます。レイヤーは、ヒストグラム・データ構造が同じです。各セルは値を持ち、各セルの値または値の範囲に対して、その値を持つセルまたはその範囲内の値を持つセルが多数存在する可能性があります。

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

CREATE TYPE sdo_geor_histogram AS OBJECT(
  cellValue  SDO_NUMBER_ARRAY,
  count      SDO_NUMBER_ARRAY);

表2-1に、SDO_GEOR_HISTOGRAMオブジェクト型の属性の説明を示します。cellValuecount配列の長さは同じである必要があります。

表2-1 SDO_GEOR_HISTOGRAMオブジェクト型の属性

属性 説明

cellValue

セル値の配列。

count

各セル値またはセル値の範囲に対応するセルの数。

ヒストグラムには、セル値(および暗黙的な値の範囲)、および各セル値または各セル値の範囲に関連するセルの合計数が含まれます。たとえば、(cellValue1, count1)と(cellValue2, count2)がヒストグラム内で昇順に隣接する2つのエントリである場合、暗黙的な値の範囲は(cellValue1, cellValue2)で、この範囲に含まれるセルの合計数はcount1です。セル値の範囲には、常に下限が含まれ、上限は含まれません。各範囲のサイズが同一である必要はありません。この例の場合は、cellValue1以上かつcellValue2未満が範囲になります。セル深度の下限(たとえば、1ビットから8ビットまでの整数)では、通常、セル値の範囲はセル値と同じです。

2.3.2 SDO_GEOR_HISTOGRAM_ARRAYコレクション型

SDO_GEOR_HISTOGRAM_ARRAYコレクション型は、SDO_GEOR_HISTOGRAMオブジェクトの配列(コレクション)を格納するために使用されます。

SDO_GEOR_HISTOGRAM_ARRAYコレクション型の定義は次のとおりです。

CREATE TYPE sdo_geor_histogram_array AS 
  VARRAY(10485760) OF SDO_GEOR_HISTOGRAM;

2.3.3 SDO_GEOR_COLORMAPオブジェクト型

GeoRasterでは、XMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)を使用してカラー情報がGeoRasterメタデータに格納されます。SDO_GEOR_COLORMAPオブジェクト型は、カラーマップ情報を含めるためにPL/SQL APIで使用されます。カラーマップ情報とは、特定の値を持つセルまたは特定の値の範囲に含まれるセルの表示に使用される色の、赤、緑、青および(オプション)アルファの値を識別するための疑似カラー情報です。カラーマップは、疑似カラー表またはパレット表とも呼ばれます。GeoRasterのデフォルトのカラーマップは、sRGB ColorSpaceです。これは、標準のRGB色空間として勧告提案されています。詳細は、次のURLを参照してください。

http://www.w3.org/Graphics/Color/sRGB.html

赤、緑、青およびアルファの値はすべて、0から255の、8ビットの符号なし整数になります。

アルファは、不透明度とも呼ばれます。アルファ値が255の場合は色が完全に不透明であることを意味し、アルファ値が0 (ゼロ)の場合は色が完全に透明であることを意味します。色構成要素値にアルファ値を掛けることはできません。

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

CREATE TYPE sdo_geor_colormap AS OBJECT(
  cellValue  SDO_NUMBER_ARRAY,
  red        SDO_NUMBER_ARRAY,
  green      SDO_NUMBER_ARRAY,
  blue       SDO_NUMBER_ARRAY,
  alpha      SDO_NUMBER_ARRAY);

表2-2に、SDO_GEOR_COLORMAPオブジェクト型の属性の説明を示します。各属性は、数値の配列です。各配列の長さは同じで、各配列の同じ索引の値が相互に対応している必要があります。各cellValue値は、GeoRasterオブジェクトのcellDepth値と一貫性がある必要があります。

カラーマップには、セル値(および暗黙的な値の範囲)と、各セル値または各セル値の範囲に関連する赤、緑、青またはアルファの値が含まれます。たとえば、(cellValue1, red1, green1, blue1, alpha1)と(cellValue2, red2, green2, blue2, alpha2)がカラーマップ内で昇順に隣接する2つのエントリである場合、暗黙的な値の範囲は(cellValue1, cellValue2)で、この範囲に含まれるすべてのセルに関連付けられる色構成要素は(red1, green1, blue1, alpha1)です。セル値の範囲には、常に下限が含まれ、上限は含まれません。各範囲のサイズが同一である必要はありません。この例の場合は、cellValue1以上かつcellValue2未満が範囲になります。セル深度の下限(たとえば、1ビットから8ビットまでの整数)では、通常、セル値の範囲はセル値と同じです。

表2-2 SDO_GEOR_COLORMAPオブジェクト型の属性

属性 説明

cellValue

セル値の配列。値は昇順に格納する必要があります。

red

cellValueに値または値の範囲を持つセルの、疑似カラー表示用の赤の構成要素値の配列。0から255の整数値を指定する必要があります。

green

cellValueに値または値の範囲を持つセルの、疑似カラー表示用の緑の構成要素値の配列。0から255の整数値を指定する必要があります。

blue

cellValueに値または値の範囲を持つセルの、疑似カラー表示用の青の構成要素値の配列。0から255の整数値を指定する必要があります。

alpha

cellValueに値または値の範囲を持つセルの、疑似カラー表示用のアルファの構成要素値の配列。0から255の整数値を指定する必要があります。

2.3.4 SDO_GEOR_GRAYSCALEオブジェクト型

GeoRasterでは、XMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)を使用してグレースケール情報がGeoRasterメタデータに格納されます。SDO_GEOR_GRAYSCALEオブジェクト型は、グレースケール値の識別用グレースケール情報を含めるためにPL/SQL APIで使用されます。グレースケール値は、特定の値を持つセルまたは特定の値の範囲に含まれるセルを表示する際に使用されます。グレースケール表のセル値は、このグレースケール表を使用して線形比率で伸縮できるため、元のラスター・データを適切に表示できます。グレースケール表の値は、0から255の、8ビットの符号なしの整数になります。グレースケール表は、コントラスト表または参照表とも呼ばれます。

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

CREATE TYPE sdo_geor_grayscale AS OBJECT(
  cellValue  SDO_NUMBER_ARRAY,
  gray       SDO_NUMBER_ARRAY);

表2-3に、SDO_GEOR_GRAYSCALEオブジェクト型の属性の説明を示します。cellValuegray配列の長さは同じである必要があります。各cellValue値は、GeoRasterオブジェクトのcellDepth値と一貫性がある必要があります。

グレースケールには、セル値(および暗黙的な値の範囲)、および各セル値または各セル値の範囲に関連するグレー値が含まれます。たとえば、(cellValue1, gray1)と(cellValue2, gray2)がグレースケール表内で昇順に隣接する2つのエントリである場合、暗黙的な値の範囲は(cellValue1, cellValue2)で、この範囲に含まれるすべてのセルに関連付けられたグレー色はgray1です。セル値の範囲には、常に下限が含まれ、上限は含まれません。各範囲のサイズが同一である必要はありません。この例の場合は、cellValue1以上かつcellValue2未満が範囲になります。セル深度の下限(たとえば、1ビットから8ビットまでの整数)では、通常、セル値の範囲はセル値と同じです。

表2-3 SDO_GEOR_GRAYSCALEオブジェクト型の属性

属性 説明

cellValue

セル値の配列。値は昇順に格納する必要があります。

gray

cellValueに値または値の範囲を持つセルの、グレースケール表示用のグレーの構成要素値の配列。0から255の整数値を指定する必要があります。

2.3.5 SDO_RASTERSETコレクション型

SDO_RASTERSETコレクション型は、ラスター・データ・ブロック(1つまたは複数のブロック、全体またはサブセット)を問い合せるテーブル・ファンクションの戻り型として使用されます。

SDO_RASTERSETコレクション型の定義は次のとおりです。

CREATE TYPE sdo_rasterset AS TABLE of SDO_RASTER;

2.3.6 SDO_GEOR_SRSオブジェクト型

GeoRasterでは、XMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)を使用して空間参照システム(SRS)情報がGeoRasterメタデータに格納されます。SDO_GEOR_SRSオブジェクト型は、GeoRasterオブジェクトの空間参照に関する情報を含めるためにPL/SQL APIで使用されます。メタデータとオブジェクト型には同じ情報が含まれます。オブジェクト型を使用して、GeoRasterオブジェクトからのSRS情報を取得したり、GeoRasterオブジェクトにSRS情報をロードして更新できます。

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

CREATE TYPE sdo_geor_srs AS OBJECT (
   isReferenced       VARCHAR2(5),
   isRectified        VARCHAR2(5),
   isOrthoRectified   VARCHAR2(5),
   srid               NUMBER,
   spatialResolution  SDO_NUMBER_ARRAY,
   spatialTolerance   NUMBER,
   coordLocation      NUMBER,
   rowOff             NUMBER,
   columnOff          NUMBER,
   xOff               NUMBER,
   yOff               NUMBER,
   zOff               NUMBER,
   rowScale           NUMBER,
   columnScale        NUMBER,
   xScale             NUMBER,
   yScale             NUMBER,
   zScale             NUMBER,
   rowRMS             NUMBER,
   columnRMS          NUMBER,
   totalRMS           NUMBER,
   rowNumerator       SDO_NUMBER_ARRAY,
   rowDenominator     SDO_NUMBER_ARRAY,
   columnNumerator    SDO_NUMBER_ARRAY,
   columnDenominator  SDO_NUMBER_ARRAY,
   xRMS               NUMBER,
   yRMS               NUMBER,
   zRMS               NUMBER,
   modelTotalRMS      NUMBER,
   GCPgeoreferenceModel SDO_GEOR_GCPGEOREFTYPE);

表2-4に、SDO_GEOR_SRSオブジェクト型の属性の説明を示します。

表2-4 SDO_GEOR_SRSオブジェクト型の属性

属性 説明

isReferenced

GeoRasterオブジェクトが地理参照されている場合はTRUE、地理参照されていない場合はFALSEを指定します。

isRectified

GeoRasterオブジェクトが幾何補正および地理参照されている場合はTRUE、幾何補正されていない場合はFALSEを指定します。

isOrthoRectified

GeoRasterオブジェクトがオルソ補正、幾何補正および地理参照されている場合はTRUE、オルソ補正されていない場合はFALSEを指定します。

srid

モデル(地上)座標系のSRID値を指定します。

spatialResolution

空間解像度の値(空間次元ごとに1つの値を指定した数値の配列)を指定します。各値は、セルの空間次元によって表現されるデータ領域に関連付けられた測定単位の数を示します。

spatialTolerance

精度を制御するための許容差を指定します。

coordLocation

モデル座標位置は、左上角(coordLocation=1)または中心(coordLocation=0)のいずれかを表すセル空間の種類を定義します。モデル空間およびセル(ラスター)空間の詳細は、「GeoRasterデータ・モデル」を参照してください。

rowOff

行のオフセット値

columnOff

列のオフセット値

xOff

X座標のオフセット値

yOff

Y座標のオフセット値

zOff

Z座標のオフセット値

rowScale

行のスケール変更係数値

columnScale

列のスケール変更係数値

xScale

X座標のスケール変更係数値

yScale

Y座標のスケール変更係数値

zScale

Z座標のスケール変更係数値

rowRMS

行次元の精度。GCPを使用してSDO_GEOR.georeferenceをコールすると、基準点を使用して計算されます。

columnRMS

列次元の精度。GCPを使用してSDO_GEOR.georeferenceをコールすると、基準点を使用して計算されます。

totalRMS

行と列の合計精度。GCPを使用してSDO_GEOR.georeferenceをコールすると、基準点を使用して計算されます。

rowNumerator

pTypenVarsordernCoefficientsおよび行多項式の分子のすべての係数を指定します。ここでpTypeは1または2、nVarsは0、2または3、orderは0以上5以下です。nCoefficientspTypenVarsorderから導出されます。多項式については、「関数フィッティング地理参照モデル」を参照してください。

rowDenominator

pTypenVarsordernCoefficientsおよび行多項式の分母のすべての係数を指定します。ここでpTypeは1または2、nVarsは0、2または3、orderは0以上5以下です。nCoefficientspTypenVarsorderから導出されます。多項式については、「関数フィッティング地理参照モデル」を参照してください。

columnNumerator

pTypenVarsordernCoefficientsおよび列多項式の分子のすべての係数を指定します。ここでpTypeは1または2、nVarsは0、2または3、orderは0以上5以下です。nCoefficientspTypenVarsorderから導出されます。多項式については、「関数フィッティング地理参照モデル」を参照してください。

columnDenominator

pTypenVarsordernCoefficientsおよび列多項式の分母のすべての係数を指定します。ここでpTypeは1または2、nVarsは0、2または3、orderは0以上5以下です。nCoefficientspTypenVarsorderから導出されます。多項式については、「関数フィッティング地理参照モデル」を参照してください。

xRMS

X次元の精度。GCPを使用してSDO_GEOR.georeferenceをコールすると、チェック・ポイントを使用して計算されます。

yRMS

Y次元の精度。GCPを使用してSDO_GEOR.georeferenceをコールすると、チェック・ポイントを使用して計算されます。

zRMS

Z次元の精度。GCPを使用してSDO_GEOR.georeferenceをコールすると、チェック・ポイントを使用して計算されます。

modelTotalRMS

合計モデル精度。GCPを使用してSDO_GEOR.georeferenceをコールすると、チェック・ポイントを使用して計算されます。

GCPgeoreferenceModel

ストアド・ファンクション・モデル情報、つまり、GCPベースの地理参照モデルに関するすべての情報。GCPベースの地理参照モデル情報の詳細は、「SDO_GEOR_GCPGEOREFTYPEオブジェクト型」を参照してください。

ただし、直接および反転ソリューションが関数フィッティング・モデルから導出される場合、表2-4にリストされている精度の値は、今回のリリースのGeoRasterのセル座標とモデル座標の内部変換計算では考慮されません。

SDO_GEOR_SRSオブジェクト型には次の2つのコンストラクタが含まれます。

  • 1つのコンストラクタは、パラメータを持たず、isReferenced属性がFALSEに設定され他の属性はNULL値に設定される型のインスタンスを作成します。このコンストラクタを使用すると、関数フィッティング・モデルまたはストアド・ファンクション(GCP)モデルのいずれかを設定するか、これらの両方を同時に設定することができます。

  • もう1つのコンストラクタは、ストアド・ファンクション(GCP)モデルに関連するものを除く、このオブジェクト型のすべての属性をパラメータとして取得します。

SDO_GEOR_SRSコンストラクタの使用例は、「SDO_GEORパッケージのリファレンス」SDO_GEOR.setSRSプロシージャに関する項を参照してください。

2.3.7 SDO_GEOR_GCPオブジェクト型

GeoRasterでは、XMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)を使用して地上基準点(GCP)情報がGeoRasterメタデータに格納されます。SDO_GEOR_GCPオブジェクト型は、GeoRasterオブジェクトの地理参照に関するGCP情報を含めるためにPL/SQL APIで使用されます。メタデータとオブジェクト型には同じ情報が含まれます。オブジェクト型を使用して、GeoRasterオブジェクトからのGCP情報を取得したり、GeoRasterオブジェクトにGCP情報をロードして更新できます。

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

CREATE TYPE sdo_geor_gcp AS OBJECT (
     pointID          VARCHAR2(32),
     description      VARCHAR2(256),
     pointType        NUMBER,
     cellDimension    NUMBER,
     cellCoordinates  SDO_NUMBER_ARRAY,
     modelDimension   NUMBER,
     modelCoordinates SDO_NUMBER_ARRAY,
     accuracy         SDO_NUMBER_ARRAY,
     status           NUMBER
);

表2-5に、SDO_GEOR_GCPオブジェクト型の属性の説明を示します。

表2-5 SDO_GEOR_GCPオブジェクト型の属性

属性 説明

pointID

基準点の一意のID。最大32文字です。

description

基準点の説明。

pointType

ポイント・タイプ: 1 (基準点)または2 (チェック・ポイント)。

cellDimension

セル座標の次元(次元数): 2または3。

cellCoordinates

基準点のセル座標の配列; 各点の(行,列)または(行,列,垂直)。

modelDimension

モデル座標の次元(次元数): 2または3。

modelCoordinates

セル空間内の点に対応する、基準点のモデル座標の配列; 各点の(X,Y)または(X,Y,Z)。

accuracy

(xRMS, yRMS)または(xRMS, yRMS, zRMS)の値で表される、基準点の精度。

status

GCPのステータス: MeasuredRemovedEstimatedValidatedまたはInvalid。この列の値は情報のみを示し、GeoRasterによるGCPの使用には影響しません。

SDO_GEOR_GCPコンストラクタは、このオブジェクト型の空のインスタンスを作成するために使用できます。このインスタンスを使用する前に、必要なデータを入力する必要があります。

2.3.8 SDO_GEOR_GCP_COLLECTIONコレクション型

SDO_GEOR_GCP_COLLECTIONコレクション型は、地上基準点(GCP)の配列(コレクション)を格納するために使用されます。

SDO_GEOR_GCP_COLLECTIONコレクション型の定義は次のとおりです。

CREATE TYPE sdo_geor_gcp_collection VARRAY(1048576) OF SDO_GEOR_GCP;

2.3.9 SDO_GEOR_GCPGEOREFTYPEオブジェクト型

GeoRasterでは、XMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)を使用してGCPベースの地理参照モデル情報がGeoRasterメタデータに格納されます。SDO_GEOR_GCPGEOREFTYPEオブジェクトには、地理参照関数フィッティング・メソッド(ジオメトリ・モデル)、モデル・パラメータを解決するための基準点、およびソリューションの精度が含まれています。SDO_GEOR_GCPGEOREFTYPEオブジェクト型は、GeoRasterオブジェクトのGCPベースの地理参照に関する地理参照モデル情報を含めるためにPL/SQL APIで使用されます。メタデータとオブジェクト型には同じ情報が含まれます。オブジェクト型を使用して、GeoRasterオブジェクトからの地理参照モデル情報を取得したり、GeoRasterオブジェクトに地理参照モデル情報をロードして更新できます。

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

CREATE TYPE sdo_geor_gcpgeoreftype AS OBJECT (
     FFMethodType     VARCHAR2(32),
     numberGCP        NUMBER,
     GCPs             SDO_GEOR_GCP_COLLECTION,
     solutionAccuracy SDO_NUMBER_ARRAY
);

表2-6に、SDO_GEOR_GCPGEOREFTYPEオブジェクト型の属性の説明を示します。

表2-6 SDO_GEOR_GCPGEOREFTYPEオブジェクト型の属性

属性 説明

FFMethodType

関数フィッティング・メソッド。AffineQuadraticPolynomialCubicPolynomialDLTQuadraticRationalまたはRPCのいずれかを指定する必要があります。

numberGCP

GCPコレクション内の地上基準点の数(GCPsパラメータ)。

GCPs

SDO_GEOR_GCP_COLLECTION型のGCPコレクション(「SDO_GEOR_GCP_COLLECTIONコレクション型」を参照)。

solutionAccuracy

次の形式で地理参照ソリューションの精度を格納する配列: (rowRMS, columnRMS, totalRMS, xRMS, yRMS, zRMS, modelTotalRMS)。最初の3つのRMS番号は基準点を使用して計算され、後の4つのRMS番号はチェック・ポイント(ある場合)を使用して計算されます。この情報は出力専用であるため、この属性の値を格納または変更しないでください。

SDO_GEOR_GCPGEOREFTYPEオブジェクト型には1つのコンストラクタが含まれます。そのコンストラクタは、パラメータを持たず、FFMethodType属性がAffineに設定され他の属性はNULL値に設定される型のインスタンスを作成します。

2.4 GeoRasterシステム・データ・ビュー(xxx_SDO_GEOR_SYSDATA)

GeoRasterは、システム・データ表(SYSDATA表)を使用して、GeoRaster表とそれに関連するラスター・データ表の間の関係を保持します。

各GeoRasterオブジェクト(NULL以外の場合)には、ラスター・データ表が関連付けられており、地上基準点(GCP)や値属性表(VAT)など、その他の情報が関連付けられる場合もあります。

任意のユーザーに対して、ラスター・データ表の名前とrasterIDの組合せによって、GeoRasterオブジェクトが一意に識別されます。1つのGeoRaster表に含まれる(rasterID値が異なる)複数のGeoRasterオブジェクトが、1つのラスター・データ表を共有できます。

新しいGeoRasterオブジェクト(空および空白のGeoRasterオブジェクトを含む)が作成されるたびに、そのオブジェクトにラスター・データ表およびrasterID値が割り当てられます。すべてのSDO_GEORASTERオブジェクト(アトミックNULLオブジェクトを除く)は、作成時にシステム・データ表に自動的に記録されます。

GeoRasterのSYSDATA表は、MDSYSスキーマに存在します。GeoRasterシステム・データ表に含まれるほとんどの情報は、システム・データ・ビューを介して参照できるため、GeoRasterデータベースに含まれるすべてのGeoRasterオブジェクトのディクショナリまたはカタログとして使用できます。GeoRasterのユーザーには、自分に関連付けられたスキーマに次のシステム・データ・ビューが含まれます。

  • USER_SDO_GEOR_SYSDATAには、現行ユーザーが所有するすべてのGeoRasterオブジェクトのシステム・データが含まれます。

  • ALL_SDO_GEOR_SYSDATAには、現行ユーザーがアクセス可能なすべてのGeoRasterオブジェクトのシステム・データが含まれます。

ユーザーは、GeoRasterのSYSDATA表およびUSER_SDO_GEOR_SYSDATAビューとALL_SDO_GEOR_SYSDATAビューを直接変更することはできません。ただし、これらは各GeoRaster表の各SDO_GEORASTER列に自動作成されるDMLトリガーによって更新されます。

USER_SDO_GEOR_SYSDATAビューの定義は次のとおりです。

(
   TABLE_NAME            VARCHAR2(128),
   COLUMN_NAME           VARCHAR2(1024),
   METADATA_COLUMN_NAME  VARCHAR2(1024),
   RDT_TABLE_NAME        VARCHAR2(128),
   RASTER_ID             NUMBER,
   OTHER_TABLE_NAMES     SDO_STRING_ARRAY
);

ALL_SDO_GEOR_SYSDATAビューにはUSER_SDO_GEOR_SYSDATAビューのすべての列が含まれますが、TABLE_NAME列で指定された表を所有するスキーマを識別するOWNER列も含まれます。

この項では、両方のビューに共通する列について説明します。任意の列のVARCHAR2データの名前は、すべて大文字で格納されていることに注意してください。

2.4.1 TABLE_NAME列

TABLE_NAME列には、SDO_GEORASTER型の1つ以上の列を含むGeoRaster表の名前が含まれます。

2.4.2 COLUMN_NAME列

COLUMN_NAME列には、TABLE_NAME列で指定されたGeoRaster表のSDO_GEORASTER型の列の名前が含まれます。

2.4.3 METADATA_COLUMN_NAME列

今回のリリースでは、METADATA_COLUMN_NAME列は無視されます。

2.4.4 RDT_TABLE_NAME列

RDT_TABLE_NAME列には、TABLE_NAME列およびCOLUMN_NAME列で指定された表および列に関連付けられたラスター・データ表の名前が含まれます。

2.4.5 RASTER_ID列

RASTER_ID列には、RDT_TABLE_NAME列の値との組合せによって各GeoRasterオブジェクトを一意に識別する数値が含まれます。

2.4.6 OTHER_TABLE_NAMES列

今回のリリースでは、OTHER_TABLE_NAMES列は無視されます。

2.5 GeoRasterのXMLスキーマ

GeoRasterでは、GeoRasterメタデータを格納および管理するためにXMLスキーマを定義します。

このXMLスキーマの定義は、「GeoRasterメタデータのXMLスキーマ」に含まれます。GeoRaster XMLスキーマによって定義される名前空間はhttp://xmlns.oracle.com/spatial/georasterであり、Oracleで使用するために予約されています。SQL XMLファンクションまたはXMLTypeメソッドを使用してGeoRasterメタデータ・ドキュメントを操作する場合は、この名前空間を参照する必要があります。

GeoRasterは、SDO_GEOR_XMLSCHEMA_TABLEという名前の表を使用して、GeoRasterメタデータのXMLスキーマおよびその他の情報を格納します。この表は、MDSYSスキーマに存在します。この表を参照する場合、スキーマ名を含める必要があります。たとえば:

DESCRIBE mdsys.sdo_geor_xmlschema_table
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                        NOT NULL NUMBER
 GEORASTERFORMAT                                    VARCHAR2(1024)
 XMLSCHEMA                                          CLOB

表2-7に、SDO_GEOR_XMLSCHEMA_TABLE表の列の型の説明を示します。

表2-7 SDO_GEOR_XMLSCHEMA_TABLE表の列

列名 データ型 説明

id

NUMBER

Oracleによって割り当てられるID番号。値1から50は、Oracleで使用するために予約されています。

georasterFormat

VARCHAR2(1024)

Oracleによって割り当てられるGeoRasterフォーマット識別子。値GEORASTERは、Oracleで使用するために予約されています。

xmlSchema

CLOB

GeoRasterメタデータのXMLスキーマの定義。この定義は、「GeoRasterメタデータのXMLスキーマ」に含まれます。

この表にはGeoRasterビューが定義されていません。これは、主に、この表でGeoRasterのXMLスキーマの情報を問い合せる上級ユーザーを対象としています。

GeoRasterのXMLスキーマに含まれていない他のメタデータに対する独自のXMLスキーマを定義して、この表の新しい行にそのメタデータを格納する場合を除き、この表の内容を変更しないことをお薦めします。独自のメタデータの行を追加する場合、ID列値に1から50またはGEORASTERFORMAT列値にGEORASTERを使用しないでください。これらの列値は、Oracleで使用するために予約されています。XMLSCHEMA列値を指定する場合は、独自のXMLスキーマに対して一意の名前空間を選択し、データベース内で一意である対応するスキーマURLを使用して登録する必要があります。(詳細は、『Oracle XML DB開発者ガイド』を参照してください。)