6.5 イメージのワーピング

イメージのワーピングでは、指定されたSDO_GEOR_SRSオブジェクトから空間参照情報を使用して、入力GeoRasterオブジェクトを出力GeoRasterオブジェクトに変換します。

参照SDO_GEOR_SRSオブジェクトを既存のGeoRasterオブジェクトからコピーしたり、コンストラクタを使用して作成できます。(詳細は、「SDO_GEOR_SRSオブジェクト型」を参照してください。)

ワーピングは、SDO_GEOR.warpプロシージャによって実行されますが、ソースGeoRasterオブジェクトには1つ以上の関数フィッティング地理参照モデルが必要です。つまり、イメージは幾何補正する必要はありませんが、メタデータに地理参照情報を保持する必要があります(「GeoRasterオブジェクトの地理参照」を参照)。

例6-8 イメージのワーピング

次の例では、1つのGeoRasterイメージ(gr1)から、既存のGeoRasterオブジェクト(gr2)から新しい(ワープした)GeoRasterオブジェクト(gr3)に変換する参照として、SDO_GEOR_SRS情報を使用します。したがって、3番目のGeoRasterオブジェクトは2番目のオブジェクトの「コピー」(実際は変換)ですが、1番目のGeoRasterオブジェクトと同じ地理参照を反映します。

DECLARE
  srs sdo_geor_srs;
  gr1 sdo_georaster;
  gr2 sdo_georaster;
  gr3 sdo_georaster;
BEGIN
  select georaster into gr1 from georaster_table where georid = 1;
  select georaster into gr2 from georaster_table where georid = 2;

  srs := sdo_geor.getSRS(gr1); -- get the SRS from image 1.

  insert into georaster_table values(3, 'Warped Object',
         sdo_geor.init('imagery_rdt')) 
         returning georaster  into gr3;

  sdo_geor.warp( inGeoRaster      => gr2,
                 pyramidLevel     => null,
                 outSRS           => srs, -- apply SRS to warp transformation
                 cropArea         => null,
                 dimensionSize    => null,
                 layerNumbers     => null,
                 elevationParam   => null,
                 resampleParam    => ‘resampling=AVERAGE4’,
                 storageParam     => ‘pyramid=true’,
                 outGeoRaster     => gr3,
                 bgValues         => sdo_number_array(0,0,0),
                 parallelParam    => ‘parellel=4’ );

  update georaster_table set georaster = gr3 where georid = 3;
  commit;
END;