29.13 SDO_PC_PKG.PC_DIFFERENCE
書式
SDO_PC_PKG.PC_DIFFERENCE(
pc_table1 IN VARCHAR2,
pc_column1 IN VARCHAR2,
id_column1 IN VARCHAR2,
id1 IN VARCHAR2,
pc_table2 IN VARCHAR2,
pc_column2 IN VARCHAR2,
id_column2 IN VARCHAR2,
id2 IN VARCHAR2,
result_table_name IN VARCHAR2,
tol IN NUMBER,
query_geom IN MDSYS.SDO_GEOMETRY DEFAULT NULL
) DETERMINISTIC PARALLEL_ENABLE;
説明
2つの点群(近いジオメトリがもう一方の点群にある可能性もあれば、ない可能性もある)を比較し、新しい点群として出力差異を返します。
パラメータ
- pc_table1
-
最初の点群に対して
SDO_POINT_CLOUD
列およびID
列が定義されている表の名前。 - pc_column1
-
pc_table1
パラメータに指定された表のSDO_POINT_CLOUD
オブジェクトの列名。 - id_column1
-
pc_table1
パラメータに指定された表のID
列の列名。 - id1
-
ID
値。 - pc_table2
-
2番目の点群に対して
SDO_POINT_CLOUD
列およびID
列が定義されている表の名前。 - pc_column2
-
pc_table2
パラメータに指定された表のSDO_POINT_CLOUD
オブジェクトの列名。 - id_column2
-
pc_table2
パラメータに指定された表のID
列の列名。 - id2
-
ID
値。 - result_table_name
-
出力差異を新しい点群データとして格納するための表の名前。
- tol
-
点の近くにあるものを決定する長さの測定単位。
- query_geom
-
ジオメトリを問い合せます。
使用上のノート
プロシージャSDO_PC_PKG.PC_DIFFERENCE
を使用して2つの点群を比較できます。これは、もう一方の点群にある近いジオメトリがない点群の点を識別することによって行います。
たとえば、2つの点群AとBを考えてみます。点群B内の近いジオメトリがない点群Aの点は、次のことを表します。
- 以前はそこにはなかった車など、実際の変更。
- レーザーが到達しない、遮られたスポットによる変更。
- 前述の2つのシナリオの組合せ - 新しく到着した車は2番目の点群に登録され、それによって建物の壁または照明用ポールの一部が見えなくなっています。壁の一部が消えたように見える可能性があります。
- 天蓋を大きくすると、高さをより高く再現するために、いくつかの点が消える可能性があります。差異の検出では、1つのフィーチャが消え、もう1つのフィーチャが現れたとみなすことがあります。
したがって、複数の点群のコンテキストでは、2つの点群間の差異を検出すると、次のことを判断するのに非常に役立ちます。
- 開発またはインフラストラクチャ・プロジェクトでの毎週の進捗状況。
- 自然災害や人災による損害。
- 天蓋や他の動きが遅いプロセスの変更。
- 不動産の変更や木の伐採など、ヒューマン・アクティビティの検出。
プロシージャSDO_PC_PKG.PC_DIFFERENCE
では、2つの点群AとBが次の入力パラメータで識別されます。
- 点群A:
pc_table1
、pc_column1
、id_column1
、id1
- 点群B:
pc_table2
、pc_column2
、id_column2
、id2
2つの点群は同じSRIDを持つことが重要です。SRID間の座標変換がサポートされています。
出力の差異は、列VAL_Di
を持つ単純な表である新しい点群です。
例
次の例では、2つの点群の差異を生成し、出力点群データが表PC1M2_B
に格納されます。
SQL> call
2 sdo_pc_pkg.pc_difference(
3 pc_table1 => 'PCS',
4 pc_column1 => 'PC',
5 id_column1 => 'ID',
6 id1 => '1',
7 pc_table2 => 'PCS',
8 pc_column2 => 'PC',
9 id_column2 => 'ID',
10 id2 => '2',
11 result_table_name => 'PC1M2_B',
12 tol => 1,
13 query_geom => SDO_GEOMETRY(
14 2003,
15 27700,
16 NULL,
17 SDO_ELEM_INFO_ARRAY(
18 1, 1003, 3),
19 SDO_ORDINATE_ARRAY(
20 0, 0,
21 1000, 1000))
);
Call completed.
次のように座標を問い合せることができます。
SQL> select * from pc1m2_b order by val_d1, val_d2, val_d3;
VAL_D1 VAL_D2 VAL_D3
---------- ---------- ----------
1 1 5
1 row selected.
親トピック: SDO_PC_PKGパッケージ(点群)