转换CRS后在Matplotlib绘制Shapefile图形异常,求排查
解决Matplotlib绘制Shapefile多边形异常的问题
可能的问题及解决步骤:
确认原始数据的CRS是否正确设置
UTM 18N对应的EPSG代码是32618,若导入Shapefile时Geopandas未自动识别正确CRS,后续坐标转换会完全错误。
导入时显式指定CRS:import geopandas as gpd df = gpd.read_file('Delmarva_PL_House_Final.zip', crs='EPSG:32618')或导入后检查并补全CRS:
if df.crs is None: df.crs = 'EPSG:32618' df = df.to_crs(epsg=4326)检查并修复几何拓扑错误
多边形的拓扑问题(自相交、顶点顺序错误、无效几何等)会导致绘制异常。先排查无效几何:invalid_rows = df[~df.geometry.is_valid] print(invalid_rows)若存在无效项,尝试用
buffer(0)修复:df.geometry = df.geometry.buffer(0)修复后再执行
df.plot()验证效果。验证坐标转换结果
转换后查看部分几何的坐标值,确认是否符合WGS84(EPSG:4326)的范围(纬度-9090,经度-180180):print(df.geometry.head())若坐标值明显超出该范围,说明原始CRS设置错误,需回到第一步重新确认。
内容的提问来源于stack exchange,提问作者nalfahel
相关产品推荐
相关产品推荐

