13.4 SDO_GEOR_UTL.calcSurfaceArea

形式

SDO_GEOR_UTL.calcSurfaceArea(
     georaster IN SDO_GEORASTER, 
     window    IN SDO_GEOMETRY,
     parallel  IN NUMBER
  ) RETURN NUMBER;

説明

GeoRasterオブジェクトに格納される数値標高モデル(DEM)のデータで表される3次元(3D)の表面積を計算して戻します。

パラメータ

georaster

DEMデータを格納するGeoRasterオブジェクト。

window

3Dの表面積を計算する領域を指定する2Dジオメトリ・オブジェクト。

parallel
操作の並列度。0より大きくする必要があります。推奨値は、CPU数の2倍です

使用上のノート

このファンクションは、windowパラメータで指定した特定の領域に含まれているか接触しているすべてのセルを最初に検索し、各セルを2つの3D三角形に分割し、各三角形の3D表面積を計算し、結果としてこれらの領域の値の合計を戻します。ウィンドウ境界に交差している三角形の領域は、交差しているジオメトリに基づいて計算されるため、このファンクションは高い正確性とともに表面積を戻します。

parallelパラメータが1未満の場合、1が使用されます(つまり、並列性なし)。

次の例では、DEMデータを使用してgeom内の表面積を計算します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  geor  SDO_GEORASTER; 
  geom  SDO_GEOMETRY;
  area  number;
BEGIN
  geom:=sdo_geometry(2003,82394, NULL,
                     mdsys.sdo_elem_info_array(1, 1003, 1),
                     mdsys.sdo_ordinate_array(20283.775, 1011087.9,
                                             18783.775, 1008687.9,
                                             21783.775, 1008687.9,
                                             22683.775+0.001, 1009587.9,
                                             20283.775, 1011087.9));
  SELECT georaster INTO geor FROM georaster_table WHERE georid = 3;
  area:=SDO_GEOR_UTL.calcSurfaceArea(geor,geom,2);
END;
/