小飞鱼露分享 http://blog.sciencenet.cn/u/Jeppeyu 专注于机器学习-数据挖掘-大规模数据挖掘

博文

ArcGIS,Python,网络数据集中查询两点最短路径

已有 14921 次阅读 2013-11-27 17:27 |个人分类:地理信息系统|系统分类:科研笔记| Python, ArcGIS, 空间数据挖掘, 最短路径, ArcPy

阅读该文章你需要理解References中的如何利用路径网络分析工具进行网络路径分析。

如果你想通过Python Scripts 跟ArcGIS进行交互,通过网络数据集,完成查询交通地图中任意两点之间的最短路径 (从点A到点B的最短距离,对应于真实交通网络最短路径) 的任务的话,那你就来对地方了。

ArcGIS是有Ersi公司开发的一款专门用于处理地理数据的集成软件。ArcGIS集成了好几个工具,经常被用到了主要有ArcMap和ArcCatalog。ArcMap主要用于可视化的路网分析,ArcCatalog (以我的理解) 主要是充当数据库的角色。

ArcMap提供了很多地理分析工具,不同的工具都需要特定的输入数据,其中我们将会用到Network Analyst工具需要输入网络数据集。网络数据集 (如右图所示)非常适合于构建运输网。它们通过源要素创建,其中可以包括简单要素(线和点)和转弯要素并存储源要素的连通性。

使用 ArcGIS 网络分析执行分析时,该分析始终在网络数据集中进行。如下图所示,NA提供了平面几何网络的路径分析工具,其实ArcGIS还提供了表面分析的工具 ,可以点击左侧的超链接,可以在ArcGIS的帮助里面找到更加形象的理解。至于我们该如何利用NA进行地图中任意两点之间的最短路径分析流程,可以参考下面的References,我就不一步一步的介绍了。篇幅有限,我们直奔主题,如何通过Python与ArcGIS进行交互进行两点之间的最短路径进行分析。PS : 最好在Windows环境下计算两点之间的最短路径。

为了便于大家理解贴上来的代码,我简单介绍下计算两点之间的最短路径分的步骤

1. 利用你手头上的路网数据通过ArcCatalog生成一份 Network dataset, 保存在你自己设定好的工作路径下

2. 为你生成这份网络数据集新建一个网络分析工具 (Network Analyst), NA 包括了好几个组件,其中的 Stops 和 Route 对于路径分析来说是非常重要的组件。

3. "Stop" 译为停靠点,是网络路径分析工具的分析对象,来自于ArcCatalog中的Shapefile表。在这里就是我们要进行路径分析的GPS点。在NA中,"Stop"会实例化为 "Point"类型的对象,所以我们先要有创建一张包含有两个shape类型的Points。随机初始化两个包含有 #shape, #longitude, #latitude 属性的Points,以后每有一次计算两个GPS点,就更新一次该Shapefile。

4. Route 会保存 NA 的分析结果。需要注意的是,NA会根据你所选择的衡量指标得到不同的最优路径结果。比如,你选择距离作为寻找最优路径的指标的话,NA 会返回距离最短的路径信息,如果你选择时间作为最优路径指标的话,NA 会返回花费时间最短的路径信息。

5. 如果你得到了你需要计算最短路径的两个GPS点,首先更新3中提到的Shapefile,然后将该Shapefile作为输入,传递给 Network Analyst,调用NA对象的 solve 函数就能得到返回结果,单位为  km

python code : http://vdisk.weibo.com/s/DmLYNa9y7Oj8

References:

路径网络分析流程

路径分析网络的网络分析对象 也就对应于你将要查询的两个点

Network Analyst Tool/Module

RouteSolverProperties (arcpy.na)

Fusion Center Blogs - Python GIS

Create Shapefile with Python Based on arcpy

Geospatial Python  这个需要翻墙,但是里面的脚本真的非常有用,尤其是对 Shapefile 的讲解

Edit and Create Shapefile in ArcMap

Cursor : Editing shapefile in Python

ArcGIS 10 Desktop Resource Center

Feature Class Geodatabase VS Shape File




https://blog.sciencenet.cn/blog-696950-745150.html

上一篇:奇异值分解(SVD) --- 几何意义
收藏 IP: 120.199.6.*| 热度|

1 chenhuansheng

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-24 10:05

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部