回答:
GeoDataFrameのcrsがわかっている場合(EPSG:4326 unit = degree、ここ)、GeoPandasはそれらを使用するため、スクリプトにShapelyもpyprojも必要ありません。
import geopandas as gpd
test = gpd.read_file("test_wgs84.shp")
print test.crs
test.head(2)GeoDataFrameをコピーし、投影をデカルトシステムに変更します(EPSG:3857、ResMarの答えのようにunit = m)。
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).to_crsこの関数はに渡さpyprojとにかく。等面積投影法の良い例:proj4.org/projections/cea.html。これは次のように渡すことができます.to_crs({'proj':'cea'})
                    {'proj':'cea'}地区のシェイプファイルについては、最も近いエリアの推定値を生成することを確認できます。
                    はい、信じます。以下が動作するはずです:
gdf['geometry'].to_crs({'init': 'epsg:3395'})\
               .map(lambda p: p.area / 10**6)これにより、ジオメトリが等面積投影法に変換され、shapely面積(m ^ 2で返される)が取得され、km ^ 2にマッピングされます(この最後の手順はオプションです)。
epsg:3395CRS に合うようにこの答えを修正しました。ありがとう。
                    
epsg:3857、あなたのコードはepsg:3395、どちらが正しいのですか?