NetworkX 是一个用于创建、操作和研究复杂网络结构、动态和功能的 Python 库。Shapefile(.shp)是一种地理信息系统(GIS)中常用的空间数据格式,用于存储点、线和多边形等几何对象。
要将 NetworkX 图保存为 Shapefile,需要使用一些额外的库,如 geopandas
和 shapely
。以下是一个示例代码:
import networkx as nx
import geopandas as gpd
from shapely.geometry import Point, LineString
# 创建一个简单的 NetworkX 图
G = nx.Graph()
G.add_edge(1, 2, weight=4.7)
G.add_edge(2, 3, weight=8.1)
# 将 NetworkX 图转换为 GeoDataFrame
edges = []
for u, v, data in G.edges(data=True):
edges.append({
'source': u,
'target': v,
'weight': data['weight'],
'geometry': LineString([(u, v)])
})
gdf_edges = gpd.GeoDataFrame(edges, geometry='geometry')
# 保存为 Shapefile
gdf_edges.to_file('network_edges.shp', driver='ESRI Shapefile')
encoding='utf-8'
。通过上述步骤,你可以将 NetworkX 图转换为 Shapefile,并在 GIS 软件中进行进一步分析和可视化。
领取专属 10元无门槛券
手把手带您无忧上云