基于ArcGIS Pro平台的Python编程在勘探测量中的应用

2024-02-05 22:35孙跃龙鞠立华
科技创新与应用 2024年5期
关键词:可视化分析空间数据

孙跃龙 鞠立华

摘  要:在ArcGIS Pro下利用Python编程语言结合ArcGIS的Arcpy库进行编程对空间数据进行三维可视化分析,对勘探测量野外采集物理点的高程进行质量监控,从而减少对地震勘探資料处理的影响。该文结合实际应用提出实现方法,对ArcGIS结合Python编程在勘探测量中的进一步应用具有参考意义。

关键词:ArcGIS Pro;Python;空间数据;可视化分析;勘探测量

中图分类号:P208        文献标志码:A          文章编号:2095-2945(2024)05-0168-04

Abstract: Under ArcGIS Pro, we use Python programming language combined with Arcpy library of ArcGIS to carry out 3D visual analysis of spatial data, and monitor the elevation of physical points collected in the field of exploration survey, so as to reduce the impact on seismic data processing. This paper puts forward a realization method combined with practical application, which is of reference significance for the further application of ArcGIS combined with Python programming in exploration and survey.

Keywords: ArcGIS Pro; Python; spatial data; visual analysis; exploration survey

在地球物理勘探测量工作中,常常需要对野外采集物理点的高程进行质量监测,以此筛选出高程异常的点,以便消除对后续的地震资料处理带来的影响,常规的方法很难对大量的物理点进行质量监控,如果能够形成数字地形模型来可视化的显示物理点的高程变化,可以高效率地筛查高程异常的点,并且可以指导野外对这些异常点进行复测。

ArcGIS是ESRI推出的一款功能齐全的专业桌面 GIS 应用程序。使用ArcGIS可以可视化分析数据; 创建2D地图和3D应用场景,使用ESRI ArcGIS提供的Spatial Analyst工具,可以对数据执行空间分析。ArcGIS中的全套Spatial Analyst工具可以探索和分析空间数据,并帮助找到空间问题的解决方案。可以从 Spatial Analyst工具箱或Python窗口运行工具,可通过任何ArcGIS Desktop应用程序访问这些工具。还可以创建自己的自定义工具(模型或Python脚本)来同时运行一系列工具。ArcGIS Pro是全新的ArcGIS的桌面应用程序,使用新的功能区界面,界面顶部的功能区具有上下文相关性,使用更加方便。ArcGIS Pro与ArcGIS Enterprise、ArcGIS Online和ArcGIS平台的其余部分紧密集成,使跨平台工作更加强大,把其他ArcGIS桌面应用程序整合在一个项目里进行管理,使得应用更高效,2D地图和3D场景可以转换和同步,使得应用更便利。

Python语言作为一种开源语言,在GIS软件中,常作为辅助工具使用,其为ArcGIS提供了大量的处理模块,能更高效地完成地理信息处理工作。利用Python语言,调用集成在ArcGIS中ArcPy软件包,能实现数据的输入、投影变换,以及制图、查询、三维数据可视化分析等功能,同时其代码简单易读,便于使用,可为地理信息数据处理提供更方便的工具[1]。

ArcGIS Pro全新强大的功能结合Python语言的高效应用,为本文阐述的方法提供了很好的工具支持。本文就是探讨利用ArcGIS Pro平台结合Python语言对地震勘探测量数据进行可视化空间分析的方法。

1  GIS空间数据类型

空间数据,也称为地理空间数据,用于描述与地球表面特定位置相关或包含有关地球表面特定位置信息的任何数据。空间数据包含的信息不仅是地球表面的位置,空间数据可以具有任意数量的附加属性及有关位置的信息。空间数据类型有多种,但2种主要的空间数据是几何数据和地理数据。几何数据是映射在二维平面上的空间数据类型,地理数据是围绕地球绘制的信息[2]。矢量和栅格是用于存储地理空间数据的常见数据格式,矢量数据主要有3种类型:点、线和多边形。这些点有助于创建线,连接线形成封闭区域或多边形。矢量通常代表地球表面特征或物体的概括。矢量数据通常存储在shapefile中,在ArcGIS应用程序中存储为.shp文件。栅格表示像素网格中呈现的信息。栅格中存储的每个像素都有值。这可以是测量单位、颜色或有关特定元素的信息等任何内容[3]。

应用于地震勘探测量的空间数据主要有3种:Raster(栅格数据)、TIN(不规则三角形网)、Contour(等高线)。

栅格数据:栅格由组织成行和列(或网格)的像元(或像素)矩阵组成,其中每个像元包含表示信息的值。每个像元都有一个值,用于表示该位置的某些特征,例如海拔高度等。栅格数据可以与地图上的其他地理数据显示为数据图层,但通常使用ArcGIS Spatial Analyst扩展模块将其用作空间分析的源数据。

TIN数据:表示表面形态的数字手段。TIN是一种基于矢量的数字地理数据,通过对一组顶点进行三角测量构建。顶点与一系列边连接以形成三角形网络。有不同的插值方法可以形成这些三角形,例如,Delaunay三角剖分或距离排序。ArcGIS支持Delaunay三角测量方法。TIN的边缘形成连续、不重叠的三角面,可用于捕获在表面中发挥重要作用的线性要素的位置,例如,山脊线或河道。TIN数据和栅格数据可以互相转换。

等高线数据:等高线是连接栅格数据集中等值位置的线,表示连续现象,例如海拔高度、温度、降水、污染或大气压力。等高线的分布显示了值在表面上的变化情况。如果值变化不大,则线条间隔较远。当值快速上升或下降时,线条靠得更近。

在实际应用中,以上3种数据类型互相转换结合使用对空间数据进行可视化分析,栅格数据更便于栅格中存储数据的进一步运算,而TIN数据更便于观察空间的数据的变化,等高线数据利于观测空间数据的变化大小。

2  应用方法研究

利用ArcGIS Pro的三维分析功能可以把勘探生产中具有空间属性的数据,更直观地可视化显现出来,并能表现出数据的空间位置、分布、形态演变等信息,对数据分析和质量监控起到很大的作用。在勘探生产过程中,需要监控野外物理点的高程变化是否符合地形变化,这些对勘探记录、数据处理尤为重要。ArcGIS Pro的三维分析模块在勘探数据的三维分析过程中能发挥重大作用,且能够直观地表现出来。

勘探测量数据的三维地理信息通常包括坐标信息和对应在这个坐标位置的某个属性数据,比如,某个点的高程、某个面元的覆盖次数等,因此,如果把这些三维信息立体呈现出来,就可以更加直接地展示某个属性数据的特性,以便分析研究。勘探数据的三维信息数据,即X、Y、Z,X、Y表示地理平面坐标,Z代表这个坐标位置的某个属性值,把包含X、Y、Z这些值的离散点转化为TIN数据,或形成Raster数据(栅格数据),Raster数据可以通过不同的算法对栅格数据的每一个像元进行运算,形成新的栅格数据,这些不同类型的栅格数据叠加,就能够把数据直观地呈现出来[4]。

通常应用的栅格数据的算法有2种,一是Slope(坡度),通过对栅格数据相邻的像元的Z值的变化而运算的坡度值存储在相应的像元里,这个坡度值的可以以2种方式输出,一种是角度,变化范围是0~90 °,一种是增强的百分比;二是Hillshade(山影),通过设置光源的方位角和太阳高度角,来得到山影图,经过运算后的栅格数据的像元里的值是原有数据的阴影的灰度值,范围从0(最暗)到255(最亮),通过这种栅格数据的运算,能够很直观地呈现出栅格数据存储值的起伏变化。

通过GIS软件的空间分析模块对栅格数据的每个像元所存储的Z值的计算,可以辅助勘探测量数据的三维分析[5]。所以通过以上论述的理论方法对勘探测量数据的高程建立数字高程模型,对野外地形的变化和物理点的高程进行分析。把原始的栅格数据和Hillshade运算后的栅格数据进行叠加可以比较好地反映地形的变化[6],Arcpy是ArcGIS的Python库,可以应用库里的函数、类、模块实现数据管理、数据转换和数据分析等功能,基于Python与Arcpy的GIS空间分析是利用Python编程语言调用Arcpy的各种函数、类、模块实现空间数据的分析功能。用到的主要功能模块有数据管理模块(坐标文件生成数据要素、计算要素类、要素图层或栅格的字段值)、3D分析(形成TIN数据、Raster数据、等高线数据、Raster数据转换山影和坡度数据、异常值的定位)、图像分析(焦点统计功能计算输出邻域栅格的值)、空间数据分析(栅格数据提取)。

基于以上功能和方法,可以设计程序处理数据流程如图1所示。

根据以上原理和方法,利用Python语言设计应用程序,既可以在ArcGIS Pro软件内部运行Python程序语句来完成,也可以运行Python脚本来完成。实际应用中利用后者更简便高效。

3  应用实例

目前,在笔者参与的勘探项目中,文章提出的方法已经得到了应用,在实际应用中,取得了很好的应用效果。在实际应用中,根据上文的流程,利用Python语言编程调用Arcpy库,提取高程异常的点位的高程,并与栅格数据焦点统计后存储的高程平均值进行比较得出差异,并且可以把异常数据及周边区域在ArcGIS Pro里进行2D和3D可视化分析。在2D地图下,栅格数据和等高线数据叠加山影数据可以更直观显示地形的变化,对于监测高程有异常的点,可以形成shape文件存储,并作为一个图层展现在ArcGIS Pro里进行可视化分析。如图2所示,图上所示点位为高程可能有异常的点,除了可以在图上分析以外,也可以指导野外对高程值异常点的复测。

可以转换到ArcGIS Pro Scene下原始栅格数据结合slope栅格数据对地形进行三维可视化分析,如图3所示。利用三维图形的旋转变化,可以更方便和直观地观察。

此外,在ArcGIS Pro里结合卫星图片,可以更直观地观察高程有异常的点周边的地形和地貌的变化,也更利于判读点位高程的正确性,更好地指导野外点位采集,减少野外工作量,提高工作效率。如图4所示。

Python部分源碼如下。

首先需要调用Arcpy库,设置三维分析功能和坐标系及投影,Python代码如下。

Python调用Arcpy库,把野外采集的物理点形成点特征的要素类,把这个点要素类形成TIN数据、Raster数据、山影数据、坡度数据和等高线数据等, 对原始栅格数据进行焦点统计,通过TIN数据进行异常点的定位。异常点定位的要素类和焦点统计后的数据进行对比得到高程存在异常的点位,部分源码如下。

4  结束语

本文阐述了勘探测量中的主要空间数据类型,给出了在ArcGIS Pro平台下利用Python语言编程实现勘探测量空间数据的可视化分析的方法,利用这一方法,可以实现对野外采集数据的高程质量监控,减少物理点高程的异常对地震勘探资料处理的影响,同时利用ArcGIS的三维分析功能可以更好地指导野外生产。ArcGIS Pro空间数据分析功能强大,Python编程语言功能丰富,可以方便地调用ArcGIS的分析功能模块,编程效率高,把两者相结合,在勘探测量数据处理中极大地提高了工作效率。

参考文献:

[1] 丘恩.Python核心编程[M].2版.北京:人民邮电出版社,2008.

[2] 方芳,徐世武,万波.GIS空间分析建模技术进展研究[J].测绘科学,2010,35(6):137-138,163.

[3] 邬伦,刘瑜,张晶,等.地理信息系统——原理、方法和应用[M].北京:科学出版社,2001.

[4] 毕华兴,谭秀英,李笑吟.基于DEM的数字地形分析[J].北京林业大学学报,2005,27(2):49-53.

[5] 刘陵,方军,陈利生,等.三维GIS的研究现状及其发展趋势[J].矿山测量,2011(2):71-75.

[6] AUSTIN J H. Performance evaluation of three DEM based fluvial terrace mapping methods[J].Earth Surface Processes and Landforms,2016(8):1144-1152.

猜你喜欢
可视化分析空间数据
我国职业教育师资研究热点可视化分析
声波吹灰技术在SCR中的应用研究
可视化分析技术在网络舆情研究中的应用
国内外政府信息公开研究的脉络、流派与趋势
元数据驱动的多中心空间数据同步方法研究
基于文件系统的分布式海量空间数据高效存储与组织研究
客户端空间数据缓存策略
多源空间数据同名实体几何匹配方法研究