Saya memiliki poligon dari koordinat di (python rupawan) yang terlihat seperti ini
POLYGON ((24.8085317 46.8512821, 24.7986952 46.8574619, 24.8088238 46.8664741, 24.8155239 46.8576335, 24.8085317 46.8512821))
Saya ingin menghitung luas poligon ini dalam km ^ 2. Apa cara terbaik untuk melakukan ini dengan Python?
Jawaban:
Bagi saya tidak jelas bagaimana cara menggunakan jawaban @sgillies, jadi di sini adalah versi yang lebih verbose:
sumber
Sepertinya koordinat Anda garis bujur dan lintang, ya? Gunakan
shapely.ops.transform
fungsi Shapely untuk mengubah poligon untuk memproyeksikan koordinat area yang sama dan kemudian mengambil area tersebut.sumber
partial
itu bukan bawaan;pyproj
harus diimpor dan mungkin dipasang, dll.pyproj.Proj(proj='aea', lat1=lat1, lat2=lat2)
menghasilkanCRSError: Invalid projection: +proj=aea +lat1=5.0 +lat2=6.0 +type=crs
. Mengubahlat{1,2}
kelat_{1,2}
seperti yang tersirat oleh dokumentasi PROJ4 tetap itu:pyproj.Proj(proj='aea', lat1=lat1, lat2=lat2)
. Apakah Jawaban ini akurat, atau haruskah diperbarui?lat_1
danlat_2
bukannyalat1
danlat2
. Saya menduga ini berlaku post PROJ 6.0.0Jawaban di atas tampaknya benar, KECUALI bahwa pada beberapa titik baru-baru ini, parameter lat1 dan lat2 dalam kode pyproj diganti nama dengan garis bawah: lat_1 dan lat_2 (lihat /programming//a/55259718/1538758 ). Saya tidak punya cukup perwakilan untuk berkomentar, jadi saya membuat jawaban baru (maaf bukan maaf)
sumber
Saya menemukan "area" yang tampaknya lebih mudah digunakan:
https://pypi.org/project/area/
Sebagai contoh:
... pengembalian:
area m2: 1082979.880942425
area km2: 1.082979880942425
sumber