ArcGIS 网络分析[2] 利用自定义基础数据创建网络数据集
前言
似乎除了官方介绍的例子,我还没有在网上见过一篇介绍如何“使用自己的数据”创建“网络数据集”的文章。
有介绍几何网络的,有介绍如何用官方SanFrancisco数据的,也有直接用官方SanFrancisco的网络数据集进行应用的,就是没有告诉我怎么用自己的线数据生成网络数据集并应用的。
我靠网上的文章和官方的例子一点点摸了出来,虽然不是很完整的解说,不过确实能用于最基本的网络分析了。
【软件准备】
本人使用ArcGIS for Desktop 10.4下的ArcMap和ArcCatalog进行数据创建、编辑、分析。10.0-10.3版本均可按此法进行操作。
【数据准备】
无需进行下载任何的数据,我们只需要创建一个线要素。
1. 创建线要素
本例中使用mdb(个人地理数据库)进行分析,使用gdb(文件地理数据库)也一样。注意:shp文件不行。因为网络数据集必须基于要素数据集(FeatureDataset)创建。
创建一个空白的线要素如下:
命名随意。
使用WGS84_UTM_49N投影。需要注意的是,线数据必须在要素数据集内,否则无法构建网络数据集。
之后在ArcMap中把比例尺缩放到1:100000(适当调节即可,无所谓),随便画一些交叉的网络形状道路,如下图:
绘制6条折线,不添加任何自定义字段。这一步完成。
2. 线数据的打断
使用ArcGIS的工具“要素转线”,即数据管理工具/要素/要素转线。
输出要素类结果如下,原来6根折线变成了26根。
输出目录在线数据同级别即可:
说说这步的必要性:如果不在折线交点打断,交点处是不通的。
这步就是把折线按交点打断,注意是交点不是折点。
3. 打断线数据——添加时间字段
这一步很关键,是创建网络数据集的最最基本的条件,没有时间字段,网络数据集就无法添加成本属性。照做即可:
添加MyTime字段,其他名字也行,双精度。
对这个字段进行字段计算器如下:
时间 = 路程 / 速度。
这里,我选步行速度是0.7m每秒。再除以60是获取分钟数(因为在步行中,尺度多为分钟)。
结果如上,可能不太准确,但是作为演示的就无所谓了。
至此,数据准备完成,我们就用这个打断线数据进行创建网络数据集,最最基本的网络数据集(不是几何网络)。
【创建网络数据集】
1. 打开网络分析模块权限
有的同学可能网络分析不能用,是因为许可没打开,在ArcGIS Catalog和ArcMap菜单栏中打开自定义-扩展模块,把Network Analyst打勾即可。
2. 为网络数据集写一个名字
我们在Catalog里创建网络数据集,而且只能在Catalog里创建。在ArcMap的Catalog浮动窗口创建也是一样的,反正要在Catalog里创建。
对要素数据集右键点击,新建-网络数据集。
第一步当然是填名字,随便。按下一步。
2. 选择打断的线数据
这里选打断线的要素数据集。
然后下一步。
3. 通用转弯
我们知道道路都有交叉点,交叉点会有转弯的事情发生,但是我们作为最基础的建立我们不需要管那么多,使用官方给的通用转弯即可。
就是说直接点下一步。
4. 连通性
这里也别管,检查连通性是否是端点,是就确定下一步。
5. 高程
这一步,因为我们没有高程信息,选择无即可。在真实世界里道路肯定有高程,但是我们作为最小生成网络数据集,我们就不搞了,点无,然后下一步。
6. 【*重要】成本属性
这步就是关键了,照做即可,这里就要用到上面提到的数据准备中的东西。
如图,名称虽然说可以随意,但是一般都写为XXXTime,就是步行时间或者旅行时间什么的。要选择成本,单位是分钟,使用双精度。然后确定——还没完,选择刚创建好的DriveTime属性,点击赋值器。
(如果没有赋值,这个属性会出现黄色三角形感叹号的)
道路有时候去和回速度不一样,所以耗时不同。我们假定为理想状态,时间就一样好了。确定。
看,感叹号消失了。然后下一步。
7. 行驶方向
这一步我也摸不着头脑,有时候能选是,有时候不能,这里就先选否吧。
这一步就是为了网络分析时能用导航功能而准备的。
如果这一步能选是,第八步就不是完成了,而是选择导航的相关字段(选MyTime字段)。
8. 完成~
完成!
9. 构建网络数据集
上一步只是创建,还需要构建的。
构建这个功能在ArcToolBox也有,为了不增加复杂性就不说了。
一般上一步按下完成后先创建,然后会提示是否构建,选是即可。
还会提示是否加入地图(如果是在ArcMap的Catalog浮动窗创建的)
我们选否。待会儿自己添加。
这样就创建完成了,Junctions是交点,不必理会。
此时要素数据集中网络数据集和交点数据就是独立的了,删除原始线数据和打断线都不会有影响(我猜的,大家可以试试——别打我!)
【测试最佳路径求解(邮递员问题)】
直接把网络数据集拖进ArcMap窗口,提示是否把关联的数据添加进来,可以是也可以否,我选否减少视觉负担(如果电脑慢数据量大还是否,自己把点、线数据添加进来的好)
找到下图这个工具条,名字好像是Network Analyst。
如下图操作,创建网络分析路径图层。这步也可以在ArcToolBox里找到对应工具。
如下图:
好像没什么变化,我们开始创建途径点。用工具条上的创建位置工具,在图上打几个点。
打点如下:
然后点击工具条上的求解按钮
,就出现了途径点的最短路径。
——————
网络数据集最基本的创建就完成了,每一步都有详细的讲解和来龙去脉。这个是我钻了好久才懂的,网上的基本都是按照示例数据进行实验,自己创建数据的简直稀罕的要命。
网络分析是一个很强大的功能,其原理是Dijstra算法。
这例子只不过完成了最基本的最佳路径求解,就算旅行推销员问题,还没有添加障碍点,也没有导航功能,更没有丰富的转弯数据、面数据、点数据(其实网络数据集创建的时候可以选择点数据甚至多个点线数据的)、高程字段,完成的只是网络分析的冰山一角。
当然,在ArcEngine底层实现上更为复杂,我觉得还是自己动手用Dij算法自己写的好。在此不赘述。
ArcGIS这个文档做的不是很好,但是应用方面倒是很不错,有了网络数据集,就可以做很多事情,这里只是一个敲门砖,希望大家用好网络数据集,发现GIS与其他行业的千丝万缕的联系。
国际惯例:转载请声明。
ArcGIS 网络分析[2] 利用自定义基础数据创建网络数据集的更多相关文章
- ArcGIS 网络分析[1] 利用自定义点线数据(shp或数据库)创建网络数据集【小白向】
前言 似乎除了官方介绍的例子,我还没有在网上见过一篇介绍如何“使用自己的数据”创建“网络数据集”的文章. 究其原因,是因为当前的高质量的线数据或保密,或采集困难. 有介绍几何网络的,有介绍如何用官方S ...
- ArcGIS 网络分析[1.2] 利用1.1的线shp创建网络数据集/并简单试验最佳路径
上篇已经创建好了线数据(shp文件格式)链接:点我 这篇将基于此shp线数据创建网络数据集. 在此说明:shp数据的网络数据集仅支持单一线数据,也就是说基于shp文件的网络数据集,只能有一个shp线文 ...
- ArcGIS 网络分析[1.5] 使用点线数据一起创建网络数据集(如何避免孤立点/点与线的连通性组合结果表)
ArcGIS中最基本的三种矢量数据是什么?点线面. 网络中除了路网之外,还会有地物点. 如上图,我们在建立网络数据集的时候,作为实验,当然可以只是公路网.但是在大型的决策任务中,网络数据集就不只是公路 ...
- ArcGIS 网络分析[8.3] 设置IDENetworkDataset的属性及INetworkDataset的对比/创建网络数据集
创建网络数据集就得有各种数据和参数,这篇文章很长,慎入. 网络分析依赖于网络数据集的质量,这句话就在这里得到了验证:复杂.精确定义. 本节目录如下: 1. INetworkDataset与IDENet ...
- ArcGIS 网络分析[8.2] 资料2 使用IDatasetContainer2接口的CreateDataset方法创建网络数据集
上节提及如何使用IDatasetContainer2接口访问到网络数据集,上例可以封装为一个方法. 这节就使用IDatasetContainer2接口(Geodatabase类库)的CreateDat ...
- ArcGIS 网络分析[8.1] 资料1 使用AO打开或创建网络数据集之【打开】
为了创建或打开一个网络数据集,你必须使用NetworkDatasetFDExtension对象(文件地理数据库中的数据集)或NetworkDatasetWorkspaceExtension对象(对于S ...
- ArcGIS 网络分析[1.3] 在个人地理数据库中创建网络数据集/并简单试验最佳路径
上篇使用shp文件创建网络数据集,然而在ArcGIS 9中就支持地理数据库了,数据库的管理更为科学强大. 本篇就使用个人地理数据库进行建立网络数据集,线数据仍然可以是1.1中的线数据,但是我做了一些修 ...
- Arcengine实现创建网络数据集札记(三)
后记 下面给出项目中用到的自定义的封装类. AE许可初始化封装类: public class AELicenseChecker { private static volatile AELicenseC ...
- Arcengine实现创建网络数据集札记(一)
一 引子 网络数据集,GIS空间分析基础的理论和知识,是最短路径分析.连通性分析等其他空间分析技术的数据基础. 以往,网络数据集的研究很少,此次项目开发过程中,对网络数据集以及arcengine创建网 ...
随机推荐
- canvas基础—图形变换
1.canvas转换方法 1.1canvas转换方法 二.canvas实现图形的中心点旋转 step1:获取canva元素并指定canvas的绘图环境 var canvas=document.getE ...
- 树链剖分-SPOJ375(QTREE)
QTREE - Query on a tree You are given a tree (an acyclic undirected connected graph) with N nodes, a ...
- CSS.04 -- 浮动float、overflow、定位position、CSS初始化
标准流:行内/行内块元素横向有序排列 : 块元素纵向有序排列. 浮动:Float 语法:float:left/right : 设置浮动的元素,脱离标准流 浮动的框可以向左或向右移动,直到它的外边缘碰 ...
- nicescroll 配置参数
jQuery滚动条插件兼容ie6+.手机.ipad http://www.areaaperta.com/nicescroll/ 配置参数 当调用“niceScroll”你可以传递一些参数来定制视觉方面 ...
- Spring的IoC容器
Spring是一个轻量级的Java开发框架,其提供的两大基础功能为IoC和AOP,其中IoC为依赖反转(Inversion of Control).IOC容器的基本理念就是"为别人服务&qu ...
- Spring初识(通过小实例清晰认识Spring)
1.spring架构: spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,iba ...
- Open-Falcon 监控系统监控 MySQL/Redis/MongoDB 状态监控
背景: Open-Falcon 是小米运维部开源的一款互联网企业级监控系统解决方案,具体的安装和使用说明请见官网:http://open-falcon.org/,是一款比较全的监控.而且提供各种API ...
- Nagios监控远程主机
p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; line-height: 150%; fon ...
- 填坑实录 Android Studio 利用 ADB WIFI 插件实现真机无线调试
总是用模拟器,小破本的渣内存无法承受,同时模拟器的版本大多停在4.4,无法体现Android 5.0.6.0 的版本特性,因此决定利用 Android Studio 的插件实现真机无线调试. 步骤如下 ...
- yii2-验证规则,rules,判断条件
yii2模型的验证规则,简单的使用我就不详细说了,想看的可以去看官网教程http://www.yiichina.com/doc/guide/2.0/structure-models#validatio ...