Quelles unités sont utilisées par les fonctions de zone et de distance GeoPandas / Shapely?

13

cela ressemble à une question idiote, mais je ne trouve pas de réponse claire à cela: quelles unités géopandas / galbées utilisent le calcul de la distance / surface entre les objets?

Philipp_Kats
la source

Réponses:

15

Shapely utilise un système plan cartésien pour calculer les géométries (distance = distance euclidienne)

Shapely ne prend pas en charge les transformations du système de coordonnées. Toutes les opérations sur deux ou plusieurs entités supposent que les entités existent dans le même plan cartésien.

GeoPandas utilise Fiona pour lire les fichiers de formes (et autres) et Pyproj pour les transformations cartographiques.

Le système de référence de coordonnées (CRS) des données vectorielles de la collection est accessible via un attribut crs en lecture seule.

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

L'unité de calcul de la distance / surface entre les objets avec Shapely est le mètre dans ce cas.

C'est la même chose avec GeoPandas

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

Cela signifie que si vous travaillez avec un crs.unit = degré (WGS84 par exemple) tous les calculs sont wrong.You doit d' abord vous reprojeter couche ( Comment convertir la projection à Ordonnées et abscisses WSG84 dans geopandas? )

gène
la source
1
Est-ce que quelque chose change lorsque vous chargez à partir de PostGIS à la place? Je mets les coordonnées comme argument lors de l'appel read_postgisdu bloc de données résultant n'a qu'un attribut crs, qui est une chaîne. Il n'a pas d'attribut crs['units']; tentative de demande qui aboutit à une TypeError.
kuanb
3

Quelles que soient les unités représentées par les coordonnées dans vos géométries.

Les géométries galbées sont cartésiennes et ne font aucune hypothèse sur le fait d'être Lon / Lat ou quoi que ce soit d'autre.

jakew
la source
0

Pour les géopandas, cela dépend du système de référence de coordonnées affecté au GeoDataFrame.

Pour galbée dans les mêmes unités du plan cartésien, galbée ne prend pas en charge la source CRS .

pablete
la source