阅读该文章你需要理解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

References:

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

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

转载本文请联系原作者获取授权,同时请注明本文来自余露科学网博客。

链接地址:http://blog.sciencenet.cn/blog-696950-745150.html

上一篇:奇异值分解(SVD) --- 几何意义

arcgis python实例_科学网—ArcGIS,Python,网络数据集中查询两点最短路径 - 余露的博文...相关推荐

  1. python序列_科学网—Python:序列(字符串、列表、元组)和序列函数 - 刘洋洋的博文...

    Python中的序列,包括字符串(String).列表(List).元组(Tuple). 序列的索引 通过索引(index)访问及获得的序列的一个或多个元素,也叫切片. 正序: 0 到 N-1 倒序: ...

  2. python的安装包下载_科学网—[转载]python常用的安装包下载 - 林清莹的博文

    Python常用的安装包下载 1.首先应该下载dlib安装包(例如:dlib-19.8.1-cp36-cp36m-win_amd64.whl) 可以通过此网址进行下载对应的dlib包   https: ...

  3. python networkx 边权重_科学网—NetworkX:关于边的权重及其画图 - 胡海华的博文

    这两天因为有个想法,想用NetworkX跑一跑看看情况,但是在权重上犯了糊涂. NetworkX添加带有权重的边很简单,只需要以三个元素的元组(a, b, w)来表示就可以了,其中ab代表节点a和b- ...

  4. arcgis坐标系未定义_科学网—ArcGIS中的坐标系:基本概念和常用操作 - 李郎平的博文...

    ArcGIS中的坐标系:基本概念和常用操作 李郎平,Email: lilp@lreis.ac.cn 中国科学院地理科学与资源研究所,资源与环境信息系统国家重点实验室 缘由:介绍GIS(地理信息系统)中 ...

  5. 如何用python爬视频_科学网—利用python爬取一个小视频 - 李鸿斌的博文

    工具 : requests 库 解析: beautifulsoup 任务: 视频抓取 1,分析目标网站 寻找一个虚拟的头文件 User-Agent: Mozilla/5.0 (Windows NT 6 ...

  6. python读取tiff影像_科学网—利用python GDAL库读写geotiff格式的遥感影像方法 - 张伟的博文...

    (1)利用python GDAL库读写geotiff格式的遥感影像方法,具有很好的参考价值,不错! from osgeo import gdal import numpy as np def read ...

  7. python读取哨兵卫星数据_科学网—【Python】批量下载Sentinel-2卫星数据 - 江佳乐的博文...

    简介:本文介绍了一种基于Python批量下载Sentinel-2卫星数据的方法.通过该方法,用户可自定义感兴趣研究区(ROI).限定时间范围.选择产品类别.进行云量筛选,实现自动化批量下载Sentin ...

  8. cie1931 python绘制_科学网—gnuplot与CIE1931 XYZ三刺激值曲线 - 范学良的博文

    1.直接生成PNG文件 gunplot script: gnuplot> set term pngcairo Terminal type set to 'pngcairo' Options ar ...

  9. cie1931 python绘制_科学网-gnuplot与CIE1931 XYZ三刺激值曲线-范学良的博文

    1.直接生成PNG文件 gunplot script: gnuplot> set term pngcairo Terminal type set to 'pngcairo' Options ar ...

  10. python 读取geotiff_科学网—利用python GDAL库读写geotiff格式的遥感影像方法 - 张伟的博文...

    (1)利用python GDAL库读写geotiff格式的遥感影像方法,具有很好的参考价值,不错! from osgeo import gdal import numpy as np def read ...

最新文章

  1. mysql中数据库database、实例instance、会话session的关系
  2. Chrome 浏览器调试移动端
  3. 博弈论分析题_博弈论练习题答案 张照贵
  4. 03.elasticsearch pipeline aggregation查询
  5. MVC Razor模板引擎 @RenderBody、@RenderPage、@RenderSection及Html.RenderPartial、Html.RenderAction...
  6. cfile read 最大读取限制_pandas读取表格后的常用数据处理操作
  7. matlab能力处理,书+程序《MATLAB图像处理:能力提高与应用案例》赵小川
  8. JavaScript事件基础知识总结【思维导图】
  9. 华为Mate 40这下稳了:全新5nm麒麟芯片将于9月全部交付
  10. pythonrsv分割_大数据经验
  11. 【jQuery笔记Part1】08-jQuery操作css-获取设置样式
  12. 蓝桥杯2016年七届C/C++省赛C组第三题-平方怪圈
  13. win10打印机不能服务的问题
  14. QT打造图片直播服务器
  15. 华硕笔记本禁用触控板方法
  16. 计算机显示时区怎么更改,电脑时区自动改怎么办
  17. 零基础转行做IT程序员要学哪些知识?
  18. NLP学习笔记「第二章」2.2 N-gram Language Models(N元语言模型)
  19. 智能投顾Betterment优于传统88%的收益率背后掩盖着什么真相?
  20. java 虚拟机JVM

热门文章

  1. PPC飞信问题...WM6.5版无法安装以及连接
  2. 服务器 字体文件太大,网页的字体文件过大
  3. 线性代数笔记7——再看行列式与矩阵
  4. 详解 0xff 的作用
  5. ‘0‘、“0“、0、‘\0‘的区别
  6. 游戏设计---游戏中战斗力计算方法(整理)
  7. 《Openwrt开发》第四章:newifi3 实现内网穿透(n2n)
  8. 教你win7去除快捷方式小箭头方法
  9. 系统与软件过程改进09年年会,CMMI vs 敏捷PK赛参赛感言
  10. oracle 中dummy,layout设计中dummy的作用详解(上图。好贴好贴,讲的很仔细)