您好,欢迎来到爱站旅游。
搜索
您的当前位置:首页ArcPy在长江河道水下空间数据批量处理中的应用

ArcPy在长江河道水下空间数据批量处理中的应用

来源:爱站旅游
第38卷第2期2015年2月测绘与空间地理信息

GEOMATICS&SPATIALINFORMATIONTECHNOLOGY

Vol.38,No.2

2015Feb.,ArcPy在长江河道水下空间数据批量处理中的应用

孙咸磊,许捍卫,李文博

(河海大学地球科学与工程学院,江苏南京210098)

要:空间数据批量自动化处理可以保证数据的质量较高,并且可以很大限度上减轻数据处理人员的工作强

度。本文结合长江河道水下空间数据处理的具体操作实例,介绍了ArcGIS脚本工具包ArcPy在空间数据批量处摘

理中的具体应用,完成了批量修改属性信息、批量定义投影坐标系、批量拼接线状要素图,并取得了较好的结果,为ArcPy在空间数据批量处理中的应用提供了一种可行有效的解决思路。关键词:ArcPy;空间数据;批处理中图分类号:P229.1文献标识码:A

文章编号:1672-5867(2015)02-0097-03

ApplicationofArcPyinBatchProcessingSpatialDataofYangtzeRiver

SUNXian-lei,XUHan-wei,LIWen-bo

(SchoolofEarthSciencesandEngineering,HohaiUniversity,Nanjing210098,China)

Abstract:Spatialdatabatchautomationprocessingcanensureahighqualitydata,andreduceworkingintensityofdataprocessingstaff.WiththecaseofbatchprocessingspatialdataofYangtzeRiver,thepaperintroducestheArcGIStoolkitArcPyscriptinbatchprocessingofspatialdata.WithArcPy,modifyingattributeinformation,definingprojectedcoordinatesystemandsplicinggeographicalfactorsbetweendifferentmapscanbedoneeasilyandachievebetterresults.ThearticleprovidesasolutionforthebatchprocessingofspatialdatawithArcPy.

Keywords:ArcPy;spatialdata;batchprocessing

0引言

作所有地理处理工具(包括扩展模块)的机会,并提供了多种有用的函数和类,以用于访问和处理GIS数据。

空间数据处理是使用空间数据进行分析的前提与基础,而空间数据的数据量通常比较大,如果要对其进行投影变换、字段编辑、拼接裁剪、数据转换等数据处理,需要数据处理人员大量重复性的手动操作,工作量大,同时也容易出错。为了保证数据的高质量以及降低数据处理人员的工作强度,对空间数据进行批量自动化处理是一种有效的解决办法。

本文以南京长江河道水下地形空间数据处理为例,探讨ArcGIS中脚本工具包ArcPy在空间数据批量处理中的应用,为ArcPy在空间数据批量处理中的应用提供了一种可行有效的解决方案。

1.11.1.1

ArcPy基本术语ArcPy模块

模块为通常包含函数和类的Python文件。有一系列

Spatial模块支持ArcPy,包括制图模块(arcpy.mapping)、Analyst模块(arcpy.sa)和GeostatisticalAnalyst模块(arcpy.ga)。

1.1.2ArcPy类

类的作用类似于建筑设计蓝图。蓝图为如何创建事物提供框架,而类则可用来创建对象,即通常所说的实例。ArcPy类,如SpatialReference类和Extent类,通常用来设置地理处理工具参数的快捷方式,否则,这些参数会使用更加复杂的字符串。

1ArcPy简介

ArcPy是ESRI从ArcGIS10开始在所有产品中集成

完全代替了之前的ArcGISscript-的基于Python的站点包,

tingmodule。站点包是Python术语,表示将附加函数添加到Python的库。ArcPy为用户提供了使用Python语言操

收稿日期:2013-07-22,修订日期:2014-09-20

1.1.3ArcPy函数

函数是用于执行某项特定任务并能够纳入更多程序的已定义功能。在ArcPy中,所有地理处理工具均以函数形式提供,但并非所有函数都是地理处理工具。除工具

作者简介:孙咸磊(1990-),男,江苏赣榆人,地图学与地理信息系统专业硕士研究生,主要研究方向为地理信息系统开发与应用。

98

测绘与空间地理信息2015年

ArcPy还提供了多种函数来更好地支持Python地理之外,

处理工作流。函数或方法可用于列出某些数据集、检索数据集的属性、将表添加到地理数据库之前验证表名称,或执行其他许多有用的脚本任务。

存储表1中的字段名和编码,遍历个人地理空间数据库,查找字典中已有字段名,为其赋予对应的编码值。

3.2批量定义空间投影坐标系

1.2使用ArcPy编写程序和脚本的优势

1.2.1具有Python脚本的所有特点

适合编写脚本,也适合编简单易学;可伸缩程度高,

写大型项目;可移植,跨平台,可嵌入。

由于新建个人地理空间数据库时未指定空间投影坐

标系,需要通过后期编写ArcPy脚本程序来批量完成定义。批量为个人地理空间数据库定义空间投影坐标系的基本思路是:通过遍历每一个个人空间数据库中的每一层矢量数据,使用ArcPy中的DefineProjection函数为其定义空间投影坐标系。

完整代码如下:

basepath=r\"\"#所有数据存放绝对路径forr,ds,fsinos.walk(basepath):forfinfs:

iff[-4:]=='.mdb':mdbpath=os.path.join(r,f)mdbprj(mdbpath)

defmdbprj(path):#自定义函数arcpy.env.workspace=pathfcs=arcpy.ListFeatureClasses()forfinfcs:

prjfile=r\"\"#投影文件绝对路径

arcpy.DefineProjection_management(f,prjfile)

从上面的完整代码我们可以直接感受到使用ArcPy批量处理空间数据的简洁性和便利性。只需要少量的代码就可以完成大量的工作。

1.2.2功能强大使用简单

使用ArcPy可以访问并使用由来自多种不同领域的GIS专业人员和程序员开发的大量Python模块,可快速轻松地创建简单或复杂的工作流,可以开发出数量无限的可用于处理地理数据的实用程序。

ArcPy借助于Python,已经成为一种用于进行数据分析、数据转换、数据管理和地图自动化的方式,显著提高了空间数据处理的工作效率。

2长江河道水下空间数据

高程点、水长江河道水下空间数据主要包括等深线、

边线、码头等矢量图层信息,每个图层都有编码、高程等相关属性信息。

长江河道水下空间数据为纸质数据的数字化成果。由于数据来源为人工手工跟踪数字化,难免会产生高程、编码输入的错误,同时,由于源数据分幅测绘完成,得到的数据需要进行相邻图幅间数据拼接。为保证数据的准确性、可用性,在长江河道水下空间数据生产后期需要对数据进行检查拼接等处理操作,以解决数据生产过程中产生的各种问题。

长江河道数据量巨大,完全依靠人工检查修改不现实,需要寻求更好的批量自动化处理空间数据的解决办法。

3.3批量进行等深线拼接

长江河道数据为了便于管理较大区域的地图数据,

采用了分幅管理方式,而使用这些数据时必须进行图幅拼接,但由于数据精度问题,相邻图幅的对应地理要素往往不能很好接合,存在一定的距离误差。图1中是相邻两幅图幅中需要接边的两条线状要素,它们具有相同的属性信息,是同一条等深线的不同部分,由于数据精度的原因,这两条线状要素并不能完全吻合,需要采取合理的方式将两条要素进行结合。

3

3.1

ArcPy批量处理水下地形空间数据

批量处理数据属性字段

长江河道水下空间数据每层矢量数据都对应唯一的编码字段,不同图层与编码的对照表见表1。由于在数据生产过程中的各种因素,导致编码字段里的数据出现错误或者缺失,需要在数据生产后期进行集中处理。

表1图层与编码对照表

Tab.1Layersandcodingtable

字段名(中)高程点等深线首曲线等深线计曲线测量控制点水边线

字段名(英)GCDDSXSQXDSXJQXCLKZZSBX

编码740200730101730102110000260400

图1图幅间同一要素

Fig.1Thesameelementsbetweenmapsheet

本文结合长江河道数据等深线接边的具体应用实例,给出了一种效果较好的线状要素图幅自动拼接算法,并通过ArcPy脚本实现,取得了不错的效果。

自动接边算法的具体实现思路如下:

1)根据属性值中的高程值查询到需要进行接边操作的两条线状要素。

2)判断两条线状要素首末节点间的距离,确定具体

为了达到集中批量处理修改编码的目的,我们需要

使用ArcPy中的CalculateField_management函数调用我们常用的字段计算器的功能完成属性字段的修改。具体思路为:建立Python字典(Python语言中的一种数据结构)

第2期

孙咸磊等:ArcPy在长江河道水下空间数据批量处理中的应用99

进行接边操作的节点。由于线状要素中的节点在存储时具有方向性,加以判断可以确保接边的合理性。3)对两条地理要素进行接边操作。接边过程中,如果直接将两条要素的节点直接相连,则连接起来的线状要素显得比较生硬。为了使接边完成的数据更加合理美观,本文采用如下算法:获取需要接边的两节点连线的中点,两线性要素分别删除各自需要接边的节点(删除节点

使用剩余节点中数可视数据节点密度的具体情况而定),

最靠近所删节点的节点与之前获得的中点构造新的线状

要素,完成接边操作。具体的接边示例如图2所示(图中实线为待接边的两条要素,虚线为完成接边操作的新要素)。

利用ArcPy封装好的处理函数以及Python自身具备的语

法简洁的特点,数据处理工作者可以在短时间内编写出功能强大的各种脚本工具,从而达到简单、快捷地进行空间数据批量处理的目的。利用ArcPy进行空间数据批量处理是空间数据批量处理中一种行之有效的解决方法。

参考文献:

[1]田学志.基于Python的ArcGIS地理处理应用研究[J].

50.2013,26(7):46,计算机光盘软件与应用,

[2]焦洋,邓鑫,李胜才.基于Python的ArcGIS空间数据格

.现代测绘,2012,35(3):式批处理转换工具开发[J]-55.

.企业科技与[3]张茗芳.动态语言Python探讨与比较[J]

2012,31(13):57-60.发展,

[4]彭海波,向洪普.基于Python的空间数据批量处理方法

85,87.[J].测绘与空间地理信息,2011,34(4):81-82,[5]曹健,李国忠,徐效波,等.基于ArcGISEngine的多幅数

.测绘与空间地理信息,字地形图接边算法研究[J]2010,33(2):76-78.

图2两条线状要素接边实例

Fig.2Twoexamplesoflinearfeaturesedge

4)循环对需要接边的相应地理线状要素进行接边操作,直到处理完所有线状要素。使用ArcPy编写脚本实现上述接边算法,得到的接边结果如图3所示(图中实线为待接边的两条对应要素,虚线为完成接边操作的新要素)。

[6]戴立乾,高鹏,叶海翔.浅析Python语言在县级坡度分

J].安徽农业科学,2009,37(23):级图制作中的应用[11324-11325,11327.

[7]金江峰.基于MapGIS的河南省土地境界接边管理系统

.科学技术与工程,2009,19(2):391的设计与实现[J]-394,401.

[8]叶宝莹,杨农.利用ArcGIS构建地形图分幅空间数据

J].测绘科学,2008,33(3):207-209.库[

[9]王亚卿,.方龙.浅析Python在地图处理中的应用[J]

2008,22(1):83-84.华东森林经理,

[10]刘庆元,周容.一种基于ArcGISEngine的线状图幅接边

J].计算机时代,2008,28(2):4-6.方法[

图3接边效果

Fig.3Edgeeffects

[11]刘庆元,陶佩枫.基于ArcGISEngine的地图编辑软件的

J].计算机时代,2008,28(3):23-25.设计与实现[

[12]赵江洪.GIS中多图幅自动接边的实现方法探讨[J].

2006(2):50-52.测绘通报,

[13]罗霄,任勇,山秀明.基于Python的混合语言编程及其实

112.J].计算机应用与软件,2004,21(12):17-18,现[

4结束语

探讨本文以处理南京长江河道水下地形数据为例,

了ArcGIS中ArcPy工具包在空间数据批量处理中的应用。

[编辑:栾丽杰]

(上接第96页)

对数据做出的假设不同,使用的计算方法不同,会得到不

同的结果,因此特定的数据适合选用特定的工具。我们在实际工程应用中,要对原始测量数据进行充分的分析评估,选用适当的插值方法,才能得到更好的结果。

J].地理空间信息,2009,7(4):139-141.应用前景[

[4]徐国庆,顾钰培,赵明瑜.在ArcToolbox中实现用户自定义

J].测绘与空间地理信息,2014,37(8):131-132.工具[

[5]黎慧斌,.林澍哲.移动终端离线电子地图系统设计[J]

2014,37(8):160-162.测绘与空间地理信息,

[6]封志明,杨艳昭,丁晓强.气象要素空间插值方法优化

[J].地理研究,2004,23(3):357-3.

[7]张梁,林韬,汪庆锋.使用克里金插值法进行CGCS2000

.测绘与空间地理信息,到海南地方坐标系的转换[J]2014,37(9):219-222.

参考文献:

[1]池建.精通ArcGIS地理信息系统[M].北京:清华大学

2011.出版社,

[2]宋小冬、.北京:科钮心毅.地理信息系统实习教程[M]

2011.学出版社,

[3]王先鹏,曹荣林.土方量计算的原理与方法及ArcGIS的

[编辑:胡雪]

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- azee.cn 版权所有 赣ICP备2024042794号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务