Tôi có một khung dữ liệu geopandas của một loạt các linestrings có một số dữ liệu được liên kết với mỗi đỉnh / điểm:
Point_x = (Lat, Lon, Time, ID, Data1, Data2, Data3)
Các điểm được chuyển đổi thành linestrings dựa trên ID và được sắp xếp theo Thời gian.
Tôi muốn phá vỡ các linestrings nơi tại đó một số điều kiện được đáp ứng. Ngay bây giờ đó là khi khoảng cách giữa các Điểm lớn hơn một số giá trị. Trong tương lai, nó có thể là nơi một chức năng của các trường Dữ liệu là một giá trị. Chẳng hạn, tách một linestring khi Tốc độ vượt qua 5 kph.
Vấn đề hiện tại là một số bản nhạc được hình thành từ các điểm có ID trùng lặp, do đó dòng dõi nhảy qua lại trên khoảng cách lớn và tôi muốn có một ngưỡng để phá vỡ các dòng này.
Bất kỳ ý tưởng về cách chính xác để cấu trúc này hoặc thư viện / phương pháp có thể được sử dụng?
Khung dữ liệu có hơn 150 nghìn bản nhạc với nhiều điểm trên mỗi bản nhạc nên hiệu quả sẽ rất tốt.
Đây là một ví dụ về các bài hát DF:
ID geometry
204235000 LINESTRING (37.62001 -28.99535, 37.62015 -28.9...
205400000 LINESTRING (3.807816666666666 -18.083181666666...
207138000 LINESTRING (22.73206 -34.97915833333333, 22.73...
209016000 LINESTRING (8.447673333333331 -23.522783333333...
Đây là một mẫu từ các điểm DF. Có 18 cột bao gồm Datetime, Point (Lon, Lat), Speed, Size, v.v.
Index Heading Latitude Longitude ID
20 92.8 -35.946802 13.089695 210725000
21 93.5 -35.946912 13.091808 210725000
22 95.4 -35.965520 13.497698 210725000
23 94.7 -35.965803 13.501898 210725000
24 94.9 -35.965987 13.504573 210725000
EDIT: Đã thử để rõ ràng hơn một chút.
gd.head()
sẽ được hoan nghênh.