Arcpy与networkx:从shapefile文件创建无向图

本文介绍了如何结合Arcpy和networkx库,从shapefile文件构建无向图。首先,讨论了networkx在处理复杂网络结构中的作用,包括内置的路径算法。接着,提到了Arcpy作为ArcGIS Desktop的python包,用于数据处理和功能扩展。随后,详述了环境配置,包括ArcGIS Desktop 10.2、python 2.7、networkx 2.2以及pip和GDAL的安装。最后,给出了从shapefile构建无向图的代码示例,并强调了确保图的连通性以及参考的资源链接。
摘要由CSDN通过智能技术生成

Arcpy与networkx:从shapefile文件创建图

networkx是python的扩展包,用于处理复杂网络结构,其自带有诸如最短路径算法、单源最短路径算法、简单通路算法等等算法,可以直接调用,为分析问题带来许多方便。

具体可以参见networkx的中文官方文档:
https://www.osgeo.cn/networkx/

Arcpy是ArcGIS Desktop自带的python包,可以自定义python脚本,对工作区的数据文件进行处理,以及实现一些toolbox工具箱中的功能;
官方说明文档:
https://desktop.arcgis.com/zh-cn/arcmap/latest/analyze/arcpy/what-is-arcpy-.htm
官方说明文档中有关于Arcpy具体如何使用的代码案例。

下面介绍环境搭配:
软件:ArcGIS Desktop 10.2(具体是ArcMap 10.2)
语言:ArcGIS Desktop 10.2 自带的python 2.7
python扩展包:networkx 2.2(networkx的版本要适配python版本)
使用pip install networkx命令安装networkx包;

需要注意的是,安装networkx包之前需要安装GDAL包,ArcGIS Destop自带的python 2.7版本已经停止维护,且自身不带有pip,可以根据以下参考文档安装python2.7对应的pip以及GDAL包:
ArcGIS 10.2.2自带Python 2.7.5 安装pip,并配置gdal和arcpy教程
(作者:jing_zhong)

在配置好所有环境后,根据线的shapefile文件构建无向图:

# -*- coding: UTF-8 -*-
import arcpy
import networkx as nx
import os
import math
import numpy as np

def getSegmentInfo(segments):
    '''
    Builds a dictionary for looking up endpoints of network segments (needed only because networkx graph identifies edges by nodes)
    '''
    if arcpy.Exists(segments):
        cursor = arcpy.da.SearchCursor(segments, ["OBJECTID", "SHAPE@"
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值