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