What units are used by GeoPandas/Shapely area and distance functions?

Shapely uses a cartesian plane system for computing geometries (distance = euclidean distance)

Shapely does not support coordinate system transformations. All operations on two or more features presume that the features exist in the same Cartesian plane.

GeoPandas uses Fiona to read shapefiles (and others) and Pyproj for cartographic transformations.

The coordinate reference system (CRS) of the collection’s vector data is accessed via a read-only crs attribute.

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

The unit for calculating distance/area between objects with Shapely is meter in this case.

It is the same with GeoPandas

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

That means that if you work with a crs.unit = degree (WGS84 for example) all calculations are wrong.You must first reproject you layer (How do I convert Eastings and Northings projection to WSG84 in geopandas? )


Whichever units are represented by the coordinates in your geometries.

Shapely geometries are Cartesian and make no assumptions about being Lon/Lat or anything else.