发表于2024-11-27
基于ArcGIS的Python编程,辅助规划设计无限拓展的途径!
作者姓名: 包瑞清
基于ArcGIS的地理信息系统可以辅助规划师从地理信息角度解决相关的规划设计问题,例如从信息化角度智能化管理城市信息数据,进行
相关的空间分析、网络分析、地统计以及辅助制图。然而规划师的欲望是无止境的,寻求更自由的计算机辅助规划设计的技术,以及获得更强
解决问题的能力,就需要具备编程设计的知识。基于ArcGIS的Python脚本语言正是可以辅助规划师得以自由解决问题的一个途径。
具有编程能力的规划设计师将具有更强解决问题的能力以及拓展无限的创造力,自身的专业知识为如何编写程序解决问题提供了最为直接
的基础,这是专业开发人员力所不能及。针对Python 编写程序处理地理信息系统不仅提高了处理地理信息数据的效率,更是可以针对需要解决
的问题构建处理问题的程序,从程序编写的角度思考解决问题的方法。
《ArcGIS下的Python编程》为规划师提供了学习基于ArcGIS的脚本语言Python教材,将对Python语言的讲述与ArcGIS的模块ArcPy相结合,
并通过实际案例探讨“自然村落选址因子权重评定的遗传算法”、“基于景观感知敏感度的生态旅游地观光线路自动选址”和“解读蚁群算法
与TSP 问题”,理解编程规划设计的方法。
《ArcGIS下的Python编程》对于ArcGIS 下Python 脚本使用方法的阐述是从Python 语言本身和基于ArcGIS的Python 两个方面同时着手,因
此在阅读本书时不需要预先具备Python 基础知识。本书包括七个部分,Python 与ArcGIS,ArcGIS 下的地理数据与Python 数据结构,Python 的
基本语句与使用Python 访问地理数据,创建函数与使用Python 处理栅格数据,创建类与网络分析,异常与错误,以及程序的魅力。主要阐述的
逻辑线存在并行的两条线,一个是针对Python 的,从对于Python 介绍、数据结构、基本语句到创建函数、创建类和异常;另一个是针对ArcGIS
下的Python ,从ArcPy 站点包、访问以及管理地理信息数据的方法、处理要素类、处理栅格数据到网络分析和与地理处理模型的结合方法。两条
线同时推进阐述,互相支持印证,并结合实际解决问题的应用方法,例如如何转化KML 文件和.dwg 格式文件并增加字段数据,以及适宜性分析
栅格计算重分类的方法和寻找最近设施点的网络分析,遗传算法应用等。
最后一部分则通过具体的案例来阐述应用ArcGIS下Python编程规划的方法,初步包括三个课题的探讨:
“课题探讨_A_ 自然村落选址因子权重评定的遗传算法”,村落选址受制于山水,如何在复杂的地形中谋得栖身之所,避免自然灾害的侵扰
并具有舒适宜人的小气候是人类不断探索的课题。根据假定既有村落选址的特点反推权重设置具有一定的合理性,并根据反推的权重应用于影
响因子计算新的地块获取选址。在这个过程中,使用优化算法中的遗传算法求解;
“课题探讨_B_ 基于景观感知敏感度的生态旅游地观光线路自动选址”,根据《基于景观感知敏感度的生态旅游地观光线路自动选址》的
研究,将计算模型程序化,不仅提升模型计算的效率,更有利于不断修正研究过程中出现的问题以及加入更多不同类型影响因子后,进行综合
性评价分析,并为类似的研究提供基础性程序片断;
“课题探讨_C_ 解读蚁群算法与TSP 问题”,蚁群算法(Ant Colony Optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路
径的机率型算法。本案例将蚁群算法在ArcGIS的Python脚本中实现。
作者简介:
包瑞清
西安建筑科技大学建筑学院讲师
城市规划与设计专业博士,任教于西安建筑科技大学建筑学院,主攻计算机辅助设计应用研究,从作为设计者的角度寻找和融合编程与建
筑、风景园林、城乡规划等设计规划学科之间的关联,建立面向设计师的编程设计知识系统,力图使编程设计成为设计领域的基础环节,探索
未来设计的方法。
2012 年,作为caDesign 设计创始人之一,以“编程让设计更具创造力!”的信念为指引,分享研究成果,发展面向设计师的编程设计知
识系统网络服务体系。
GIS 辅助规划设计无限拓展的途径
GIS(Geographic Information System) 地理信息系统在城市规划、生态规划、风景园林规划行业中具有举足轻重的价值。但是GIS 应用领
域的广泛性与无限拓展的知识领域使得规划设计者在开始地理信息领域探索时总是无所适从,往往被淹没在浩瀚的知识领域中。实际上对于不
同的专业领域,在使用GIS 协助规划设计时,会根据自身的需求选择适合的知识方向和内容,从而找对方向点便于顺利切入。GIS 技术不应该
仅仅成为专业GIS 开发者的工具,更应该是规划设计者需要掌握的基础知识。在实际规划设计过程中,将传统的规划设计方法向地理信息系统
方向转化,从地理信息的角度管理、分析、研究、规划设计项目,在一定程度上地理信息系统成为规划整个流程的基础框架,所有的规划内容
从地理信息数据的录入与管理、对于地理信息数据的分析研究开始,从基于数据的本质内容规划。
从地理信息系统角度切入规划设计的方法主流是使用ArcGIS,由ESRI 出品的一个地理信息系统系列软件的总称。ArcGIS 提供了丰富的地
理信息数据管理和分析的工具,同时在不断地拓展,并可以在地理处理中构建地理处理信息模型,流程化处理地理信息数据,然而当需要批处
理地理信息数据,或者现有的ArcGIS 中的地理处理工具不能够满足分析研究的需求时,最直接的方式是使用程序语言自行编写工具达到分析研
究的目的。ArcGIS 已经开始支持并不断拓展Python 支持的力度,从Python 语言自身发展的历程和针对建筑、规划设计行业三维软件平台越来
越多的支持,Python 必然成为针对规划设计者的程序语言。ArcGIS 逐步地发展了ArcPy 站点包,提供使用Python 语言操作所有地理处理工具
(包括扩展模块)的入口,并提供多种有用的函数和类,以用于处理和询问GIS 数据。使用 Python 和ArcPy,可以开发出大量用于处理地理数
据的实用程序。
程序语言在辅助规划设计领域的优势逐渐凸显,对于规划设计方法更高级技术的追求必然对规划设计者提出新的具有挑战性的要求。编程
语言的逐步发展和成熟为相关专业学科的发展奠定了坚实的基础,然而由于编程语言发展阶段的历史原因,大部分规划设计专业的院校并没有
开设编程语言课程和针对规划设计领域的编程语言课程,因此大部分规划设计者并不具有通过编程处理问题的能力。具备编程能力并不只是针
对专业开发人员的基本要求,规划设计者应该成为具有编程能力的规划设计者,从而更加自由并从全新的视角审视与解决问题,而不必求助于
专业开发人员。具有编程能力的规划设计者将具有更强解决问题的能力以及拓展无限的创造力,自身的专业知识为如何编写程序解决问题提供
了最为直接的基础,这是专业开发人员力所不能及。针对Python 编写程序处理地理信息系统不仅提高了处理地理信息数据的效率,更是可以针
对需要解决的问题构建处理问题的程序,从程序编写的角度思考解决问题的方法。
本书对于ArcGIS 下Python 脚本使用方法的阐述是从Python 语言本身和基于ArcGIS的Python 两个方面同时着手,因此在阅读本书时不需
要预先具备Python 基础知识。本书包括七个部分,Python 与ArcGIS,ArcGIS 下的地理数据与Python 数据结构,Python 的基本语句与使用
Python 访问地理数据,创建函数与使用Python 处理栅格数据,创建类与网络分析,异常与错误,以及程序的魅力。主要阐述的逻辑线存在并
行的两条线,一个是针对Python 的,从对于Python 介绍、数据结构、基本语句到创建函数、创建类和异常;另一个是针对ArcGIS 下的Python ,
从ArcPy 站点包、访问以及管理地理信息数据的方法、处理要素类、处理栅格数据到网络分析和与地理处理模型的结合方法。两条线同时推进
阐述,互相支持印证,并结合实际解决问题的应用方法,例如如何转化KML 文件和.dwg 格式文件并增加字段数据,以及适宜性分析栅格计算
重分类的方法和寻找最近设施点的网络分析,遗传算法应用等。
结合规划设计专业阐述ArcGIS 下Python 编写处理地理信息数据方法的专著也许本书是国内第一本,难免存在不妥之处,敬请批评指正,从
而逐步修正和完善。
9 Python 与ArcGIS
10 1 Python
12 2 将地理信息系统作为过程的空间分析
12 2.1 区位与网络结构
14 2.2 调研者路线
16 2.3 场地现状信息录入与基本分析
18 2.4 基础的数据地理信息化辅助规划设计分析
21 2.5 专题地图叠合的方法
21 2.6 作为过程的空间分析
23 3 Python 与ArcGIS
25 3.1 .kml 文件格式
41 3.2 通过Python 使用工具箱里的工具
44 3.3 通过Python 使用环境设置
46 3.4 通过Python 使用函数
47 3.5 通过Python 使用类
51 3.5 获取和设置参数
57 ArcGIS 下的地理数据与Python 数据结构
58 1 ArcGIS 下的地理数据
62 1.1 文件地理数据库和个人地理数据库
62 1.2 ArcSDE 地理数据库
67 1.3 创建地理数据列表
74 2 Python 数据结构-List 列表、Tuple 元组与Dictionary 字典
75 2.1 列表(List)
85 2.2 元组(Tuple)
85 2.3 字典(Dictionary)
94 3 Python 数据结构-String 字符串
94 3.1 字符串格式化
96 3.2 re(regular expression) 正则表达式
109 Python 的基本语句与使用Python 访问地理数据
110 1 描述数据
112 2 Python 的基本语句
112 2.1 print() 与import
113 2.2 赋值的方法
114 2.3 循环语句
117 2.4 条件语句
119 3 Table 属性表与Cursor 游标
123 3.1 读取几何、写入几何与几何标记(geometry tokens)
126 3.2 游标和锁定
127 3.3 在Python 脚本中使用SQL 结构化查询语
129 3.4 数据存在判断与在Python 脚本中验证表和字段名称
135 创建函数与使用Python 处理栅格数据
136 1 创建函数
145 2 形式参数的传递
147 3 Raster 栅格数据
148 3.1 栅格数据(Mesh 面Quad 类型)
148 3.2 专题数据
148 3.3 影像数据
152 3.4 栅格函数
153 3.5 TIN 表面模型(Mesh 面Triangle 类型)
155 4 使用Python 处理栅格数据
155 4.1 栅格计算(地图代数运算)
159 4.2 重分类
171 4.3 条件分析工具集
175 创建类与网络分析
177 1 创建类
179 2 网络分析
180 2.1 从GoogleEarth 中调入路径以及服务设施和源点
185 2.2 建立文件地理数据库、要素数据集并导入用于网络分析的基础数据
187 2.3 最近设施点分析
193 异常与错误
194 1 异常
196 1.1 Python 内置异常
197 2 错误
201 程序的魅力
201 1 课题探讨_A_ 自然村落选址因子权重评定的遗传算法
204 1.1 准备数据
204 1.2 确定研究区域
205 1.3 确定影响因子
209 1.4 假设权重,叠合相加各个影响因子的成本栅格
211 1.5 遗传算法
218 1.6 将计算结果应用于类似场地
219 2 课题探讨_B_ 基于景观感知敏感度的生态旅游地观光线路自动选址
220 2.1 技术线路与基础数据
223 2.2 视域感知因子_ 可视区域计算
231 2.3 视域感知因子_ 最佳观赏距离计算
242 2.4 视域感知因子_ 最佳观赏方位
249 2.5 视域感知因子_ 栅格叠加求和
249 2.6 生态感知因子_ 景观类型
251 2.7 生态感知因子_ 资源价值
252 2.8 生态感知因子_ 栅格叠加求和
252 2.9 景观感知敏感度
254 2.10 地形因子
256 2.11 观光线路适宜性成本栅格计算
257 2.12 观光线路自动获取
260 3 课题探讨_C_ 解读蚁群算法与TSP 问题
260 3.1 蚁群算法与TSP 问题概述
263 3.2 蚁群算法程序解读
271 3.3 蚁群算法在ArcGIS 下的应用
274 4 分享程序
ArcGIS下的Python编程 包瑞清 下载 mobi pdf epub txt 电子书 格式 2024
ArcGIS下的Python编程 包瑞清 下载 mobi epub pdf 电子书ArcGIS下的Python编程 包瑞清 mobi epub pdf txt 电子书 格式下载 2024