25.1 SDO_GEOM.DTW_DISTANCE
書式
SDO_GEOM.DTW_DISTANCE( s IN SDO_GEOMETRY, t IN SDO_GEOMETRY, w_in IN NUMBER default NULL ) RETURN NUMBER;
説明
2つのオブジェクト間の距離を測定することによって、2つの異なる空間軌跡を比較します。
パラメータ
- s
-
最初の2次元の線ジオメトリ。
- t
-
2番目の2次元の線ジオメトリ。
- w_in
-
最初の線ジオメトリの特定の頂点と比較する必要がある、2番目の線ジオメトリの頂点の数を指定します。
たとえば、
w_in = 2
の場合、最初の線の3番目の頂点は、2番目の線の頂点1、2、3、4および5と比較されます。つまり、頂点を索引として使用して、比較の範囲は頂点の2ポイント前と2ポイント後と決定されます。同様に、w_in = 1
の場合、最初の線の2番目の頂点は、索引2の前の頂点が1つしかないため、2番目の線の頂点1、2、3および4と比較されます。また、次の点にも注意してください。- 計算された範囲が2番目の線ジオメトリで使用可能な頂点の最大数よりも大きい場合、比較は2番目の線で使用可能な頂点の最大数に制限されます。
w_in = 0
の場合、最初の線の最初の頂点は、索引1の前の頂点がないため、2番目の線の頂点1、2および3と比較されます。w_in = NULL
(デフォルト)の場合、最初の線の各頂点(i)は、2番目の線の頂点(i)のみと比較されます。
使用上のノート
SDO_GEOM.DTW_DISTANCE
ファンクションは、動的時間伸縮アルゴリズムに基づいており、2つの空間軌跡間の距離を計算して、それらの間の類似性を測定します。
空間軌跡は、2次元の線ジオメトリで表されます。2つの線がまったく同じ場合、ファンクションはゼロを返します。線がそれるにつれて、結果の距離値は大きくなります。
例
次の例では、w_in
距離を2として、2つの空間線軌跡を比較します。
SQL> select sdo_geom.dtw_distance(
sdo_geometry(2002, NULL, NULL, sdo_elem_info_array(1,2,1),
sdo_ordinate_array(1,1, 2,2, 3,3, 4,4, 5,5)),
sdo_geometry(2002, NULL, NULL, sdo_elem_info_array(1,2,1),
sdo_ordinate_array(2,2, 3,3, 4,4)), 2)
from dual;
SDO_GEOM.DTW_DISTANCE(SDO_GEOMETRY(2002,NULL,NULL,SDO_ELEM_INFO_ARRAY(1,2,1),SDO
--------------------------------------------------------------------------------
2.82842712
親トピック: SDO_GEOMパッケージ(ジオメトリ)