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?
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:
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? )
read_postgis
Elde edilen veri çerçevesini çağırırken yalnızcacrs
bir dize niteliği olan koordinatları bir argüman olarak ayarlıyorum . Özniteliği yokturcrs['units']
; bir TypeError ile sonuçlanmaya çalışılıyor.