Unit apa yang digunakan oleh GeoPandas / Fungsi area dan jarak cantik?


13

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:


15

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? )


1
Apakah ada yang berubah ketika Anda memuat dari PostGIS? Saya menetapkan koordinat sebagai argumen saat memanggil read_postgisframe data yang dihasilkan hanya memiliki atribut crs, yang merupakan string. Itu tidak memiliki atribut crs['units']; mencoba untuk meminta hasil dalam TypeError.
kuanb

3

Unit mana saja yang diwakili oleh koordinat dalam geometri Anda.

Geometri berbentuk adalah Cartesian dan tidak membuat asumsi tentang menjadi Lon / Lat atau apa pun.


0

Untuk Geopanda, itu tergantung pada Sistem Referensi Koordinat yang ditugaskan untuk GeoDataFrame.

Untuk rupawan dalam unit yang sama dari pesawat cartesian, rupawan tidak mendukung sumber CRS .

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.