Se os CRs do GeoDataFrame são conhecidos (EPSG: 4326 unit = degree, aqui), você não precisa do Shapely, nem do pyproj em seu script, porque o GeoPandas os usa).
import geopandas as gpd
test = gpd.read_file("test_wgs84.shp")print test.crs
test.head(2)
Agora copie seu GeoDataFrame e altere a projeção para um sistema cartesiano (EPSG: 3857, unit = m, como na resposta de ResMar)
Seu texto é epsg:3857, mas seu código é epsg:3395, qual dos dois está correto?
Aleksey Bilogur
4
A .to_crsfunção é passada para pyprojqualquer maneira. Um bom exemplo de uma projeção de área igual: proj4.org/projections/cea.html, que pode ser transmitida da seguinte forma:.to_crs({'proj':'cea'})
Swier
Para os shapefiles dos EUA, pelo menos, posso confirmar que {'proj':'cea'}produzem as estimativas de área mais próximas.
Isso converte a geometria em uma projeção de área igual, busca a shapelyárea (retornada em m ^ 2) e mapeia para um km ^ 2 (essa última etapa é opcional).
epsg:3857
, mas seu código éepsg:3395
, qual dos dois está correto?.to_crs
função é passada parapyproj
qualquer maneira. Um bom exemplo de uma projeção de área igual: proj4.org/projections/cea.html, que pode ser transmitida da seguinte forma:.to_crs({'proj':'cea'})
{'proj':'cea'}
produzem as estimativas de área mais próximas.Eu acredito que sim O seguinte deve funcionar:
Isso converte a geometria em uma projeção de área igual, busca a
shapely
área (retornada em m ^ 2) e mapeia para um km ^ 2 (essa última etapa é opcional).fonte
epsg:3395
CRS do gene . Obrigado.