Jakie jednostki są używane przez GeoPandas / Shapely funkcje obszaru i odległości?


13

wygląda to na głupie pytanie, ale nie mogę znaleźć na to jednoznacznej odpowiedzi: jakie jednostki geopandy / zgrabnie używają obliczania odległości / powierzchni między obiektami?

Odpowiedzi:


15

Shapely używa układu kartezjańskiego do obliczania geometrii (odległość = odległość euklidesowa)

Zgrabna nie obsługuje transformacji układu współrzędnych. Wszystkie operacje na dwóch lub więcej obiektach zakładają, że obiekty istnieją na tej samej płaszczyźnie kartezjańskiej.

GeoPandas używa Fiony do odczytu plików kształtów (i innych) oraz Pyproj do transformacji kartograficznych.

Dostęp do układu odniesienia za pomocą współrzędnych (CRS) danych wektorowych kolekcji można uzyskać za pomocą atrybutu crs tylko do odczytu.

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

W tym przypadku jednostką do obliczania odległości / powierzchni między obiektami za pomocą Shapely jest metr.

Tak samo jest z GeoPandas

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

Oznacza to, że jeśli pracujesz z crs.unit = stopień (na przykład WGS84), wszystkie obliczenia są nieprawidłowe. Najpierw musisz ponownie przerzucić warstwę ( Jak przekonwertować projekcję Eastingsa i Northingsa na WSG84 w geopandzie? )


1
Czy coś się zmienia, gdy zamiast tego ładujesz z PostGIS? Ustawiam współrzędne jako argument podczas wywoływania read_postgiswynikowej ramki danych ma tylko atrybut crs, który jest łańcuchem. Nie ma atrybutu crs['units']; próba żądania, które powoduje błąd typu.
kuanb

3

Niezależnie od tego, które jednostki są reprezentowane przez współrzędne w twoich geometriach.

Kształtne geometrie są kartezjańskie i nie zakładają, że są Lon / Lat lub czymkolwiek innym.


0

W przypadku Geopandy zależy to od przypisanego układu odniesienia do współrzędnych GeoDataFrame.

Dla foremnego jest w tych samych jednostkach płaszczyzny kartezjańskiej, foremnie nie obsługuje źródła CRS .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.