All Products
Search
Document Center

ApsaraDB RDS:ST_Resample

Last Updated:Jun 25, 2025

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: {"Rule":"Value"}.

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)