10 SDO_GEOR_GDALパッケージのリファレンス

SDO_GEOR_GDALパッケージは、外部プロシージャを使用してオープン・ソース・ソフトウェアGDALをOracle Databaseサーバーと統合し、GDALの一連の操作を実行するためにPL/SQL APIを提供します。この章では、そのサブプログラムのリファレンス情報を、例を使用して説明します。

ノート:

SDO_GEOR_GDALパッケージは、共有デプロイメントと専用デプロイメントの両方のOracle Autonomous Databaseでサポートされていません。

SDO_GEOR_GDALパッケージのファンクションおよびプロシージャは、Oracle Databaseサーバー・マシン上で実行され、他のGeoRaster PL/SQL APIと連携して動作できます。

現在、SDO_GEOR_GDALパッケージは、Windows x64およびLinux x86-64オペレーティング・システムでのみ使用できます。

構成要件などの詳細は、SDO_GEOR_GDALパッケージの使用を参照してください。

10.1 SDO_GEOR_GDAL.dem

形式

SDO_GEOR_GDAL.dem(
     inGeoRaster     IN SDO_GEORASTER, 
     outGeoRaster    IN OUT SDO_GEORASTER, 
     processing      IN VARCHAR2 DEFAULT NULL,
     options         IN VARCHAR2 DEFAULT NULL,
     createOptions   IN VARCHAR2 DEFAULT NULL,
     metadataOptions IN VARCHAR2 DEFAULT NULL,
     colorDirectory  IN VARCHAR2 DEFAULT NULL,
     colorFileName   IN VARCHAR2 DEFAULT NULL, 
     openOptions     IN VARCHAR2 DEFAULT NULL);

説明

入力数値標高モデル(DEM)を処理し、指定された処理および変換オプションを反映した出力GeoRasterオブジェクトを生成します。

パラメータ

inGeoRaster

GeoRasterオブジェクト。通常は数値標高モデル(DEM)。

outGeoRaster

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

processing

指定した場合、適用するDEM処理技術の名前を示します。

  • aspectは、方位マップを生成します。

  • color-reliefは、カラー・レリーフ・マップを生成します。

  • hillshadeは、影付きレリーフ・マップを生成します。

  • Roughnessは、粗さのマップを生成します。

  • slopeは、傾斜マップを生成します。

  • TPIは、Topographic Position Indexのマップを生成します。

  • TRIは、Terrain Ruggedness Indexのマップを生成します。

options

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

例: options => 'outputType=float32'

createOptions

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

metadataOptions

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

colorDirectory

指定した場合、入力カラー表ファイルが存在するファイル・システム・ディレクトリに関連するディレクトリ・オブジェクトの名前を示します。

colorFileName

指定した場合、GDAL互換カラー表ファイルのベース・ファイル名を示します。

openOptions

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

使用上のノート

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

表10-1 dem操作のopenOptionsパラメータの使用可能な値

キーワード 説明

alg

Hornの計算式ではなくZevenbergenThorneアルゴリズムを使用するかどうかを示します。ブール型であり、デフォルトはfalseです。

altitude

hillshade処理でのみ使用できます。光源の高度を度数で示します(光源がDEM上からの場合は90、測光線の場合は0)。

azimuth

hillshade処理でのみ使用できます。デフォルト値は315 (ゼロ)です。これは影付きマップを生成するために一般的に使用される値であるため、変更することはほとんどありません。

band

DEMを識別するバンド番号。値は1 (デフォルト)から始まります。

Combined

hillshade処理でのみ使用できます。結合された陰影、傾斜と傾きの陰影の組合せを計算するかどうかを示します。

computeEdges

ラスターのエッジで値を計算するかどうかを示します。ブール型であり、デフォルトはfalseです。

outputType

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

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

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

scale

垂直単位を乗算するための比率を示します。たとえば、垂直単位がメートルであり、変換する必要がある場合は、scale=111120を使用します(または、フィート単位の場合はscale=370400)。

Trigonometric

aspect処理でのみ使用できます。方位角ではなく三角角度を返すかどうかを示します。0degは東、90degは北、180degは西、270degは南を意味します。

zeroForFlat

aspect処理でのみ使用できます。slope=0の平坦な地域に対して-9999ではなく0を戻すかどうかを示します。

zFactor

hillshade処理についてのみ、過高感を示します。

便宜上、optionsパラメータの引数は、GDAL gdal_demコマンドライン・ツールと同じ書式で入力することもできます。例: ”-b 1 –scale 10”

次の例では、入力DEMから方位マップを生成します。

DECLARE
  gr6 sdo_georaster;
  gr7 sdo_georaster;
BEHIN
  delete from imagery where id = 7;
  insert into imagery values(7, sdo_geor.init('dem_rdt',7))
         returning raster into gr7;
  select raster into gr6 from imagery where id = 6;
  sdo_geor_gdal.dem(inGeoRaster     => gr6,
                    outGeoRaster    => gr7,
                    processing      => 'aspect',
                    options         => 'outputType=float32');
  update imagery set raster = gr7 where id = 7;
  commit;
END;

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);

説明

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

パラメータ

inDirectory

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

inFileName

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

inGeoRaster

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

outGeoRaster

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

outDirectory

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

outFileName

出力ファイルの名前。

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コマンドと同じ処理を実行します。

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;