如何在 python3 中将单位分配给几何图形并将投影分配给多边形?

how to assign units to geometries and projection to polygon in python3?

我从 PNG 图像创建了一个多面体 (shapefile)。 PNG 图像最初是 GeoTIFF。 我的多面体的几何形状是正常 x,y 轴的值(以 0,0 为原点)。换句话说,几何不是经纬度。 见示例:

geometry  
0  POLYGON ((0.000 0.000, 0.000 310.000, 5.000 31...  
1  POLYGON ((160.000 0.000, 160.000 3.000, 159.00...  
2  POLYGON ((794.000 219.000, 794.000 0.000, 443....  
3  POLYGON ((555.000 451.000, 793.000 451.000, 79...  
4  POLYGON ((417.000 451.000, 555.000 451.000, 55...  
5  POLYGON ((237.000 196.000, 237.000 205.000, 23...

我想将我的多边形投影到地球上特定的 CRS 和位置。此多边形应与原始 GeoTIFF 的 bbox 和 CRS 相匹配。我的多面体没有定义 CRS。

如何投影我的多面体?我尝试了以下,并得到了错误: AttributeError: 'GeoDataFrame' 对象没有属性 'set_crs'

import geopandas as gpd

fp = r"C:\foo\intersection_all2.shp" 

data = gpd.read_file(fp)
data['geometry'].head()


# Let's make a copy of our data
orig = data.copy()

# Reproject the data
data = data.set_crs(epsg=32618)

我正在寻找 Python 3.7、Windows 10 的解决方案。

它说没有属性,所以在对象 属性 上像这样设置 crs

gdf.crs = {"init":"epsg:4326"}

然后你可以通过to_crs()将它投影到另一个,例如

gdf.to_crs(epsg=3857)