如何解决使用GeoPandas时出现的索引越界错误?
解决GeoPandas索引越界错误
错误原因
错误提示index 1 is out of bounds for axis 0 with size 1直接说明:你读取的GeoDataFrame(area_gdf)里只有1条几何数据,却尝试访问索引为1的元素,超出了数据范围。
解决步骤
先确认数据量:在
area_gdf = gpd.read_file(SHAPE_PATH)后添加一行代码,查看数据行数:print(area_gdf.shape)如果输出是
(1, N)(N为列数),说明你的mapa.geojson文件里确实只有一个区域对象,没有子区域数据。根据实际情况调整代码:
- 若你的geojson文件本该包含多个子区域:检查文件是否损坏,或者路径是否正确——你当前的路径拼接
os.path.join(".", "/home/sahil/", "mapa.geojson")会自动转为绝对路径/home/sahil/mapa.geojson,直接写这个绝对路径更直观。 - 若geojson确实只有一个区域:如果需要测试子区域,得手动从现有几何中裁剪,比如用
buffer或intersection方法生成子区域;临时调试的话,可以先把取索引1的代码改成取索引0,验证数据读取逻辑:test_bbox = Geometry(area_gdf.geometry.values[0], crs=CRS.WGS84).bbox
- 若你的geojson文件本该包含多个子区域:检查文件是否损坏,或者路径是否正确——你当前的路径拼接
额外提示:可以用
area_gdf.head()查看前几行数据,确认几何列的内容,确保数据符合预期。
内容的提问来源于stack exchange,提问作者Sahil Jain
相关产品推荐
相关产品推荐

