มากกว่า

ชี้ไปที่กริดที่ผิดปกติ

ชี้ไปที่กริดที่ผิดปกติ


ฉันมีชุดข้อมูลขนาดใหญ่ (ล้านคะแนน) และกริดที่ผิดปกติ (quadtree) ในรูปแบบเชปไฟล์ และฉันต้องแปลงคะแนนเป็นจำนวนบนกริดที่ให้ไว้ ฉันทำให้มันใช้งานได้โดยใช้ Polygon.contains หุ่นสวย และ double-loop ที่ดูไร้เดียงสาซึ่งมีสเกลเป็น O(n**2)

เห็นได้ชัดว่าสคริปต์ช้ามาก มันใช้เวลานานมากแล้วกับคะแนนนับพัน มีวิธีอื่นในการลดเวลาทำงานอย่างมากโดยไม่ต้องเขียนโค้ดเพิ่มเติมอีกหรือไม่?

ขั้นตอนทั่วไปในการแปลงคะแนนจำนวนมากเป็นระบบกริดคืออะไร และเรียกว่าอย่างไร เพื่อให้ฉันสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับระบบได้


แทนที่จะตรวจสอบทุกจุดเทียบกับทุกรูปหลายเหลี่ยมในกริดของคุณ คุณสามารถใช้ดัชนีเชิงพื้นที่เพื่อเร่งความเร็วของสิ่งต่างๆ ได้ ดัชนีเชิงพื้นที่ช่วยให้คุณค้นหารูปหลายเหลี่ยมที่มีกล่องขอบเขตที่ตัดกับกล่องขอบเขตคิวรี ในกรณีของคุณ เนื่องจากรูปหลายเหลี่ยมในรูปสี่เหลี่ยมจัตุรัสของคุณจะเป็นสี่เหลี่ยมจัตุรัส และการค้นหาจุดของคุณ คุณไม่จำเป็นต้องโทรประกอบด้วย.

มีโค้ดตัวอย่างบางส่วนที่ใช้ Shapely และ Rtree ในคำตอบนี้:

https://gis.stackexchange.com/a/144764/12420