すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ST_Density

最終更新日:Mar 29, 2026

ST_Density は、軌道上の各ポイントに対応する近傍領域内のサンプリングポイント数を要素とする整数配列を返します。

構文

integer[] ST_Density(trajectory traj, float dr, interval dt);

パラメーター

パラメーター説明
trajtrajectory解析対象の軌道です。
drfloat近傍領域の空間的範囲です。
dtinterval近傍領域の時間的範囲です。

仕組み

軌道上の各ポイントについて、ST_Density は、当該ポイントからの空間的距離が dr 未満 かつ 時間的差分が dt 未満であるすべてのサンプリングポイントをカウントします。各ポイント自身は常にカウント対象となります。

空間的距離は、軌道の SRID を用いて計算されます。

以下の例では、5 ポイントからなる軌道を構築し、空間半径 400,000 単位および時間半径 10 分を用いて近傍密度を計算しています。

SELECT ST_Density(
  st_makeTrajectory(
    'STPOINT'::leaftype,
    ARRAY[1::float8, 2, 3, 4, 5],           -- x 座標
    ARRAY[2::float8, 10, 9, 8, 7],          -- y 座標
    4326,                                    -- SRID (WGS 84)
    ARRAY[
      '2010-01-01 11:30'::timestamp,
      '2010-01-01 11:31',
      '2010-01-01 11:32',
      '2010-01-01 11:33',
      '2010-01-01 11:34'
    ]
  ),
  400000,       -- dr: 空間的範囲
  '10 minute'   -- dt: 時間的範囲
);

実行結果:

 st_density
-------------
 {1,3,4,4,3}
(1 row)

配列内の各値は、それぞれの軌道ポイントに対応します。

ポイント番号タイムスタンプ近傍カウント数
111:301
211:313
311:324
411:334
511:343

中央のポイント(3 および 4)は、より多くの隣接ポイントの空間的・時間的範囲内に位置しているため、最も高いカウント数を示します。

次のステップ

  • ST_makeTrajectory: 座標配列およびタイムスタンプから軌道を作成します。

  • ST_DistanceCPA: 2つの軌道間の最接近点間距離を計算します。