Topik ini menjelaskan fungsi ST_Resample, yang melakukan pengambilan sampel ulang pada sebuah trajektori.
Sintaksis
trajectory ST_Resample(trajectory traj, config);Parameter
Parameter | Deskripsi |
traj | Trajektori yang diambil sampel ulangnya. |
config | Aturan yang digunakan untuk mengambil sampel ulang trajektori. Format: |
Hanya satu aturan yang dapat ditentukan melalui parameter config. Tabel berikut menjelaskan aturan yang dapat ditentukan menggunakan parameter config.
Aturan | Tipe | Deskripsi |
add_point.distance_lesser | Bilangan titik mengambang | Menambahkan titik secara merata ke setiap trajektori sehingga jarak antara dua titik lebih kecil dari nilai parameter. |
add_point.period_lesser | String yang dapat dikonversi menjadi tipe INTERVAL | Menambahkan titik secara merata ke setiap trajektori sehingga periode waktu antara dua titik lebih kecil dari nilai parameter. |
drop_point.distance_lesser | Bilangan titik mengambang | Ketika jarak antara semua titik segmen berturut-turut dari sebuah trajektori dan titik awal trajektori kurang dari nilai aturan ini, segmen berturut-turut tersebut digabungkan. Hanya titik awal dan akhir dari segmen yang diperoleh yang dipertahankan. |
drop_point.period_lesser | String yang dapat dikonversi menjadi tipe INTERVAL | Ketika jumlah waktu periode yang dibutuhkan antara beberapa segmen berturut-turut dari sebuah trajektori kurang dari periode waktu yang diberikan, gabungkan segmen berturut-turut tersebut. Hanya titik awal dan akhir dari segmen yang diperoleh yang dipertahankan. |
Deskripsi
Fungsi ini melakukan pengambilan sampel ulang pada sebuah trajektori berdasarkan aturan yang telah ditentukan dan mengembalikan hasilnya.
Contoh
With traj As
(
select '{"trajectory":{"version":1,"type":"STPOINT","leafcount":5,"start_time":"2000-01-01 00:00:00","end_time":"2000-01-05 00:00:00","spatial":"LINESTRING(1 1,10 10,11 11,13 13,15 15)","timeline":["2000-01-01 00:00:00","2000-01-02 00:00:00","2000-01-03 00:00:00","2000-01-04 00:00:00","2000-01-05 00:00:00"]}}'::trajectory a
)
SELECT ST_Resample(a, '{"add_point.distance_lesser":3}') from traj;
st_resample
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{"trajectory":{"version":1,"type":"STPOINT","leafcount":9,"start_time":"2000-01-01 00:00:00","end_time":"2000-01-05 00:00:00","spatial":"LINESTRING(1 1,2.8 2.8,4.6 4.6,6.4 6.4,8.2 8.2,10 10,11 11,13 13,15 15)","timeline":["2000-01-01 00:00:00","2000-01-01 04:48:00","2000-01-01 09:36:00","2000-01-01 14:24:00","2000-01-01 19:12:00","2000-01-02 00:00:00","2000-01-03 00:00:00","2000-01-04 00:00:00","2000-01-05 00:00:00"]}}
(1 row)
With traj As
(
select '{"trajectory":{"version":1,"type":"STPOINT","leafcount":5,"start_time":"2000-01-01 00:00:00","end_time":"2000-01-05 00:00:00","spatial":"LINESTRING(1 1,10 10,11 11,13 13,15 15)","timeline":["2000-01-01 00:00:00","2000-01-02 00:00:00","2000-01-03 00:00:00","2000-01-04 00:00:00","2000-01-05 00:00:00"]}}'::trajectory a
)
SELECT ST_Resample(a, '{"add_point.period_lesser":"0.5 day"}') from traj;
st_resample
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{"trajectory":{"version":1,"type":"STPOINT","leafcount":9,"start_time":"2000-01-01 00:00:00","end_time":"2000-01-05 00:00:00","spatial":"LINESTRING(1 1,5.5 5.5,10 10,10.5 10.5,11 11,12 12,13 13,14 14,15 15)","timeline":["2000-01-01 00:00:00","2000-01-01 12:00:00","2000-01-02 00:00:00","2000-01-02 12:00:00","2000-01-03 00:00:00","2000-01-03 12:00:00","2000-01-04 00:00:00","2000-01-04 12:00:00","2000-01-05 00:00:00"]}}
(1 row)
With traj As
(
select '{"trajectory":{"version":1,"type":"STPOINT","leafcount":5,"start_time":"2000-01-01 00:00:00","end_time":"2000-01-05 00:00:00","spatial":"LINESTRING(1 1,10 10,11 11,13 13,15 15)","timeline":["2000-01-01 00:00:00","2000-01-02 00:00:00","2000-01-03 00:00:00","2000-01-04 00:00:00","2000-01-05 00:00:00"]}}'::trajectory a
)
SELECT ST_Resample(a, '{"drop_point.distance_lesser":3}') from traj;
st_resample
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{"trajectory":{"version":1,"type":"STPOINT","leafcount":4,"start_time":"2000-01-01 00:00:00","end_time":"2000-01-05 00:00:00","spatial":"LINESTRING(1 1,10 10,13 13,15 15)","timeline":["2000-01-01 00:00:00","2000-01-02 00:00:00","2000-01-04 00:00:00","2000-01-05 00:00:00"]}}
(1 row)