APP下载

Python语言在地理空间数据处理中的应用

2019-08-19郑辉

关键词:脚本语言批处理空间数据

郑辉

【摘 要】Python 语言诞生于20世纪80年代末,它是一种简单易学,功能强大的开源编程语言。Python语言自被ArcGIS 9.0引入应用以来,凭借着批量处理、操作简单、入门快、效率高、可跨平台且植入性高、稳定成熟等众多优点迅速跻身于地理空间数据处理者中,为其的工作提供了无限的便利。论文以实际测量土地范围点位数据为例,利用Python语言编写脚本批量处理地理空间数据,结果表明Python语言可以极大地提高了地理空间数据的处理效率,同时,进一步证明Python语言简单易学,适合非计算机专业的编程入门语言。

【Abstract】Python language was born in the late 1980 s. It's a simple, easy-to-learn, powerful open source programming language. Since it was introduced into ArcGIS 9.0, it has rapidly become one of the geospatial data processors with the advantages of batch processing, simple operation, fast entry, high efficiency, cross-platform, high implantability, stability and maturity, which provides infinite convenience for its work. Taking the point data of actual land survey as an example, this paper uses Python language to write scripts to process geospatial data in batches. The results show that Python language can greatly improve the processing efficiency of geospatial data. At the same time, it further proves that Python language is simple and easy to learn and suitable for non-computer professional programming introductory language.

【關键词】Python;地理空间数据;脚本语言;点图层数据

【Keywords】Python; geo-spatial data; script language; point layer data

【中图分类号】P208;P237                                             【文献标志码】A                                【文章编号】1673-1069(2019)06-0129-02

1 引言

Python 语言诞生于20世纪80年代末,它是一种简单易学,功能强大的编程语言;还是一种开源、免费软件,用户在使用时不用担心版权问题;它有高效率的高层数据结构,简单而有效地实现面向对象编程。Python 简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,并用在不同的领域[1]。

随着大数据时代的到来,生活信息化程度越来越高,许多传统的信息处理方式已经远远满足不了当代人的需求。特别是在地学领域的研究中,地理空间数据的处理经常需要借助相应的软件或者工具。在大量的地理数据中,地理空间数据较其他矢量数据更具有丰富的空间属性信息,将其不同数据通过裁切、融合、叠加以及其他复杂手段后会得到包含更多空间信息的地理数据。但在正常的操作过程中,一般借助ArcGIS软件对地理空间数据进行简单的重复性操作,复杂性的数据处理通常是借助构造函数或相应软件进行的,这样机械性的操作不仅会大大影响数据的处理过程,另外,在重复性操作的过程中不可避免引进的数据误差也会大幅度增加,极大地影响了工作效率和数据处理的灵活性与易用性[2]。

Python语言自被ArcGIS 9.0引入应用以来,凭借着批量处理、操作简单、入门快、效率高、可跨平台且植入性高、稳定成熟等众多优点迅速跻身于地理空间数据处理中,为其工作提供了无限的便利。目前,ESRI公司已完全将Python纳入ArcGIS中,并将其视为可满足用户需求的语言,再加上Python是免费使用的,因此Python软件所面对的用户面十分宽广,若合理使用则会节省大量数据处理时间,提高工作效率[3]。本文主要通过将重复性操作的数据处理与Python批处理进行对照,对人们的生产生活具有一定的现实意义。

2 地理空间数据处理方法

地理空间数据处理是在一定的要求下,借助ArcGIS软件将不同的地理数据按其空间关系进行相应的几何操作,最终使得处理后的结果在其属性表上显示相应的信息,以此达到具体实践的目的。而对于多量重复性质的空间数据处理方法,常用的有以下三种方式:针对实际需求,通过ArcToolbox中的数百个处理工具进行处理;借助ArcGIS软件中自带的批处理Batch工具进行处理;借助Python脚本语言对数据进行具体实现。

①ArcToolbox处理。ArcGIS软件提供一系列地理数据处理的方法,并将其集成于一套工具箱之中,可以根据具体的应用利用ArcToolbox简单的可视化引导界面完成项目任务。

②Batch批处理。虽然ArcToolbox提供了几百个灵活领用的工具,但其每次只能处理一个数据。如果几十个数据,则需要重复工作。而工具中的批量处理(Batch)可以实现多个数据到几十个数据的批量处理,可以通过添加多个数据完成项目任务。

③Python批处理。Batch批处理功能虽能解决多数据的问题,但处理多数据时需要手动加入几十个数据,并需要对输出文件进行命名。这样对成千上万,甚至几十百万个地理数据操作,Batch功能依然无法满足,而Python灵活的脚本语言可以很好地解决这些难题。

3 地理空间数据实例处理

本实例以实际测量土地范围为例,项目中野外测量获取不同地块的特征点位。而用户需要获取地块的长度(线图层)和面积(面图层)信息,如图1所示,图中黑色三角点为野外实际测量的关键点。

案例中使用ArcGIS中的Toolbox与python语言进行对点图层转换成线图层进行比较分析。Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。Python的Virtual Machine是一种更高级的Virtual Machine。与Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。实验结果显示随着数据量的不断增加及人员疲惫的出现,通过ArcGIS中的Toolbox单个处理数据的时间会呈现指数趋势的增长,而通过Python脚本语言与Toolbox单个处理相比较,随着数据的增加其节省时间越来越多。

4 结语

研究中利用Python 语言处理大量的地理空间数据的转换,通过编写脚本程序可以极大地提高地理空间数据的处理速度,简化手工操作的步骤,对于大批量流程作业将大幅提高工作效率。案例中仅对比分析简单的点图层转换成线图层的时效性,今后将进一步研究面的转换及叠加分析等复杂的分析,进一步探讨Python语言在地理空间数据处理中的优越性、时效性。

同时,通过该案例实验更进一步证明Python语言也很容易学习,非常适合作为非计算机相关专业的计算机程序设计入门语言,特别是对需要处理大量地理空间数据的地理学相关专业。开设Python 语言课程,可以作为一种用于学校教学辅助软件的开发工具,提高工作效率。

【参考文献】

【1】http://www.python.org/, Python 语言的官方网站.

【2】https://github.com/, Github python 代码共享網站.

【3】肖斌涛, 黄君强. Python语言在教学辅助软件开发中的应用研究[J].现代计算机, 2009(7):113-115.

猜你喜欢

脚本语言批处理空间数据
恶意批处理文件导致电脑黑屏、反复重启、无响应的原因分析及应对思路
一种面向SSC的电信增值业务的生成方法及实现
元数据驱动的多中心空间数据同步方法研究
浅析计算机技术在flash动画中的应用
基于SiPESC平台的Python扩展模块开发
基于PSD-BPA的暂态稳定控制批处理计算方法的实现
基于文件系统的分布式海量空间数据高效存储与组织研究
客户端空间数据缓存策略
多源空间数据同名实体几何匹配方法研究