Якщо crs GeoDataFrame відомий (EPSG: 4326 одиниця = ступінь, тут), вам не потрібен ні Shapely, ні pyproj у вашому сценарії, оскільки GeoPandas використовує їх).
import geopandas as gpd
test = gpd.read_file("test_wgs84.shp")
print test.crs
test.head(2)
Тепер скопіюйте свій GeoDataFrame та змініть проекцію на декартову систему (EPSG: 3857, одиниця = m, як у відповіді ResMar)
tost = test.copy()
tost= tost.to_crs({'init': 'epsg:3857'})
print tost.crs
tost.head(2)
Зараз площа в квадратних кілометрах
tost["area"] = tost['geometry'].area/ 10**6
tost.head(2)
Але поверхні в проекції Меркатора неправильні, як і для інших проекцій в метрах.
tost= tost.to_crs({'init': 'epsg:32633'})
tost["area"] = tost['geometry'].area/ 10**6
tost.head(2)
epsg:3857
, але ваш кодepsg:3395
, який із двох правильних?