GeoPandas / Shapely alan ve mesafe işlevleri tarafından hangi birimler kullanılır?


13

aptalca bir soruya benziyor, ancak bunun üzerine net bir cevap bulamıyorum: hangi birimler geopandalar / nesneler arasındaki mesafeyi / alanı hesaplamayı düzgün bir şekilde kullanıyor?

Yanıtlar:


15

Geometrileri hesaplamak için düzgün bir düzlemsel sistem kullanır (mesafe = öklid mesafesi)

Şekilli koordinat sistemi dönüşümlerini desteklemez. İki veya daha fazla özellikteki tüm işlemler, özelliklerin aynı Kartezyen düzlemde var olduğunu varsayar.

GeoPandas kullanan Fiona shapefiles (ve diğerleri) ve okunması Pyproj kartografik dönüşümleri için.

Koleksiyonun vektör verilerinin koordinat referans sistemine (CRS) salt okunur bir crs özelliği üzerinden erişilir.

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

Bu durumda Shapely olan nesneler arasındaki mesafeyi / alanı hesaplamak için kullanılan birim metredir.

GeoPandas ile aynı

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

Eğer bir crs.unit = derecesi (örneğin WGS84) tüm hesaplamalar ile çalışıyorsanız wrong.You öncelikle katman reproject gerektiğini Bunun anlamı ( nasıl geopandas içinde WSG84 için Easting'ler ve Northings projeksiyonu dönüştürebilirim? )


1
Bunun yerine PostGIS'ten yüklediğinizde bir şey değişiyor mu? read_postgisElde edilen veri çerçevesini çağırırken yalnızca crsbir dize niteliği olan koordinatları bir argüman olarak ayarlıyorum . Özniteliği yoktur crs['units']; bir TypeError ile sonuçlanmaya çalışılıyor.
kuanb

3

Hangi birimler geometrilerinizdeki koordinatlarla temsil edilir.

Şekilli geometriler Kartezyen'dir ve Lon / Lat veya başka bir şey olduğu varsayımı yapmazlar.


0

Geopandas için, GeoDataFrame'e atanan Koordinat Referans Sistemine bağlıdır.

Şeklinde, kartezyen düzlemin aynı birimlerinde, şekil olarak CRS kaynağını desteklemez .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.