推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

ArcGIS中应用Python脚本提高数据生产力的研究

更新时间:2019-12-25 21:24:15 大小:748K 上传用户:songhuahua查看TA发布的资源 标签:arcgispython 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

针对空间数据特性,利用Arc GIS中Python脚本语言结合Arc Toolbox编写批处理程序,可以在很大程度上简化数据生产的步骤,提高工作效率。现通过Python脚本工具在空间数据处理中的应用案例,简述工具的编写流程及其在生产实践中的优势。


部分文件列表

文件名 大小
ArcGIS中应用Python脚本提高数据生产力的研究.pdf 748K

部分页面预览

(完整内容请下载后查看)
12 学术研究  
测绘技术装备 第 19 2017 年第 3 期  
ArcGIS 中应用 Python 脚本提高数据生产力的研究  
巨擘  
(甘肃省地图院 甘肃兰州 730000)  
要:针对空间数据特性,利用 ArcGIS 中 Python 脚本语言结合 ArcToolbox 编写批处理程序,可以在很  
大程度上简化数据生产的步骤,提高工作效率。现通过 Python 脚本工具在空间数据处理中的应用案例,简  
述工具的编写流程及其在生产实践中的优势。  
关键词:Python ArcGIS ArcToolBox 空间数据 生产效率  
1 引言  
ESRI 完全纳入 ArcGIS 中为了一种用于进行数据  
Python 作为 ArcGIS 的脚本语言在 ArcGIS9.0 版本 分析、数据转换、数据管理和地图自动化的语言。  
中引入,为具有一定编程能力的工作人员进行地理处  
理提供了更便捷的方式和更丰富的选择。  
Python 是一种通用的开源编程语言,在 ArcGIS 地  
理处理中用作脚本语言过导入 ArcGIS 软件的 ArcPy  
我们在进行空间数据的处理时,往往会遇到许多 站点包可以使用 Python 访问地理处理功能用 ArcPy  
重复性的操作。为了简化工作流程,提高工作效率, 可访问地理处理工具的其他函数类和模块,使用它们  
ArcGIS 提供了许多高效的批处理工具,这在实际工作 可快速轻松地创建简单或复杂工作流使用以 ArcPy 编  
中具有重大的意义。然而,实际工作十分复杂,只靠 写的 ArcGIS 应用程序和脚本的优势在于,可以访问并  
ArcGIS 提供的批处理工具无法满足生产需要,此时, 使用由来自多个不同领域GIS 专业人员和程序员开发  
作为 ArcGIS 的脚本工具的 Python 语言就发挥了重要 的大量 Python 模块使用 Python 中 ArcPy 的另一个主  
的作用过导入 ArcPy 站点包便可以使用 Python 访 要原因是 Python 是一种通用的编程语言,易于学习和  
问 ArcToolBox 中几乎所有的地理处理工具们可以 使用通过解释和动态输入这种编程语言,用户可以在  
通过 Python 定制特定功能的工具辅助生产有相当 交互式环境中快速地创建脚本原型并进行测试时这  
高的自由度,可以最大程度地提高工作效率。  
种编程语言功能强大,可编写大型应用程序。  
本文首先对 ArcGIS 的脚本语言 Python 的使用 2.2 Python 脚本的使用方法  
方 法 做 一 个 简 单 介 绍 , 对 比 Python 脚 本 与  
ArcGIS 中 Python 脚本的使用主要有两种方式:  
ModelBuilder 的优劣后通过 Python 脚本实例来 一是在 ArcGIS 的 Python 窗口中直接执行 Python 语  
说明其在空间数据处理中的应用。  
2 Python 脚本简介  
是编写 Python 脚本文件Python 的脚本文件  
既可以在 ArcGIS 中引入作为工具使用,也可以在  
ArcGIS 外部执行(需要 ArcPy 站点包支持。  
在 ArcGIS 工具条中点击 Python 按钮便可以启  
2.1 ArcGIS 中 Python 脚本的引入  
Python 是一种简单高效、跨平台的开源编程语  
言。ArcGIS9.0 中引入了 Python,此后 Python 便作 动 Python 窗口,如图 1 所示。  
为 ArcGIS 的脚本语言不断发展Python 已被  
图 1 Python 窗口  
测绘技术装备 第 19 2017 年第 3 期  
学术研究 13  
Python 窗口具有代码提示功能,在使用地理处 处理命令->输出结果。Python 脚本可以实现许多高  
理工具之前需要先导入 Arcpy 站点包。由于 Python 级复杂的地理处理功能,具有很强的定制性,利用  
是解释型语言,因此在 Python 窗口中既可以单句执 Python 脚本可以实现要素级的地理处理操作。  
行 Python 语句可以执行 Python 语句块Python  
语句块的输入需要通过 Ctrl+Enter 组合键实现换行 据建模工具。其模型的基本结构是:输入数据->空  
操作。 处理工具->输出数据。输入输出数据可以是  
ModelBuilderArcGIS 提供的一种可视化的数  
Python 脚本文件亦即将需要顺序执行的多个地 ArcGIS 支持的各种矢量、栅格及表格数据,空间处  
理处理操作写入同一个文件中。Python 的脚本文件 理工具可以调用 ArcGIS 空间处理的系统工具也可以  
可以根据需求实现多个文件的批量操作或嵌入多个 调用用户自定义工具。ModelBuilder 的优势在于其  
地理操作实现复杂的地理处理。  
建模的过程是可视化的,并且建模操作简单,建模  
结果可以生成脚本语言,对编程人员要求较低。  
2.3 Python 脚本的优势  
(1单易学能强大Python 语言是一种 3 Python 脚本应用案例  
解释型编程语言,语法简单易学,开发快,不同于 3.1 分幅数据批量合并  
C++这种编译型语言Python 脚本的执行不需要进行  
空间数据采集一般是按图幅分工完成的,但在  
编译处理而是直接在 IDE 环境中解释执行。虽然 实际工作中经常会用到合并成果,这就需要花费大  
Python 语言简单易学,但也具有面向对象及可扩展 量的时间和精力进行数据的整合拼接工作。传统的  
的特性,包含丰富的库,可以编写大型程序。  
作业方式需要作业人员一幅幅手动拼接数据,效率  
(2块可重用性Python 语言采用模块化编 比较低。Python 脚本可以批量按流程进行地理处理  
程思想,在编程过程中可以访问其他人员开发的 操作,这为数据的自动化整合拼接提供了方案。  
Python 模块,最大程度地发挥程序的可重用性,提  
高编程效率。  
下面就以数据批量合并拼接为例,说明 Python  
脚本的编写过程及将 Python 脚本转化为 ArcGIS 工  
(3理处理自动化Python 脚本的执行是一 具的方法。  
个自动化的流处理过程。地理处理的过程按照程序  
(1)新建 Python 文件。通过 Python IDLE 创  
设计的步骤依次完成相应的地理处理过程,中途无 建 Python 文件或新建 txt 文件将后缀改为.py。  
需人工干预。并且地理处理的过程可以实现批处理,  
大大简化工作量  
(2)导入所需模块。本程序用到的模块有  
ArcGIS 的 arcpy 模块和 Python 的 sys、os 模块。  
(3)参数设置。本程序包含三个参数:待合并  
(4)根据需求任意定制。使用 Python 脚本编  
写地理处理程序具有很大的灵活性,可以调用 workspace(mdb、gdb 数据库)数据所在文件夹;输  
ArcToolBox 中的所有工具并且可以实现要素级的处 出投影;输出 workspace(mdb、gdb 数据库。  
理操作,具有很强的定制性,可以实现比较高级的  
地理处理需求。  
(4)要素类重投影。输入数据与输出数据投影  
坐标可能不同,此时需要对输入数据进行重投影操  
(5)可转化为 ArcGIS 工具。满足格式要求的 作。重投影操作函数:arcpy.Project_management  
Python本程序可以添加到 ArcToolBox作为自定 (in_dataset, out_dataset, out_coor_system)  
义工具使用,使用方法与系统提供的工具一致,简  
化了操作方式。  
(5)要素追加。重投影之后的要素需要追加到  
输出 workspace 的相应要素类中。追加操作函数:  
arcpy. Append _management (inputs, target,  
2.4 Python 脚本与 ModelBuilder 比较  
Python 是 ArcGIS 的脚本语言,通过导入 ArcPy schema_type)。  
站点包便可以调用 ArcToolBox 中的所有工具,此外  
(6)要素融合。完成数据追加步骤后,所有的  
还可以导入并调用其他 GIS 人员开发的 Python 模块。数据已经合并到最终 workspace 中相应的图层中,  
Python 脚本数据处理模式与一般的地理处理模式是 此时还需要进行最后一步融合操作。数据融合操作  
一致的,即:获取处理数据及各种参数->执行地理 函 数 : arcpy.Dissolve_management(in_cover,  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载