sepertinya pertanyaan yang konyol, namun saya tidak dapat menemukan jawaban yang jelas tentang hal itu: unit geopanda apa / yang digunakan secara cerdas menghitung jarak / area antara objek?
sepertinya pertanyaan yang konyol, namun saya tidak dapat menemukan jawaban yang jelas tentang hal itu: unit geopanda apa / yang digunakan secara cerdas menghitung jarak / area antara objek?
Jawaban:
Shapely menggunakan sistem bidang kartesius untuk menghitung geometri (jarak = jarak euclidean)
Shapely tidak mendukung transformasi sistem koordinat. Semua operasi pada dua atau lebih fitur menganggap bahwa fitur ada di pesawat Cartesian yang sama.
GeoPandas menggunakan Fiona untuk membaca shapefile (dan lainnya) dan Pyproj untuk transformasi kartografi.
Sistem referensi koordinat (CRS) dari data vektor koleksi diakses melalui atribut CR-read-only.
import fiona
c = fiona.open("test.shp")
print c.crs['units']
m
Unit untuk menghitung jarak / area antara objek dengan Shapely adalah meter dalam kasus ini.
Itu sama dengan GeoPandas
import geopandas as gp
df = gp.GeoDataFrame.from_file('test.shp')
print df.crs['units']
m
Itu berarti bahwa jika Anda bekerja dengan crs.unit = degree (WGS84 misalnya) semua perhitungan salah. Anda harus memproyeksikan ulang layer Anda terlebih dahulu ( Bagaimana cara mengonversi proyeksi Eastings and Northings ke WSG84 di geopanda? )
read_postgis
frame data yang dihasilkan hanya memiliki atributcrs
, yang merupakan string. Itu tidak memiliki atributcrs['units']
; mencoba untuk meminta hasil dalam TypeError.