29.14 SDO_PC_PKG.PC2DEM

書式

SDO_PC_PKG.PC2DEM(
      geor        IN OUT SDO_GEORASTER, 
      pc          IN SDO_PC,
      mbr2d       IN SDO_GEOMETRY,
      resolution  IN NUMBER,
      blocksize   IN NUMBER);

または

SDO_PC_PKG.PC2DEM(
      geor            IN OUT SDO_GEORASTER, 
      pc              IN SDO_PC,
      mbr2d           IN SDO_GEOMETRY,
      resolutionVert  IN NUMBER,
      resolutionHoriz IN NUMBER,
      blocksizeVert   IN NUMBER);
      blocksizeHoriz  IN NUMBER);

説明

既存の(ブロック・モデル)点群オブジェクトからDEM(数値標高モデル)GeoRasterオブジェクトを作成します。

パラメータ

geor

GeoRasterオブジェクトを指定します。(SDO_GEORASTERデータ型の詳細は、Oracle Spatial GeoRaster開発者ガイドを参照してください。)

pc

点群オブジェクト。(SDO_PCデータ型については、「点群に関連するオブジェクト型」を参照してください。)

mbr2d

DEMを生成する2次元の最小境界矩形(MBR)。

resolution

解像度(ピクセル当たりの座標参照系単位数(ピクセル当たりのメートル数、ピクセル当たりの度数など))。

blockSize

ブロック・サイズ(ピクセル)。

resolutionVert

水平解像度と垂直解像度が異なる場合の垂直解像度(ピクセル当たりの座標参照系単位数(ピクセル当たりのメートル数、ピクセル当たりの度数など))。

resolutionHoriz

水平解像度と垂直解像度が異なる場合の水平解像度(ピクセル当たりの座標参照系単位数(ピクセル当たりのメートル数、ピクセル当たりの度数など))。

blockSizeVert

水平ブロック・サイズと垂直ブロック・サイズが異なる場合の垂直ブロック・サイズ。

blockSizeHoriz

水平ブロック・サイズと垂直ブロック・サイズが異なる場合の水平ブロック・サイズ。

使用上のノート

このプロシージャは、指定したGeoRasterオブジェクト(georパラメータ)を入力点群の情報に基づいて変更します。

pcオブジェクトとgeorオブジェクトは同じ座標参照系(SRID)を使用する必要があります。

georパラメータについては、GeoRasterオブジェクトを表に挿入し、そのGeoRasterオブジェクトを変数に戻すことによって入力SDO_GEORASTERオブジェクトを取得できます。たとえば:

INSERT INTO raster_table VALUES (1, sdo_geor.init('raster_data_table'))
   RETURNING raster_image INTO geor;

点群を使用してソリッドをモデル化する方法は、「ソリッドのモデル化」を参照してください。

次の例では点群からDEMを作成します。

DECLARE
pc   sdo_pc;
geor sdo_georaster;
mbr  sdo_geometry :=
  SDO_GEOMETRY(
    2003,
    27700,
    NULL,
    SDO_ELEM_INFO_ARRAY(1, 1003, 3),
    SDO_ORDINATE_ARRAY(
      668000, 5535000,
      672000, 5539000));
BEGIN
  select pc INTO pc from pcs where id = 2;
    
  insert into raster (id, raster)
     values(2, sdo_geor.init('raster_data', 2))
     returning raster into geor;
   
  sdo_pc_pkg.pc2dem(
    geor         => geor,
    pc           => pc,
    mbr2d        => mbr,
    resolution   => 1.0,
    blockSize    => 512);
   
  sdo_geor.generatePyramid(
    georaster     => geor,
    pyramidParams => 'rLevel=7, resampling=BILINEAR');
  
  update raster set raster = geor where id = 2;
  commit;
END;
/

その他の例については、Oracle Database Examplesメディアからファイルをインストールしている場合に使用可能な$ORACLE_HOME/md/demo/PointCloud/examples/plsql/pc.sqlサンプル・プログラムを参照してください(『Oracle Database Examplesインストレーション・ガイド』を参照)。