31 SDO_SAMパッケージ(空間分析およびマイニング)
MDSYS.SDO_SAMパッケージには、空間分析およびデータ・マイニングのサブプログラムが含まれています。
この章で説明するサブプログラムを使用する場合は、空間分析およびデータ・マイニングの概念を理解しておく必要があります(「空間分析およびマイニング」を参照)。
ノート:
SDO_SAMサブプログラムは2次元ジオメトリでのみサポートされています。これらは3次元ジオメトリではサポートされていません。
この章では、空間分析およびマイニングのサブプログラムのリファレンス情報をアルファベット順に説明します。
- SDO_SAM.AGGREGATES_FOR_GEOMETRY
- SDO_SAM.AGGREGATES_FOR_LAYER
- SDO_SAM.BIN_GEOMETRY
- SDO_SAM.BIN_LAYER
- SDO_SAM.COLOCATED_REFERENCE_FEATURES
- SDO_SAM.SIMPLIFY_GEOMETRY
- SDO_SAM.SIMPLIFY_LAYER
- SDO_SAM.SPATIAL_CLUSTERS
- SDO_SAM.TILED_AGGREGATES
- SDO_SAM.TILED_BINS
親トピック: リファレンス情報
31.1 SDO_SAM.AGGREGATES_FOR_GEOMETRY
構文
SDO_SAM.AGGREGATES_FOR_GEOMETRY( theme_name IN VARCHAR2, theme_colname IN VARCHAR2, aggr_type_string IN VARCHAR2, aggr_col_string IN VARCHAR2, geom IN SDO_GEOMETRY, dst_spec IN VARCHAR2 DEFAULT NULL ) RETURN NUMBER;
説明
ジオメトリのテーマ集計を行います。
パラメータ
- theme_name
-
テーマ表の名前を指定します。
- theme_colname
-
theme_name
のジオメトリ列の名前を指定します。 - aggr_type_string
-
1つ以上の数値を受け入れ、1つの数値を算出するOracle SQLの集計ファンクションを指定します(
SUM
、MIN
、MAX
、AVG
など)。 - aggr_col_string
-
集計値の計算を行う
theme_name
の列名を指定します(「使用上のノート」を参照)。たとえば、POPULATION列を指定します。 - geom
-
ジオメトリ・オブジェクト。
- dst_spec
-
距離バッファまたは考慮すべき最も近いジオメトリの数を指定する文字列を引用符で囲んで指定します。書式および意味については、「使用上のノート」を参照してください。
使用上のノート
特定のジオメトリについて、このファンクションはtheme_name
表のジオメトリを識別して、共通部分の比率を検出し、指定された集計にその比率を掛けて、ジオメトリの集計を行います。具体的には、指定されたジオメトリと交差するtheme_name
表のすべての行について、次のファンクションの値を戻します。
aggr_type_string(aggr_col_string * proportional_area_of_intersection(geometry, theme_name.theme_colname))
theme_colname
列には、空間索引が定義されている必要があります。最適なパフォーマンスを得るには、この列に簡略化されたジオメトリを挿入します。
dst_spec
パラメータを指定する場合は、次のうちのいずれかを引用符で囲んで指定します。
-
distance
キーワードおよびオプションでunit
キーワード(距離値に関係付けられる測定単位)。これにより、ジオメトリの周りにバッファを指定します。たとえば、'distance=2 unit=km'
は、入力ジオメトリの周りに2kmのバッファを指定します。dst_spec
を指定しない場合、バッファは使用されません。unit
キーワードを指定する場合、値はMDSYS.SDO_DIST_UNITS表のSDO_UNIT値('unit=km'
など)である必要があります。unit
キーワードを指定しない場合、ジオメトリに関連付けられた測定単位が使用されます。測定単位の指定の詳細は、「測定単位のサポート」を参照してください。 -
sdo_num_res
キーワード。これにより、考慮すべき最も近くにあるジオメトリの数を指定します(比率により求められる範囲は考慮しません)。たとえば、'sdo_num_res=5'
は、指定した点に最も近い5都市の人口を要求する問合せに使用できます。
例
次の例では、指定した点ジオメトリを中心に、半径3マイルの領域でテーマ集計を行います。この例では、国内の人口分布が均一であると仮定して、様々な国の円の面積の割合に基づき、その領域内の総人口を計算します。
SELECT sdo_sam.aggregates_for_geometry( 'GEOD_COUNTIES', 'GEOM', 'sum', 'totpop', SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-73.943849, 40.6698,NULL), NULL, NULL), 'distance=3 unit=mile') FROM DUAL a ;
親トピック: SDO_SAMパッケージ(空間分析およびマイニング)
31.2 SDO_SAM.AGGREGATES_FOR_LAYER
構文
SDO_SAM.AGGREGATES_FOR_LAYER( theme_name IN VARCHAR2, theme_colname IN VARCHAR2, aggr_type_string IN VARCHAR2, aggr_col_string IN VARCHAR2, tablename IN VARCHAR2, colname IN VARCHAR2, dst_spec IN VARCHAR2 DEFAULT NULL ) RETURN SDO_REGAGGRSET;
説明
ジオメトリのレイヤーのテーマ集計を行います。
パラメータ
- theme_name
-
テーマ表の名前を指定します。
- theme_colname
-
theme_name
のジオメトリ列の名前を指定します。 - aggr_type_string
-
1つ以上の数値を受け入れ、1つの数値を算出するOracle SQLの集計ファンクションを指定します(
SUM
、MIN
、MAX
、AVG
など)。 - aggr_col_string
-
集計値の計算を行う
theme_name
の列名を指定します(「使用上のノート」を参照)。たとえば、POPULATION列を指定します。 - tablename
-
データ・マイニング表の名前を指定します。
- colname
-
ジオメトリを格納する
tablename
の列名を指定します。 - dst_spec
-
距離バッファまたは考慮すべき最も近いジオメトリの数を指定する文字列を引用符で囲んで指定します。書式および意味については、この章に示すSDO_SAM.AGGREGATES_FOR_GEOMETRYファンクションの「使用上のノート」を参照してください。
使用上のノート
tablename
の各ジオメトリについて、このファンクションはtheme_name
表のジオメトリを識別して、共通部分の比率を検出し、指定された集計にその比率を掛けて、tablename
の各ジオメトリの集計を行います。具体的には、theme_name
表のすべての行について、次のファンクションの値を戻します。
aggr_type_string(aggr_col_string * proportional_area_of_intersection(geometry, theme_name.theme_colname))
このファンクションは、SDO_REGAGGRSET型のオブジェクトを戻します。SDO_REGAGGRSETオブジェクト型は、次のとおり定義されます。
TABLE OF SDO_REGAGGR
SDO_REGAGGRオブジェクト型は、次のとおり定義されます。
Name Null? Type ----------------------------------------- -------- ---------------------------- REGION_ID VARCHAR2(24) GEOMETRY MDSYS.SDO_GEOMETRY AGGREGATE_VALUE NUMBER
theme_colname
列には、空間索引が定義されている必要があります。最適なパフォーマンスを得るには、この列に簡略化されたジオメトリを挿入します。
例
次の例では、TEST_TABという表のすべてのジオメトリについて、指定した点ジオメトリを中心に、半径3マイルの領域でテーマ集計を行います。この例では、国内の人口分布が均一であると仮定して、様々な国の円の面積の割合に基づき、各領域内の総人口を計算します。
SELECT a.aggregate_value FROM TABLE(sdo_sam.aggregates_for_layer( 'GEOD_COUNTIES', 'GEOM', 'SUM', TOTPOP', TEST_TAB', 'GEOM' 'distance=3 unit=mile')) a;
親トピック: SDO_SAMパッケージ(空間分析およびマイニング)
31.3 SDO_SAM.BIN_GEOMETRY
構文
SDO_SAM.BIN_GEOMETRY( geom IN SDO_GEOMETRY, tol IN SDO_DIM_ARRAY, bin_tablename IN VARCHAR2, bin_colname IN VARCHAR2 ) RETURN NUMBER;
または
SDO_SAM.BIN_GEOMETRY( geom IN SDO_GEOMETRY, dim IN SDO_DIM_ARRAY, bin_tablename IN VARCHAR2, bin_colname IN VARCHAR2 ) RETURN NUMBER;
説明
ジオメトリの交差部の最も多い四角形を計算します。
パラメータ
- geom
-
ビンを計算するジオメトリを指定します。
- tol
-
許容差(「許容差」を参照)。
- dim
-
ビンのジオメトリを格納する表の次元配列を指定します。
- bin_tablename
-
ビンのジオメトリを格納する表の名前を指定します。
- bin_colname
-
ビンのジオメトリを格納する
bin_tablename
の列を指定します。
使用上のノート
このファンクションは、指定されたジオメトリと最も多く交差するビンを戻します。複数のビンが指定されたジオメトリの同じエクステントに交差する場合は、最小の面積を持つビンが戻されます。
指定されたbin_tablename
を使用して、データ・マイニング表のすべての行に対してこの操作を実行するには、SDO_SAM.BIN_LAYERプロシージャを使用します。
例
次の例では、指定したジオメトリのビンを計算します。
SELECT sdo_sam.bin_geometry(a.geometry, 0.0000005, 'BINTBL', 'GEOMETRY') FROM poly_4pt a, user_sdo_geom_metadata b WHERE b.table_name='POLY_4PT' AND a.gid=1; SDO_SAM.BIN_GEOMETRY(A.GEOMETRY,0.0000005,'BINTBL','GEOMETRY') -------------------------------------------------------------- 43 1 row selected.
親トピック: SDO_SAMパッケージ(空間分析およびマイニング)
31.4 SDO_SAM.BIN_LAYER
構文
SDO_SAM.BIN_LAYER( tablename IN VARCHAR2, colname IN VARCHAR2, bin_tablename IN VARCHAR2, bin_colname IN VARCHAR2, bin_id_colname IN VARCHAR2, commit_interval IN NUMBER DEFAULT 20);
説明
データ・マイニング表の各位置(および対応する行)を空間ビンに割り当てます。
パラメータ
- tablename
-
データ・マイニング表の名前を指定します。
- colname
-
位置の座標を格納する
table_name
の列名を指定します。 - bin_tablename
-
空間ビンの情報(2次元空間全体の事前計算)を含む表名を指定します。
- bin_colname
-
ビンのジオメトリを格納する
bin_tablename
の列を指定します。 - bin_id_colname
-
ビンに追加する各ジオメトリのビンID値を格納するデータ・マイニング表の列名を指定します。(データ・マイニング表の影響を受けた各行は、
bin_tablename
のビン・ジオメトリのID値で更新されます。) - commit_interval
-
Spatial and Graphによって内部コミット操作が実行される前に行うビン挿入操作の回数を指定します。
commit_interval
を指定しない場合、コミットは挿入操作を20回行うたびに実行されます。
使用上のノート
このプロシージャは、bin_tablename
のビンを使用して、指定したレイヤーの各ジオメトリについて、交差部の最も多い四角形を計算します。各ジオメトリのビンID値は、bin_id_colname
に追加されます。
このプロシージャは、bin_tablename
で指定したデータ・マイニング表の各行に対して、SDO_SAM.BIN_GEOMETRYファンクションを使用する場合と同じ結果になります。
例
次の例では、POLY_4PT_TEMPデータ・マイニング表の各GEOMETRY列の位置および対応する行を空間ビンに割り当て、ビン表の挿入のたびに内部コミット操作を実行します。
CALL SDO_SAM.BIN_LAYER('POLY_4PT_TEMP', 'GEOMETRY', 'BINTBL', 'GEOMETRY', 'BIN_ID', 1);
親トピック: SDO_SAMパッケージ(空間分析およびマイニング)
31.5 SDO_SAM.COLOCATED_REFERENCE_FEATURES
構文
SDO_SAM.COLOCATED_REFERENCE_FEATURES( theme_tablename IN VARCHAR2, theme_colname IN VARCHAR2, theme_predicate IN VARCHAR2, tablename IN VARCHAR2, colname IN VARCHAR2, ref_predicate IN VARCHAR2, dst_spec IN VARCHAR2, result_tablename IN VARCHAR2, commit_interval IN NUMBER DEFAULT 100);
説明
部分的な条件ベースの表の結合を実行し、結合の結果を表にマテリアライズします。
パラメータ
- theme_tablename
-
tablename
を結合する表名を指定します。 - theme_colname
-
theme_tablename
のジオメトリ列の名前を指定します。 - theme_predicate
-
theme_tablename
に適用されるWHERE句の条件を指定します。 - tablename
-
データ・マイニング表の名前を指定します。
- colname
-
位置の座標を格納する
tablename
の列名を指定します。 - ref_predicate
-
tablename
に適用されるWHERE句の条件を指定します。ヌルまたは非ヌルの値である必要があります。ヌルの場合は条件が適用されません。非ヌルの場合、単一の表述語である必要があります。例:'country_code=10'
- dst_spec
-
ジオメトリの周りのバッファを、距離値および単位値(オプション)を含む文字列を引用符で囲んで指定します。書式および意味については、「使用上のノート」を参照してください。
- result_tablename
-
マテリアライズした結合の結果を格納する表を指定します。この表が存在し、
(tid NUMBER, rid1 VARCHAR2(24), rid2 VARCHAR2(24))
と定義されている必要があります。 - commit_interval
-
Spatial and Graphによって内部コミット操作が実行される前に行う内部結合操作の回数を指定します。
commit_interval
を指定しない場合、コミットは内部結合操作を100回行うたびに実行されます。
使用上のノート
このプロシージャは、条件ベースの結合操作によって戻されるROWIDの各組合せをマテリアライズして、result_tablename
のrid1、rid2
列に格納します。tid
は、各rid1
値に対応して生成される一意の相互作用番号です。
dst_spec
パラメータは、distance
キーワードおよびオプションでunit
キーワード(距離値に関連付けられた測定単位)を含み、引用符で囲んで指定します。これにより、ジオメトリの周りにバッファを指定します。たとえば、'distance=2 unit=km'
は、入力ジオメトリの周りに2kmのバッファを指定します。dst_spec
を指定しない場合、バッファは使用されません。
unit
キーワードを指定する場合、値はMDSYS.SDO_DIST_UNITS表のSDO_UNIT値('unit=KM'
など)である必要があります。unit
キーワードを指定しない場合、ジオメトリに関連付けられた測定単位が使用されます。測定単位の指定の詳細は、「測定単位のサポート」を参照してください。
例
次の例では、1990年の人口(POP90列の値)が120,000人を超え、州間高速道路からの距離(GEOD_INTERSTATES表のGEOM列)が20km以内である都市を識別します。結果はCOLOCATION_TABLEという表に格納され、内部操作を20回行うたびに内部コミット操作が実行されます。
EXECUTE SDO_SAM.COLOCATED_REFERENCE_FEATURES( 'geod_cities', 'location', 'pop90 > 120000', 'geod_interstates', 'geom', null, 'distance=20 unit=km', 'colocation_table', 20);
親トピック: SDO_SAMパッケージ(空間分析およびマイニング)
31.6 SDO_SAM.SIMPLIFY_GEOMETRY
構文
SDO_SAM.SIMPLIFY_GEOMETRY( geom IN SDO_GEOMETRY, dim IN SDO_DIM_ARRAY, pct_area_change_limit IN NUMBER DEFAULT 2 ) RETURN SDO_GEOMETRY;
または
SDO_SAM.SIMPLIFY_GEOMETRY( geom IN SDO_GEOMETRY, tol IN NUMBER, pct_area_change_limit IN NUMBER DEFAULT 2 ) RETURN SDO_GEOMETRY;
説明
ジオメトリを簡略化します。
パラメータ
- geom
-
簡略化するジオメトリを指定します。
- dim
-
簡略化するジオメトリの次元配列を指定します。
- tol
-
許容差(「許容差」を参照)。
- pct_area_change_limit
-
簡略化の反復ごとに変更される面積の割合を指定します(「使用上のノート」を参照)。
使用上のノート
このファンクションは、SDO_UTIL.SIMPLIFYファンクション(「SDO_UTILパッケージ(ユーティリティ)」を参照)を適切なしきい値で内部適用することによって、ジオメトリの頂点の数を削減します。
頂点の数を削減すると、ジオメトリの面積が変更される場合があります。pct_area_change_limit
パラメータで、ジオメトリを簡略化する際に変更される面積の許容差を指定します。通常は1から100の範囲です。デフォルト値(2)の場合、ジオメトリの面積は簡略化によって元のジオメトリから2%の範囲内で増減します。
例
次の例では、POLY_4PT_TEMP表のGEOMETRY列のジオメトリを簡略化します。
SELECT sdo_sam.simplify_geometry(a.geometry, 0.00000005) FROM poly_4pt_temp a, user_sdo_geom_metadata b WHERE b.table_name='POLY_4PT_TEMP' ; SDO_SAM.SIMPLIFY_GEOMETRY(A.GEOMETRY,0.00000005)(ORIG_AREA, CUR_AREA, ORIG_LEN, -------------------------------------------------------------------------------- SDO_SMPL_GEOMETRY(28108.5905, 28108.5905, 758.440118, 758.440118, SDO_GEOMETRY(2 003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARRAY(-122.4215, 37.7862, -122.422, 37.7869, -122.421, 37.789, -122.42, 37.7866, -122.4215, 37.78 62))) SDO_SMPL_GEOMETRY(4105.33806, 4105.33806, 394.723053, 394.723053, SDO_GEOMETRY(2 003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARRAY(-122.4019, 37.8052, -122.4027, 37.8055, -122.4031, 37.806, -122.4012, 37.8052, -122.4019, 3 7.8052))) . . . 50 rows selected.
親トピック: SDO_SAMパッケージ(空間分析およびマイニング)
31.7 SDO_SAM.SIMPLIFY_LAYER
構文
SDO_SAM.SIMPLIFY_LAYER( theme_tablename IN VARCHAR2, theme_colname IN VARCHAR2, smpl_geom_colname IN VARCHAR2, commit_interval IN NUMBER DEFAULT 10, pct_area_change_limit IN NUMBER DEFAULT 2);
説明
ジオメトリのレイヤーを簡略化します。
パラメータ
- theme_tablename
-
簡略化するジオメトリのレイヤーを含む表の名前を指定します。
- theme_colname
-
簡略化するジオメトリを含むSDO_GEOMETRY型の
theme_tablename
の列を指定します。 - smpl_geom_colname
-
このプロシージャによって簡略化されたジオメトリが配置される、SDO_GEOMETRY型の
theme_tablename
の列を指定します。 - commit_interval
-
Spatial and Graphによって内部コミット操作が実行される前に簡略化するジオメトリの数を指定します。
commit_interval
を指定しない場合、コミットは簡略化操作を10回行うたびに実行されます。 - pct_area_change_limit
-
簡略化の反復ごとに変更される面積の割合を指定します(SDO_SAM.SIMPLIFY_GEOMETRYファンクションの「使用上のノート」を参照)。
使用上のノート
このプロシージャは、レイヤー内のすべてのジオメトリを簡略化します。実行する操作は、レイヤー内の各ジオメトリに対してSDO_SAM.SIMPLIFY_GEOMETRYファンクションをコールする場合と同じですが、このファンクションでは、簡略化された各ジオメトリは、コール元に戻されるのではなく、表内の別々の列に配置されます。SDO_SAM.SIMPLIFY_GEOMETRYファンクションの「使用上のノート」も参照してください。
例
次の例では、SMPL_GEOMという列をPOLY_4PT_TEMP表に追加して、POLY_4PT_TEMP表のGEOMETRY列のすべてのジオメトリを簡略化し、簡略化された各ジオメトリを対応する元のジオメトリと同じ行のSMPL_GEOM列に配置します。
ALTER TABLE poly_4pt_temp ADD (smpl_geom mdsys.sdo_geometry); Table altered. EXECUTE sdo_sam.simplify_layer('POLY_4PT_TEMP', 'GEOMETRY', 'SMPL_GEOM'); PL/SQL procedure successfully completed.
親トピック: SDO_SAMパッケージ(空間分析およびマイニング)
31.8 SDO_SAM.SPATIAL_CLUSTERS
構文
SDO_SAM.SPATIAL_CLUSTERS( tablename IN VARCHAR2, colname IN VARCHAR2, max_clusters IN NUMBER, allow_outliers IN VARCHAR2 DEFAULT 'TRUE', tablepartition IN VARCHAR2 DEFAULT NULL ) RETURN SDO_REGIONSET;
説明
既存のRツリー索引を使用してクラスタを計算し、SDO_REGIONオブジェクトの集合を戻します。このオブジェクトでは、ジオメトリ列によって各クラスタの境界が指定され、geometry_key
値がNULLに設定されています。
パラメータ
- tablename
-
データ・マイニング表の名前を指定します。
- colname
-
位置の座標を格納する
tablename
の列名を指定します。 - max_clusters
-
取得するクラスタの最大数を指定します。
- allow_outliers
-
TRUE
(デフォルト)を指定した場合、外れ値(独立したインスタンス)が空間クラスタに含まれます。FALSE
を指定した場合、外れ値は空間クラスタには含まれません。(TRUE
を指定すると、すべてのデータが許容されるため、クラスタは大きくなります。FALSE
を指定すると、一部のデータが除外されるため、クラスタは小さくなります。) - tablepartition
-
tablename
のパーティション名を指定します。
使用上のノート
クラスタはtablename
の空間Rツリー索引を使用して計算されます。
例
次の例では、都市の位置を最大3つのクラスタにクラスタ化します。外れ値はクラスタに含めます。
SELECT * FROM TABLE(sdo_sam.spatial_clusters('PROJ_CITIES', 'LOCATION', 3, 'TRUE'));
親トピック: SDO_SAMパッケージ(空間分析およびマイニング)
31.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パッケージ(空間分析およびマイニング)
31.10 SDO_SAM.TILED_BINS
構文
SDO_SAM.TILED_BINS( l1 IN NUMBER, u1 IN NUMBER, l2 IN NUMBER, u2 IN NUMBER, tiling_level IN NUMBER DEFAULT NULL, srid IN NUMBER DEFAULT NULL, xdivs IN NUMBER DEFAULT NULL, ydivs IN NUMBER DEFAULT NULL ) RETURN SDO_REGIONSET;
説明
2次元空間を四角形処理し、その四角形に対応するジオメトリを戻します。
パラメータ
- l1
-
最初の次元のエクステントの下限を指定します。
- u1
-
最初の次元のエクステントの上限を指定します。
- l2
-
第2の次元のエクステントの下限を指定します。
- u2
-
第2の次元のエクステントの上限を指定します。
- tiling_level
-
指定したエクステントの四角形処理に使用するレベルを指定します。このパラメータを指定すると、各ディメンションのエクステントは、2^
tiling_level
個の要素に分割され、結果として最大で4×tiling_level
の四角形が作成されます。(このパラメータ、またはxdivs
パラメータとydivs
パラメータの組合せのいずれかを指定します。) - srid
-
戻される四角形ジオメトリの座標系に含まれるSRID値を指定します。
- xdivs
-
1つ目の次元のエクステントを何回分割するかを指定します(分割後の要素の合計数は
xdivs
+ 1)。たとえば、xdivs
を10に指定すると、1つ目の次元のエクステントは11の要素に分割されます。 - ydivs
-
2つ目の次元のエクステントを何回分割するかを指定します(分割後の要素の合計数は
ydivs
+ 1)。たとえば、ydivs
を10に指定すると、2つ目の次元のエクステントは11の要素に分割されます。
使用上のノート
tiling_level
パラメータ、またはxdivs
パラメータとydivs
パラメータの両方を指定する必要があります。これらの3つのパラメータをすべて指定した場合、tiling_level
パラメータは無視され、xdivs
パラメータとydivs
パラメータが使用されます。
xdivs
パラメータとydivs
パラメータを指定した場合、戻されるグリッド(四角形)の合計数は、(xdivs+1)×(ydivs+1)
です。
このファンクションは、SDO_REGIONSET型のオブジェクトを戻します。SDO_REGIONSETオブジェクト型は、次のとおり定義されます。
TABLE OF SDO_REGION
SDO_REGIONオブジェクト型は、次のとおり定義されます。
Name Null? Type ----------------------------------------- -------- ---------------------------- ID NUMBER GEOMETRY MDSYS.SDO_GEOMETRY
例
次の例では、標準的な緯度と経度の座標系(SRID 8307)を使用して、四角形処理レベル1で地表面全体の四角形処理を行います。結果として戻されるSDO_REGIONSETオブジェクトには、4つのSDO_REGIONオブジェクト(四角形ごとに1つのオブジェクト)が含まれます。
SELECT * FROM TABLE(sdo_sam.tiled_bins(-180, 180, -90, 90, 1, 8307)) ORDER BY id; ID ---------- GEOMETRY(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES) -------------------------------------------------------------------------------- 0 SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR AY(-180, -90, 0, 0)) 1 SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR AY(-180, 0, 0, 90)) 2 SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR AY(0, -90, 180, 0)) 3 SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR AY(0, 0, 180, 90)) 4 rows selected.
親トピック: SDO_SAMパッケージ(空間分析およびマイニング)