30.9 SDO_SAM.TILED_AGGREGATES
書式
SDO_SAM.TILED_AGGREGATES( theme_name IN VARCHAR2, theme_colname IN VARCHAR2, aggr_type_string IN VARCHAR2, aggr_col_string IN VARCHAR2, tiling_level IN NUMBER DEFAULT NULL, tiling_domain IN SDO_DIM_ARRAY DEFAULT NULL, zero_agg_tiles IN NUMBER DEFAULT 0, xdivs IN NUMBER DEFAULT NULL, ydivs IN NUMBER DEFAULT NULL ) RETURN SDO_REGAGGRSET;
説明
ドメインの集計を四角形処理します。四角形ごとに、テーマ表から交差するジオメトリを計算します。aggr_col_string列の値は、共通部分の面積に対して均等に重み付けされ、aggr_col_stringに従って集計されます。
パラメータ
- theme_name
-
テーマ情報(デモグラフィック情報など)を含む表を指定します。
- theme_colname
-
ジオメトリ・オブジェクトを含む
theme_name表の列名を指定します。 - aggr_type_string
-
1つ以上の数値を受け入れ、1つの数値を算出するOracle SQLの集計ファンクションを指定します(
SUM、MIN、MAX、AVGなど)。 - aggr_col_string
-
集計値の計算を行う
theme_name表の列名を指定します。たとえば、POPULATION列を指定します。 - tiling_level
-
四角形の作成に使用するレベルを指定します。このパラメータを指定すると、各ディメンションのエクステントは、2^
tiling_level個の要素に分割され、結果として最大で4×tiling_levelの四角形が作成されます。(このパラメータ、またはxdivsパラメータとydivsパラメータの組合せのいずれかを指定します。) - tiling_domain
-
四角形処理レベルのドメインを指定します。このパラメータを必要とせず、指定しない場合は、
theme_name表に関連付けられたエクステントが使用されます。 - zero_agg_tiles
-
集計値が0 (ゼロ)となる四角形を除外するために0 (ゼロ)を指定するか、またはすべての四角形を戻すために1を指定します。デフォルト値は0 (ゼロ)です。これにより、0 (ゼロ)以外の集計値を持つ四角形のみが戻されることになります。
- xdivs
-
1つ目の次元のエクステントを何回分割するかを指定します(分割後の要素の合計数は
xdivs+ 1)。たとえば、xdivsを10に指定すると、1つ目の次元のエクステントは11の要素に分割されます。 - ydivs
-
2つ目の次元のエクステントを何回分割するかを指定します(分割後の要素の合計数は
ydivs+ 1)。たとえば、ydivsを10に指定すると、2つ目の次元のエクステントは11の要素に分割されます。
使用上のノート
このファンクションはSDO_SAM.AGGREGATES_FOR_LAYERに類似していますが、結果は四角形処理情報によって動的に生成されます。theme_name表の場合、四角形処理のドメインが決定されます。tiling_level値、またはxdivs値およびydivs値に基づいて、必要な四角形が生成されます。各四角形ジオメトリについて、テーマ集計が行われます(SDO_SAM.AGGREGATES_FOR_LAYERの「使用上のノート」を参照)。
tiling_levelパラメータ、またはxdivsパラメータとydivsパラメータの両方を指定する必要があります。これらの3つのパラメータをすべて指定した場合、tiling_levelパラメータは無視され、xdivsパラメータとydivsパラメータが使用されます。
xdivsパラメータとydivsパラメータを指定した場合、戻されるグリッド(四角形)の合計数は、(xdivs+1)×(ydivs+1)です。
このファンクションは、SDO_REGAGGRSET型のオブジェクトを戻します。SDO_REGAGGRSETオブジェクト型は、次のとおり定義されます。
TABLE OF SDO_REGAGGR
SDO_REGAGGRオブジェクト型は、次のとおり定義されます。
Name Null? Type ----------------------------------------- -------- ---------------------------- REGION_ID VARCHAR2(24) GEOMETRY MDSYS.SDO_GEOMETRY AGGREGATE_VALUE NUMBER
例
次の例では、各四角形と交差するPOLY_4PT_TEMP表の人口の行の合計を計算します。USER_SDO_GEOM_METADATAビューに格納されたPOLY_4PT_TEMP表のエクステントがドメインとして使用され、四角形処理レベルは2となります(この場合、ドメインは16の四角形に分割されます)。
SELECT a.geometry, a.aggregate_value
from TABLE(sdo_sam.tiled_aggregates('POLY_4PT_TEMP',
'GEOMETRY', 'SUM', 'POPULATION', 2)) a;
GEOMETRY(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES)
--------------------------------------------------------------------------------
AGGREGATE_VALUE
---------------
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR
AY(-180, -90, -90, -45))
.007150754
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR
AY(-180, -45, -90, 0))
.034831005
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR
AY(-180, 0, -90, 45))
7.73307783
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR
AY(-90, -90, 0, -45))
.019498368
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR
AY(-90, -45, 0, 0))
.939061456
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR
AY(-90, 0, 0, 45))
1.26691592
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR
AY(0, 0, 90, 45))
40
7 rows selected.親トピック: SDO_SAMパッケージ(空間分析およびマイニング)