ดูเหมือนคำถามงี่เง่า แต่ฉันไม่สามารถหาคำตอบที่ชัดเจนเกี่ยวกับสิ่งที่: geopandas หน่วย / หุ่นดีใช้คำนวณระยะทาง / พื้นที่ระหว่างวัตถุ?
ดูเหมือนคำถามงี่เง่า แต่ฉันไม่สามารถหาคำตอบที่ชัดเจนเกี่ยวกับสิ่งที่: geopandas หน่วย / หุ่นดีใช้คำนวณระยะทาง / พื้นที่ระหว่างวัตถุ?
คำตอบ:
หุ่นดีใช้ระบบระนาบคาร์ทีเซียนสำหรับคำนวณรูปทรงเรขาคณิต
หุ่นดีไม่สนับสนุนการแปลงระบบพิกัด การดำเนินการทั้งหมดในฟีเจอร์สองอย่างขึ้นไปสันนิษฐานว่าฟีเจอร์นั้นมีอยู่ในระนาบคาร์ทีเซียนเดียวกัน
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 ได้อย่างไร )
หน่วยใดที่แสดงโดยพิกัดในรูปทรงเรขาคณิตของคุณ
รูปทรงที่มีรูปร่างดีคือคาร์ทีเซียนและไม่มีข้อสันนิษฐานเกี่ยวกับการเป็นโหลน / แลตหรืออย่างอื่น
read_postgis
ใช้เฟรมข้อมูลผลลัพธ์เท่านั้นที่มีคุณลักษณะcrs
ซึ่งเป็นสตริง แต่ไม่ได้มีแอตทริบิวต์crs['units']
; พยายามที่จะขอให้ผลลัพธ์ใน TypeError