मेरे पास लिनस्टार्स के एक गुच्छा का जियोपैन्डस डेटाफ्रेम है जिसमें प्रत्येक शीर्ष / बिंदु के साथ कुछ डेटा जुड़ा हुआ है:
Point_x = (Lat, Lon, Time, ID, Data1, Data2, Data3)
अंक ID के आधार पर linestrings में परिवर्तित हो जाते हैं और Time द्वारा ऑर्डर किए जाते हैं।
मैं उस लाइनस्ट्रेस को तोड़ना चाहता हूं, जहां कुछ शर्त पूरी की जाती है। अभी जब पॉइंट्स के बीच की दूरी कुछ मूल्य से अधिक है। भविष्य में यह हो सकता है जहां डेटा फ़ील्ड का एक फ़ंक्शन कुछ मूल्य है। उदाहरण के लिए, जब स्पीड 5 किलोमीटर प्रति घंटे की रफ्तार से आगे बढ़े तो एक लिनेस्ट्रिंग को विभाजित करें।
वर्तमान समस्या यह है कि कुछ ट्रैक ऐसे बिंदुओं से बनते हैं जिनकी डुप्लिकेट आईडी होती है, इसलिए लिनस्ट्रिंग बड़ी दूरी पर आगे और पीछे कूदता है और मैं चाहता हूं कि इन लाइनों को तोड़ दें।
इस या पुस्तकालयों / विधियों की संरचना करने के सही तरीके पर कोई विचार जो उपयोग में हो सकते हैं?
डेटाफ़्रेम में प्रति ट्रैक कई बिंदुओं के साथ 150k से अधिक ट्रैक होते हैं, इसलिए दक्षता अच्छी होगी।
यहाँ पटरियों 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...
यहाँ बिंदुओं DF से एक नमूना है। इसमें 18 कॉलम हैं, जिसमें डेटाइम, प्वाइंट (लोना, लैट), स्पीड, साइज आदि शामिल हैं:
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
संपादित करें: थोड़ा साफ होने की कोशिश की।
gd.head()
स्वागत किया जाएगा।