You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用OSMnx保存Shapefile时osmid字段创建失败错误求助

问题分析与解决方案

错误原因

调用ox.save_graph_shapefile时参数顺序错误:该函数的第二个参数是输出路径(filepath),第三个参数是编码(encoding),你将输出路径C:\\MY传递给了encoding参数,导致Fiona错误地把路径值当作字段编码相关参数处理,触发字段创建失败的报错。

正确调用方式

以下两种写法均可解决问题:

方式1:指定输出目录,自动生成标准命名的shapefile文件

将输出目录直接作为第二个参数传入,函数会在该目录下生成nodes.shp、edges.shp及配套的dbf、shx等文件:

import fiona 
import geopandas as gpd 
import pandas as pd 
import networkx as nx 
import osmnx as ox 

G = ox.graph_from_point((37.79, -122.41), dist=1000, network_type='all') 
ox.save_graph_shapefile(G, "C:\\MY")  # 直接传输出目录

注意:确保C:\\MY文件夹已存在,若不存在可提前用os.makedirs("C:\\MY", exist_ok=True)创建。

方式2:指定文件名前缀,生成自定义命名的shapefile文件

若需要自定义文件前缀,可将带前缀的路径作为第二个参数,函数会生成[前缀]_nodes.shp、[前缀]_edges.shp等文件:

# 在C:\MY目录下生成2_nodes.shp、2_edges.shp等文件
ox.save_graph_shapefile(G, "C:\\MY\\2")

或者在当前工作目录生成:

ox.save_graph_shapefile(G, "2")

内容的提问来源于stack exchange,提问作者li xu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 22:31:29