登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
晚上画水系shp的时候,发现加入水系后出图的比例会发生变化,检查之后原因在于其实是 matplotlib + cartopy 的投影和 geopandas 绘图叠加引起的。记录一下参考gpt回答原始画图是
- shp_path = "/data/usb0/DATA_obs/SHP/cnmap/river.shp"
- rivers = gpd.read_file(shp_path)
- rivers.plot(ax=geoax, color="blue", linewidth=1.8, zorder=3, transform=ccrs.PlateCarree())
复制代码 eopandas.plot() 默认是 matplotlib 坐标系,不完全理解 cartopy 的投影。
transform=ccrs.PlateCarree() 参数在 gpd.plot() 中其实不起作用,它只在 cartopy 的 ax.add_geometries() 中生效。
所以直接用 gpd.plot() 可能会让图像在 cartopy 坐标系里“被拉伸”,导致比例不对。
在 cartopy 的投影下,应该用 ax.add_geometries,而不是 gpd.plot: - for geom in rivers.geometry:
- geoax.add_geometries([geom], crs=ccrs.PlateCarree(),
- edgecolor="blue", facecolor="none", linewidth=1.8, zorder=3)
复制代码
|