มีเครื่องมือใดบ้างที่ให้ฉันเรียกใช้รูปร่างไฟล์หลายล้านพัสดุและทำให้มันง่ายขึ้น?
มีเครื่องมือใดบ้างที่ให้ฉันเรียกใช้รูปร่างไฟล์หลายล้านพัสดุและทำให้มันง่ายขึ้น?
คำตอบ:
คุณอาจจะลองหุ่นดี - งูหลาม API ที่สร้างขึ้นบนGEOS ขณะที่ทั้งสองหุ่นดีและมี GDAL ห้องสมุดหลามคุณสามารถรวมข้อมูลจากแหล่งที่มาที่แตกต่างกัน (รวมถึงเชปไฟล์) จากนั้นจะลดความซับซ้อนและการส่งออกตามที่ต้องการ
ข้อเสียเพียงอย่างเดียวคือความเร็วหากคุณใช้งานคุณสมบัตินับล้าน - มันอาจจะเร็วกว่าที่จะใช้ GEOS หรือJTSโดยตรง
ดูวิธีการลดความซับซ้อน :
จุดทั้งหมดในวัตถุที่ทำให้เข้าใจง่ายจะอยู่ในระยะการยอมรับของรูปทรงเรขาคณิตดั้งเดิม โดยค่าเริ่มต้นอัลกอริธึมที่ช้ากว่านั้นจะรักษาโทโพโลยีไว้ ถ้ารักษาโทโพโลยีถูกตั้งค่าเป็นเท็จอัลกอริทึม Douglas-Peucker ที่เร็วกว่านั้นจะถูกใช้
>>> p = Point(0.0, 0.0)
>>> x = p.buffer(1.0)
>>> x.area
3.1365484905459389
>>> s = x.simplify(0.05, preserve_topology=False)
>>> s.area
3.0614674589207187
GDAL / OGR เวอร์ชัน 9.0 เพิ่มตัวเลือก -simplify ให้กับคำสั่งogr2ogr เอกสารแสดงให้เห็นว่ามันรักษาโทโพโลยี
- ลดความคลาดเคลื่อนที่ยอมรับได้: (เริ่มต้นด้วย GDAL 1.9.0) ความทนทานต่อระยะทางสำหรับการทำให้เข้าใจง่าย วิธีนี้จะรักษาโทโพโลยีโดยเฉพาะสำหรับรูปหลายเหลี่ยม
ตัวอย่างการใช้งาน:
ogr2ogr outfile.shp infile.shp -simplify 0.000001
ogr2ogr มีตัวเลือก "แบ่งเป็นส่วน" ที่ดูเหมือนจะทำสิ่งที่คุณต้องการ: เอกสารประกอบของ GDAL ogr2ogr
จากหน้านั้น:
-segmentize max_dist: (เริ่มต้นด้วย GDAL 1.6.0) ระยะทางสูงสุดระหว่าง 2 โหนด ใช้เพื่อสร้างขอบเขตข้อความค้นหาพิเศษแบบจุดกึ่งกลาง
GRASS v.generalize
รับแรงบันดาลใจจาก Mapshaper แต่โดยตรงในพื้นที่ให้ดูที่https://github.com/migurski/Bloch