GeoPandas / Shapely ทำงานในพื้นที่และระยะทางเท่าใด


13

ดูเหมือนคำถามงี่เง่า แต่ฉันไม่สามารถหาคำตอบที่ชัดเจนเกี่ยวกับสิ่งที่: geopandas หน่วย / หุ่นดีใช้คำนวณระยะทาง / พื้นที่ระหว่างวัตถุ?

คำตอบ:


15

หุ่นดีใช้ระบบระนาบคาร์ทีเซียนสำหรับคำนวณรูปทรงเรขาคณิต

หุ่นดีไม่สนับสนุนการแปลงระบบพิกัด การดำเนินการทั้งหมดในฟีเจอร์สองอย่างขึ้นไปสันนิษฐานว่าฟีเจอร์นั้นมีอยู่ในระนาบคาร์ทีเซียนเดียวกัน

GeoPandasใช้Fionaเพื่ออ่าน shapefiles (และอื่น ๆ ) และPyprojสำหรับการแปลงแบบ cartographic

ระบบพิกัดอ้างอิง (CRS) ของข้อมูลเวกเตอร์ของคอลเลกชันเข้าถึงได้ผ่านแอตทริบิวต์ crs แบบอ่านอย่างเดียว

import fiona
c = fiona.open("test.shp")
print c.crs['units']
m

หน่วยสำหรับคำนวณระยะทาง / พื้นที่ระหว่างวัตถุที่มีรูปร่างดีคือมาตรวัดในกรณีนี้

มันเหมือนกับ GeoPandas

import geopandas as gp
df = gp.GeoDataFrame.from_file('test.shp')
print df.crs['units']
m

นั่นหมายความว่าถ้าคุณทำงานกับ crs.unit = degree (WGS84 เป็นต้น) การคำนวณทั้งหมดไม่ถูกต้องคุณต้องปฏิเสธชั้นของคุณก่อน ( ฉันจะแปลงการคาดการณ์ของ Eastings และ Northings เป็น WSG84 ใน geopandas ได้อย่างไร )


1
มีอะไรเปลี่ยนแปลงเมื่อคุณโหลดจาก PostGIS แทนหรือไม่ ฉันกำลังตั้งค่าพิกัดเป็นอาร์กิวเมนต์เมื่อเรียกread_postgisใช้เฟรมข้อมูลผลลัพธ์เท่านั้นที่มีคุณลักษณะcrsซึ่งเป็นสตริง แต่ไม่ได้มีแอตทริบิวต์crs['units']; พยายามที่จะขอให้ผลลัพธ์ใน TypeError
kuanb

3

หน่วยใดที่แสดงโดยพิกัดในรูปทรงเรขาคณิตของคุณ

รูปทรงที่มีรูปร่างดีคือคาร์ทีเซียนและไม่มีข้อสันนิษฐานเกี่ยวกับการเป็นโหลน / แลตหรืออย่างอื่น


0

สำหรับ Geopandas ขึ้นอยู่กับระบบอ้างอิงพิกัดที่กำหนดให้กับ GeoDataFrame

สำหรับหุ่นดีในหน่วยเดียวกันของเครื่องบินคาร์ทีเซียนหุ่นดีไม่สนับสนุนการจำแหล่งที่มา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.