7.112 SDO_GEOR.reproject
形式
SDO_GEOR.reproject( inGeoRaster IN SDO_GEORASTER, resampleParam IN VARCHAR2 DEFAULT NULL, storageParam IN VARCHAR2 DEFAULT NULL, outSRID IN NUMBER, outGeoraster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.reproject( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT 0, cropArea IN SDO_GEOMETRY DEFAULT NULL, layerNumbers IN VARCHAR2, resampleParam IN VARCHAR2 DEFAULT NULL, storageParam IN VARCHAR2 DEFAULT NULL, outSRID IN NUMBER, outGeoraster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.reproject( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT 0, cropArea IN SDO_NUMBER_ARRAY DEFAULT NULL, bandNumbers IN VARCHAR2, resampleParam IN VARCHAR2 DEFAULT NULL, storageParam IN VARCHAR2 DEFAULT NULL, outSRID IN NUMBER, outGeoraster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.reproject( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT 0, cropArea IN SDO_GEOMETRY DEFAULT NULL, layerNumbers IN VARCHAR2, resampleParam IN VARCHAR2 DEFAULT NULL, storageParam IN VARCHAR2 DEFAULT NULL, outSRID IN NUMBER, rasterBlob IN OUT NOCOPY BLOB, outArea OUT SDO_GEOMETRY, outWindow OUT SDO_NUMBER_ARRAY, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.reproject( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT 0, cropArea IN SDO_NUMBER_ARRAY DEFAULT NULL, bandNumbers IN VARCHAR2, resampleParam IN VARCHAR2 DEFAULT NULL, storageParam IN VARCHAR2 DEFAULT NULL, outSRID IN NUMBER, rasterBlob IN OUT NOCOPY BLOB, outArea OUT SDO_GEOMETRY, outWindow OUT SDO_NUMBER_ARRAY, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
説明
GeoRasterオブジェクトの全部または一部を、(outSRIDパラメータで指定された)異なるOracle Spatial座標系に再投影します。結果のオブジェクトは、新しいGeoRasterオブジェクト(永続記憶域目的)またはBLOB (一時使用目的)のいずれかです。
パラメータ
- inGeoRaster
-
新しいオブジェクトを作成するために再投影処理を実行するSDO_GEORASTERオブジェクトを指定します。
- pyramidLevel
-
ソースGeoRasterオブジェクトのピラミッド・レベルを示す番号を指定します。
- cropArea
-
クロッピング領域を定義します。
cropArea
がSDO_GEOMETRY型の場合は、layerNumbers
パラメータを使用して1つ以上のレイヤー番号を指定します。cropArea
がSDO_NUMBER_ARRAY型の場合は、bandNumbers
パラメータを使用して、1つ以上のバンド番号を指定します。データ型がSDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、ジオメトリ・オブジェクトの最小境界矩形(MBR)がクロッピング領域として使用されます(SDO_SRID要件の「使用上のノート」も参照してください)。
- layerNumbers
-
処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
2-4
はレイヤー2、3および4を示します)。 - bandNumbers
-
処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
1-3
はバンド1、2および3を示します)。 - resampleParam
-
リサンプリング・パラメータを含む文字列を指定します。使用可能なキーワードおよび値については、「使用上のノート」を参照してください。
- storageParam
-
記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。
- outGeoRaster
-
スケール変更処理の結果を反映させる新しいSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。
inGeoRaster
と同じGeoRasterオブジェクトは指定できません。 - rasterBlob
-
新しい座標系を反映した出力を保持するBLOBを指定します。再投影処理の前に、これが存在しているか、または初期化されている必要があります。
- outArea
-
結果のオブジェクトのモデル座標系の最小境界矩形(MBR)を含むSDO_GEOMETRYオブジェクトを指定します。
- outWindow
-
セル空間内で出力ウィンドウの左上角および右下角の座標を指定するSDO_NUMBER_ARRAYオブジェクトを指定します。
- bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
使用上のノート
このプロシージャには2つの一般的な種類のインタフェースがあります。
-
最初の3つの構文では、データベースに格納するための永続GeoRasterオブジェクトが生成されます。
-
残りの構文では、即座に使用するための一時的な格納(画面へのデータの表示など)のためにBLOBが生成されます。
inGeoRaster
は、地理参照され、MDSYS.CS_SRS表のSRID列のSRID値を持つ必要があります。outSRID
は、inGeoRaster
のSRIDとは異なる必要があります。再投影が不適切な場合もあります(たとえば、NAD83, Massachusetts Mainland (SRID = 26986)のGeoRasterオブジェクトを座標系NAD 27, UTMゾーン49N (SRID = 2032649)に再投影するなど)。この場合、再投影すると大規模なひずみが発生するため、実行されません。
inGeoRaster
とoutGeoRaster
には異なるGeoRasterオブジェクトを指定する必要があります。操作後に、結果のGeoRasterオブジェクトのULT座標は、0 (ゼロ)に設定されます。
ソースまたは宛先オブジェクトに3次元座標系が含まれる場合、高さ(Z)の値は0 (ゼロ)に設定されます。
pyramidLevel
パラメータを含む構文を使用して0 (ゼロ)より大きい値を指定した場合、再投影はソースGeoRasterオブジェクトの指定したピラミッド・レベルに基づきますが、それ以外の場合、再投影は、元のGeoRasterオブジェクト(pyramidLevel=0)に基づきます。出力GeoRasterオブジェクトにはピラミッド・データが含まれません。
cropArea
パラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は、MDSYS.CS_SRS表のSRID列の値である必要があります。cropArea
パラメータ・ジオメトリとinGeoraster
オブジェクト・モデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、cropArea
パラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)
cropArea
パラメータで測地MBRを指定する場合、日付変更線をまたぐMBRは指定できません。(測地MBRについては、『Oracle Spatial開発者ガイド』を参照してください。)指定したクロッピング領域とソースGeoRasterオブジェクトの空間エクステントが重複する部分のみが再投影されます。
resampleParam
には、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。
-
resampling
(resampling=NN
など): リサンプリング・メソッドを指定します。NN
、BILINEAR
、CUBIC
、AVERAGE4
、AVERAGE16
のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。 -
nodata
(nodata=TRUE
など): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE
(NODATA値およびその値の範囲を考慮する)またはFALSE
(NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSE
です。この値がTRUE
で、リサンプリング・メソッドがBILINEAR
、CUBIC
、AVERAGE4
またはAVERAGE16
の場合、リサンプリングの計算に含まれるセル値がNODATA値であると、リサンプリングの結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。
例
次の例では、SRID 32618によって定義された座標系にGeoRasterオブジェクトを再投影します。結果は、別のGeoRasterオブジェクトです。
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; BEGIN SELECT georaster INTO gr1 from georaster_table WHERE georid=10; INSERT INTO reproject_table VALUES (21, 'WGS 84 / UTM zone 18N', SDO_GEOR.init('rdt_5', 21)) RETURNING georaster INTO gr2; sdo_geor.Reproject(gr1, 0, 0, SDO_NUMBER_ARRAY(0, 0, 517, 517), null, null, 'blocking=optimalpadding, blocksize=(512,512,3), interleaving=BSQ', 32618, gr2); UPDATE georaster_table SET georaster=gr2 WHERE georid=21; COMMIT; END; /
次の例では、SRID 32618によって定義された座標系にGeoRasterオブジェクトを再投影します。結果は、JPEG-F形式のデータを含む一時BLOBです。
DECLARE gr1 sdo_georaster; lob1 BLOB; outArea SDO_Geometry; outWindow SDO_NUMBER_ARRAY; BEGIN SELECT georaster INTO gr1 from georaster_table WHERE georid=10; dbms_lob.createTemporary(lob1, TRUE); sdo_geor.Reproject(gr1, 0, SDO_NUMBER_ARRAY(0, 0, 120, 300), '0', null, 'compression = JPEG-F', 32618, lob1, outArea, outWindow); dbms_lob.freeTemporary(lob1); COMMIT; END; /
親トピック: SDO_GEORパッケージのリファレンス