Python 将图形输出为“.xml”`
我有一个shapefile,我正在将其转换为Python 将图形输出为“.xml”`,python,xml,networkx,Python,Xml,Networkx,我有一个shapefile,我正在将其转换为.xml文件,以便在MATSim中使用。文件结构如下: ..... ... 我使用NetworkX Python库来实现这一点,它可以将shapefile读取为图形,并将图形导出为GEXF对象。这段代码(本质上)输出的内容接近网络规范,但还不够接近网络规范 将networkx导入为nx G=nx.read_shp(“expcuts1.shp”) 开始=0 G=nx。将节点标签转换为整数(G,第一个标签=开始, label_attribute=“co
.xml
文件,以便在MATSim中使用。文件结构如下:
.....
...
我使用NetworkX Python库来实现这一点,它可以将shapefile读取为图形,并将图形导出为GEXF
对象。这段代码(本质上)输出的内容接近网络规范,但还不够接近网络规范
将networkx导入为nx
G=nx.read_shp(“expcuts1.shp”)
开始=0
G=nx。将节点标签转换为整数(G,第一个标签=开始,
label_attribute=“coord”)
#使用所需的元素构建新对象
H=nx.DiGraph(name=“Python NetworkX从FAF 3.4导出”)
H.从(G.边())添加边
#在节点属性中存储坐标
对于范围内的i(len(H)):
H.node[i]['x']=G.node[i]['coord'][0]
H.node[i]['y']=G.node[i]['coord'][1]
#导出为xml(实际上是gexl,但这非常接近)
write_gexf(H,'test.xml')
. 任何提示?简短:如果这是一次性项目,请调整NetworkX中的write\u gexf
函数
长:
对于MATSim,您需要一个有向图。Gexf允许使用defaultedgetype=“directed”
。您可以向边缘添加更多属性,例如通行能力、车道
<edge weight="1.0" target="109001663" source="109001672" label="network link" id="99999">
<attvalues>
<attvalue start="0.0" value="0" for="capacity"/>
<attvalue start="0.0" value="0" for="length"/>
</attvalues>
</edge>
每小时),以及车道数
请注意,容量取决于capperiod,即capperiod=“01:00:00”
表示有效期为一小时
另外,您还可以在哪里找到一些gexf辅助类,主要用于将MATSim网络转换为gexf,例如用于在Gephi中分析它们。您能肯定地说该图是非循环的吗?如果不是,应该如何处理循环?图表肯定是循环的;它代表了一个公路网。不过,图形不一定需要定向。我可以创建H
作为图形
或有向图
,并且输出相同。