ST_Density mengembalikan larik integer yang setiap elemennya menyatakan jumlah titik pengambilan sampel dalam lingkungan sekitar titik lintasan yang bersesuaian.
Sintaksis
integer[] ST_Density(trajectory traj, float dr, interval dt);Parameter
| Parameter | Type | Description |
|---|---|---|
traj | trajectory | Lintasan yang akan dianalisis. |
dr | float | Rentang spasial dari lingkungan sekitar. |
dt | interval | Rentang waktu dari lingkungan sekitar. |
Cara kerja
Untuk setiap titik dalam lintasan, ST_Density menghitung semua titik pengambilan sampel yang jarak spasialnya dari titik tersebut kurang dari dr dan selisih waktunya dari titik tersebut kurang dari dt. Setiap titik selalu menghitung dirinya sendiri.
Jarak spasial dihitung berdasarkan SRID lintasan tersebut.
Contoh
Contoh berikut membuat lintasan dengan lima titik dan menghitung kerapatan lingkungan sekitarnya menggunakan radius spasial 400.000 unit dan radius waktu 10 menit.
SELECT ST_Density(
st_makeTrajectory(
'STPOINT'::leaftype,
ARRAY[1::float8, 2, 3, 4, 5], -- koordinat x
ARRAY[2::float8, 10, 9, 8, 7], -- koordinat 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: rentang spasial
'10 minute' -- dt: rentang waktu
);Hasil:
st_density
-------------
{1,3,4,4,3}
(1 row)Setiap nilai dalam larik tersebut berkorespondensi dengan satu titik lintasan:
| Indeks titik | Timestamp | Jumlah tetangga |
|---|---|---|
| 1 | 11:30 | 1 |
| 2 | 11:31 | 3 |
| 3 | 11:32 | 4 |
| 4 | 11:33 | 4 |
| 5 | 11:34 | 3 |
Titik-titik tengah (3 dan 4) memiliki nilai tertinggi karena berada dalam rentang spasial maupun temporal dari lebih banyak titik tetangga.
Lanjutan
ST_makeTrajectory: Membuat lintasan dari larik koordinat dan timestamp.
ST_DistanceCPA: Menghitung titik pendekatan terdekat antara dua lintasan.