10.2 SDO_GEOR_GDAL.translate

形式

SDO_GEOR_GDAL.translate(
     inDirectory     IN SDO_VARCHAR2, 
     InFileName      IN OUT SDO_VARCHAR2, 
     outGeoRaster    IN OUT SDO_GEORASTER, 
     options         IN VARCHAR2 DEFAULT NULL,
     createOptions   IN VARCHAR2 DEFAULT NULL,
     metadataOptions IN VARCHAR2 DEFAULT NULL,
     openOptions     IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR_GDAL.translate(
     inGeoRaster     IN SDO_GEORASTER, 
     outDirectory    IN VARCHAR2, 
     outFileName     IN VARCHAR2, 
     options         IN VARCHAR2 DEFAULT NULL,
     createOptions   IN VARCHAR2 DEFAULT NULL,
     metadataOptions IN VARCHAR2 DEFAULT NULL,
     openOptions     IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR_GDAL.translate(
     inGeoRaster     IN SDO_GEORASTER, 
     outGeoRaster    IN OUT SDO_GEORASTER, 
     options         IN VARCHAR2 DEFAULT NULL,
     createOptions   IN VARCHAR2 DEFAULT NULL,
     metadataOptions IN VARCHAR2 DEFAULT NULL,
     openOptions     IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR_GDAL.translate(
     inGeoRaster     IN MDSYS.SDO_GEORASTER,
     outTableName    IN VARCHAR2,
     outRasterid     IN NUMBER, 
     options         IN VARCHAR2 DEFAULT '',
     createOptions   IN VARCHAR2 DEFAULT '',
     metadataOptions IN VARCHAR2 DEFAULT '',
     openOptions     IN VARCHAR2 DEFAULT '');

または

SDO_GEOR_GDAL.translate(
     inTableName     IN     VARCHAR2,
     inRasterid      IN     NUMBER,
     outGeoRaster    IN OUT MDSYS.SDO_GEORASTER,
     options         IN     VARCHAR2 DEFAULT '',
     createOptions   IN     VARCHAR2 DEFAULT '',
     metadataOptions IN     VARCHAR2 DEFAULT '',
     openOptions     IN     VARCHAR2 DEFAULT '');

説明

ラスター・データを異なる形式間で変換します。ピクセルのサブセット化、リサンプリング、スケール変更などの操作をプロセスで実行する可能性があります。

パラメータ

inDirectory

入力ファイルを含むシステム・ディレクトリを指すディレクトリ・オブジェクトの名前。

inFileName

GDAL互換ラスター・データ・ソース指定のベース・ファイル名(パスを含まないファイル名)。

inGeoRaster

入力GeoRasterオブジェクトを指定します。

outGeoRaster

操作の結果を格納するGeoRasterオブジェクトを指定します。有効な初期化されたGeoRasterオブジェクトである必要があります。inGeoRasterと同じGeoRasterオブジェクトは指定できません。

outDirectory

出力ファイルを含むシステム・ディレクトリを指すディレクトリ・オブジェクトの名前。

outFileName

出力ファイルの名前。

inTableName

入力ラスターがBLOB列に格納されている表またはビューの名前。詳細は、「使用上のノート」を参照してください。

inRasterid

入力ラスターがBLOB列に格納されている表内の行を識別するID。詳細は、「使用上のノート」を参照してください。

outTableName

出力ラスターがBLOB列に格納される表またはビューの名前。詳細は、「使用上のノート」を参照してください。

outRasterid

出力ラスターがBLOB列に格納される表内の行を識別するID。詳細は、「使用上のノート」を参照してください。

options

指定した場合、GDAL変換操作のオプションを示します。使用可能なoptionsパラメータ値の名前と説明の表については、「使用上のノート」を参照してください。

例: options => 'srcwin=100,100,2500,2500'

createOptions

指定した場合、出力ドライバに固有のオプションを示します。形式は'name=value'であり、オプションはスペースで区切られます。例: "COMPRESS=JPEG-F GENPYRAMID=NN"

metadataOptions

指定した場合、出力ドライバに固有のメタデータ値を割り当てます。形式は'name=value'であり、オプションはスペースで区切られます。例: "TIFFTAG_POINTAREA=AREA"

openOptions

指定した場合、入力ドライバ形式に固有のオプションを示します。詳細は、GDALでサポートされている形式のリストを参照してください。

使用上のノート

このファンクションは、GDAL translateコマンドと同じ処理を実行します。

ソースおよびターゲットのラスター・データは、ファイル・システム、表のBLOB、またはGeoRasterオブジェクトに格納できます。また、次の点にも注意してください。

  • ファイル・システムに格納されているラスター・データは、データベース・ディレクトリ・オブジェクト名とファイル名((inDirectory, inFileName)(outDirectory, outFileName)など)の組合せによって識別されます。
  • BLOBに格納されるラスター・データは、表名またはビュー名およびID ((inTableName, inRasterid)(outTableName, outRasterid)など)で識別されます。BLOBにラスターを格納する表またはビューには、少なくとも次の2つの列が必要です: (rasterblock BLOB, rasterid NUMBER)rasterblock列にはラスターが格納され、rasteridはラスターの識別に使用されます。

optionsパラメータの使用可能なキーワードを次の表に示します。

表10-2 translate操作のoptionsパラメータの使用可能な値

キーワード 説明

bandList

バンド番号の配列。整数リストであり、1が最初のバンドです。例: 'bandlist=4,3,2'

指定しない場合、入力ファイルのバンド・リストが使用されます。

eco

projWinが完全に外部である場合にエラーが表示されます。ブール型であり、デフォルトはfalseです。例: 'eco=true'

epo

projWinが部分的に外部である場合にエラーが表示されます。ブール型であり、デフォルトはfalseです。例: 'epo=true'

exponentList

べき関数による非線形スケール変更を適用します。正の値である必要があります。scaleオプションとともに使用されます。例: 'exponent=10,100'

format

データセットの作成をサポートするGDALドライバの名前。文字列型。例: 'format=gtiff'。このオプションは、sdo_georaster出力には必要ありません。ファイル出力の場合、このオプションを指定しないと、GTIFFとみなされます。

GCP

地上基準点。GCPのセットを指定するために複数回指定できます。形式“pixel,line,easting,northing,elevation”において、elevationはオプションです。例: “gcp=10,40,234.2,734 gcp=13,54,28.4,837 gcp=20,90,285.2,934”

maskBandList

バンド番号の配列。整数リストであり、1が最初のバンドです。例: 'maskbandlist=1'

指定しない場合、入力ファイルのバンド・リストが使用されます。

nodata

各出力バンドのNodata値のリスト(または設定を解除する場合はnone)。例: ”nodata=9990”

outputBounds

書式“upper-left-x, upper-left-y, lower-right-x, lower-right-y”で、出力イメージの出力の限度が割り当てられます。例: 'outputbounds=293.992,643.447,361.104, 118.648'

outputBoundSRS

outputBoundsの空間参照システム(SRS)。例: outputBoundsSRS=EPSG:4326。指定しない場合、入力イメージSRSと想定されます。

outputType

出力ピクセルのデータ型。サポートされる値は、ByteInt16UInt16UInt32Int32Float32Float64CInt16CInt32CFloat32およびCFloat64です。例: 'outputtype=float64'

このオプションを指定しない場合、入力データ型が使用されます。

使用されているデータ型が出力形式でサポートされているかどうかを確認します。

outsize

行と列で、または元のイメージ・サイズの相対的な割合で定義される出力イメージのサイズを設定します。次に例を示します:

'outsize=50%,50%', 'outsize=1024,512', 'outsize=200%,200%'

指定しない場合、入力イメージの元のサイズが使用されます。

projWin

“upper-left-x, upper-left-y, lower-right-x, lower-right-y”のように座標で定義される入力イメージからのソース・ウィンドウ・サブ領域。例: 'srcwin=180,90,0,0'。指定しない場合、入力イメージ全体が使用されます。

projWinSRS

projWinの空間参照システム(SRS)。例: projWinSRS=EPSG:4326。指定しない場合、入力イメージSRSと想定されます。

rat

ソース・イメージのラスター属性表を出力イメージにコピーするかどうかを示します。デフォルトはtrueです。例: “rat=false”

操作は、ラスター属性表をサポートするための出力形式の容量に応じて異なります。

resampleAlg

リサンプリング・モード{nearest(デフォルト)、bilinearcubiccubicsplinelanczosaveragemode}。例: resample=cubic

rgbExpand

カラー表を持つ1バンドのデータセットを3 (RGB)または4 (RGBA)バンドのデータセットとして解釈するかどうかを示します。グレー・レベルのみを含むカラー表を持つデータセットをグレーの索引付けされたデータセットに拡張します。{gray|rgb|rgba}。例: “rgbExpand=rgb”

scale

入力イメージのピクセル値を出力イメージにスケール変更するための値のリスト。値は、“src_min,src_max”または“src_min,src_max,dst_min,dst_max”として定義できます。例: 'scale=-10,2400,0,255'

srcWin

“left_x, top_y, width, height”のようにピクセル座標で定義される入力イメージからのソース・ウィンドウ・サブ領域。例: 'srcwin=10,31,400,800'

指定しない場合、入力イメージ全体が使用されます。

stats

出力イメージに対する統計を計算して格納します。ブール型であり、デフォルトはfalseです。例: 'stats=true'

strict

出力形式への変換時にデータ型の不一致およびデータの消失がある場合はエラーが発生します。ブール型であり、デフォルトはfalseです。例: 'strict=true'

xyRes

水平方向と垂直方向の出力イメージの解像度を出力します。例: 'xyres=30.0,30.0'。指定しない場合、入力イメージの解像度が使用されます。

便宜上、optionsパラメータの引数は、GDAL gdal_translateコマンドライン・ツールと同じ書式で入力することもできます。例: “-srcwin 10 10 512 512 –outsize 1024 1024“

次の例では、初期化されたGeoRasterオブジェクトにファイル・システムからgeotiffファイルをロードします。

CREATE OR REPLACE DIRECTORY mydata_dir AS '/folder_name/data/';

BEGIN
  DELETE FROM imagery WHERE id = 1;
  INSERT INTO imagery VALUES(1, sdo_geor.init('imagery_rdt',1))
         RETURNING raster INTO gr;
  sdo_geor_gdal.translate(inDirectory   => 'mydata_dir',
                          inFileName    => 'sample.tif',
                          outGeoRaster  => gr);
  UPDATE imagery SET raster = gr WHERE id = 1;
  COMMIT;
END;

次の例では、GeoRasterオブジェクトをgeotiffファイルにエクスポートします。

CREATE OR REPLACE DIRECTORY dump_dir AS '/folder_name/dump/';

DECLARE
  gr sdo_georaster;
BEGIN
  SELECT raster INTO gr FROM imagery WHERE id = 1;
  sdo_geor_gdal.translate(inGeoRaster   => gr,
                          outDirectory  => 'dump_dir',
                          outFileName   => 'copy_imagery_id_1.tif');
END;

次の例では、値の解像度およびスケールを変更しながら、イメージの別のクロッピング部分にGeoRasterオブジェクトをコピーします。

DECLARE
  gr1 sdo_georaster;
  gr2 sdo_georaster;
BEGIN
  DELETE FROM imagery WHERE id = 2;
  SELECT raster INTO gr1 WHERE id = 2;
  INSERT INTO imagery VALUES(2, sdo_geor.init('imagery',2))
         RETURNING raster INTO gr2;
  sdo_geor_gdal.translate(
                inGeoraster   => gr1,
                options       => 'srcwin=100,100,2500,2500' ||
                                 'scale=0,255' ||
                                 'resxy=400,400',
                outGeoRaster  => gr);
  UPDATE imagery SET raster = gr2 WHERE id = 2;
  COMMIT;
END;

次の例では、GeoRasterオブジェクトをErdas .img形式のファイルにエクスポートします。

CREATE OR REPLACE DIRECTORY myoutput_dir AS '/folder_name/data/';

DECLARE
  gr sdo_georaster;
BEGIN
  SELECT raster INTO gr where id = 3;
  sdo_geor_gdal.translate(
                inGeoraster   => gr,
                outDirectory  => myoutput_dir,,
                outFilename   => 'exported.img',
                options       => 'format=hfa');
END;

次の例では、GeoRasterオブジェクトを表raster_tableのBLOBにエクスポートします。raster_table(rasterid number, rasterblock BLOB)として定義されます:

DECLARE
   gr sdo_georaster;
BEGIN
   INSERT INTO raster_table VALUES (100, empty_blob());
   SELECT raster INTO gr FROM imagery WHERE id = 1;
   sdo_geor_gdal.translate(inGeoRaster   => gr,
                           outTableName  => 'raster_table',
                           outRasterid   => 100);
   COMMIT;
END;

次の例では、表raster_tableのBLOBに格納されているラスター・データをGeoRasterオブジェクトにインポートします。raster_tableは、(rasterid number, rasterblock BLOB)として定義されます:

DECLARE
   gr sdo_georaster;
BEGIN
   INSERT INTO imagery VALUES (2, sdo_geor.init(‘imagery_rdt’, 2))
       RETURNING raster INTO gr; 
   
   sdo_geor_gdal.translate(
                           inTableName  => 'raster_table',
                           inRasterid   => 100, 
                           outGeoRaster => gr);
  UPDATE imagery SET raster = gr WHERE id= 2;
  COMMIT;
END;