Python >> Programma Python >  >> Python Tag >> Pandas

Quali unità vengono utilizzate dalle funzioni di area e distanza GeoPanda/Shapely?

Shapely utilizza un sistema di piani cartesiani per il calcolo delle geometrie (distanza =distanza euclidea)

Shapely non supporta le trasformazioni del sistema di coordinate. Tutte le operazioni su due o più feature presuppongono che le feature esistano sullo stesso piano cartesiano.

GeoPandas usa Fiona per leggere gli shapefile (e altri) e Pyproj per le trasformazioni cartografiche.

Il sistema di riferimento delle coordinate (CRS) dei dati vettoriali della raccolta è accessibile tramite un attributo crs di sola lettura.

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

L'unità per calcolare la distanza/area tra gli oggetti con Shapely è il metro in questo caso.

È lo stesso con GeoPandas

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

Ciò significa che se lavori con a crs.unit =degree (ad esempio WGS84), tutti i calcoli sono errati. Devi prima riproiettare il tuo livello (come faccio a convertire la proiezione di Eastings e Northings in WSG84 nei geopanda?)


Qualunque unità sia rappresentata dalle coordinate nelle tue geometrie.

Le geometrie formose sono cartesiane e non fanno supposizioni sull'essere Lon/Lat o altro.