NetworkX:从 shapefile 创建批处理图

法式咖啡

假设您有以下包含多个 shapefile 的目录:

MyFolder
|
|---S1.shp
|---S2.shp
|---S3.shp
|---
|---
|---S50.shp

并且您想为这些中的每一个创建一个图,并称它们为相同的(例如,与之关联的图S1.shp称为S1)。

我正在尝试在 for 循环中执行此操作:

import networkx as nx
import os

myfolder=r'C:\Users\MyName\MyFolder'
os.chdir(myfolder) 
for root, dirs, filenames in os.walk(myfolder):
    for f in filenames:
        if f.endswith('.shp') and f[0]=='S': #Consider only the files with an "S" in their name
            G=nx.read_shp(f)
            pos={k: v for k,v in enumerate(G.nodes())}
            pos_x = {k:(round(a,4),round(b,4)) for k,(a,b) in pos.items()}
            graph_name=f.split('.', 1)[0]
            GG=nx.Graph(name=graph_name)  
            GG.add_nodes_from(pos_x.keys())

现在这GG=nx.Graph(name=graph_name)条线没有做我想要的,因为该图仍然被称为GG,而不是S1诸如此类。正确的图形名称存储在 中GG.name,但我无法通过调用其 GG.name 来检索图形。

有没有办法可以为图形指定一个名称,文件名,而没有扩展名?

忘了它

您可以制作GG一个将文件名映射到图形的字典:

import networkx as nx
import os

myfolder = r'C:\Users\MyName\MyFolder'
os.chdir(myfolder)
GG = dict()
for root, dirs, filenames in os.walk(myfolder):
    for f in filenames:
        if f.endswith('.shp') and f.startswith('S'):
            G = nx.read_shp(f)
            pos_x = {k: (round(a, 4), round(b, 4))
                     for k, (a, b) in enumerate(G.nodes())}
            graph_name, graph_ext = os.path.splitext(f)
            GG[graph_name] = nx.Graph(name=graph_name)
            GG[graph_name].add_nodes_from(pos_x.keys())

然后S1.shp可以通过 访问与 关联的图GG['S1']

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

NetworkX:从shapefile向图添加边

来自分类Dev

NetworkX-如何从Shapefile创建MultiDiGraph?

来自分类Dev

从networkx中的shapefile创建图形时,如何保留或至少对边缘属性进行排序?

来自分类Dev

使用write_shp在NetworkX中写入shapefile

来自分类Dev

从数据框创建NetworkX图

来自分类Dev

R:shapefile上的渐变图

来自分类Dev

为shapefile创建凸包

来自分类Dev

从相似性矩阵创建NetworkX图

来自分类Dev

为networkx图创建自己的颜色栏

来自分类Dev

NetworkX:翻转图

来自分类Dev

解释 NetworkX 圆形图

来自分类Dev

networkx 力导向图

来自分类Dev

shapefile以在R中生成链接的微图

来自分类Dev

networkX创建拓扑

来自分类Dev

从详细的shapefile创建新的多边形

来自分类Dev

从详细的shapefile创建新的多边形

来自分类Dev

读取json图networkx文件

来自分类Dev

NetworkX多向图可能吗?

来自分类Dev

从Pandas DataFrame构造NetworkX图

来自分类Dev

如何实时更新NetworkX图?

来自分类Dev

NetworkX中的自我图

来自分类Dev

图边缘的Networkx位置节点

来自分类Dev

networkx绘制有向图

来自分类Dev

Networkx图不是平面的

来自分类Dev

NetworkX图:使用有序列表创建节点

来自分类Dev

使用igraph绘制用Networkx创建的二部图

来自分类Dev

在 networkx 中创建输入箭头

来自分类Dev

将气球图与ggplot中的shapefile映射相结合

来自分类Dev

如何使用散景颜色贴图处理 shapefile 中的重叠