ArcGIS下的多节点可达性分析


最近一直在帮麻老师做可达性矩阵的生成,问题本身的解决并没有什么特别的地方,不过解决的过程倒是值得总结一下,可以为以后ArcGIS下自定义的空间分析过程做个借鉴。


一个道路网络的可达性矩阵,就是使用所有城市节点两两之间最短路径的通行时间构建而成的。因此问题的关键就归结于多节点之间的最短耗时路径选择。使用ArcGIS的NetWork扩展模块可以进行最短路径的生成,但似乎一次只能进行一组点对之间的路径生成。虽然也可以通过手动重复操作完成上述问题,但是当节点增加时,手动的劳动量也将呈级数增加,所以在多节点下这样的过程似乎是不切实际的。


顺便说一下,使用network扩展模块,需要现在tools下的extension菜单进行注册。而默认安装下,arctoolbox中也没有network工具箱,同样需要在ArcToolbox下右键添加进来。


言归正传,将一下解决的过程。既然ArcGIS自身提供的extension或toolbox功能不能解决问题,自然就想到通过建立自定义的model进行解决。在ArcToolbox中右键新建工具箱,再在工具箱中右键新建model,将network toolbox中必要的模块拖拽进来,生成如下过程。此过程同样可以解决上述一组点对之间的最短耗时路径。




下面需要做的就是将上述过程循环起来。但是不幸的是,Model builder中似乎并未提供循

环功能。通过查找,发现循环过程只能通过ArcToolbox下的脚本方法实现。解决的过程ms突

然卡在这里,但是幸好在model builder下提供了model向脚本的转换输出功能,于是很自然

的,file-export-脚本-python。


下面是ArcGIS生成的对应脚本文件

http://lilybbs.net/file/T/toolbar/model.py

对这个文件只需稍微改动一下,就可以实现循环了~

http://lilybbs.net/file/T/toolbar/written.py


【总结一下】

ArcGIS自9.0起,提供了很好的扩展功能,用户可以通过脚本实现复杂的空间分析功能,但

是白手起家的写脚本对于大多数人来说并不是一件容易的事情。上述过程提供了一种通过建

立model间接生成脚本的思路,应该说不涉及循环等操作的空间分析甚至可以直接model一下

就可以展现出来。在这种情况下,仅仅需要了解脚本的基本语法,就可以轻松的撰写你自己

所需要的脚本了。