基于python的数字高程模型高程精度检测方法

青海国土经略·技术交流
在我国DOM(数字正射影像图)、DEM(数字高程模型)、DRG(数字栅格地图)、DLG(数字线划地图)是国家基础空间数据的主要产品形式,其中DEM (数字高程模型)作为独立的标准的基础产品其应用遍及很多领域。在测绘领域中可用于绘制等高线、坡度图、立体透视图、并制作正射影像图及进行地图修测等;在工程中可用于体积和面积的计算、各种剖面图的绘制及线路的设计;军事上可用于导航(包括导弹及飞机导航)、通讯、作战任务计划等;遥感中可作为分支辅助数据;在环境与规划中可用于土地现状的分析,各种规划及水险情况预报等等;同时DEM还是生产数字正射影像图和建立三维城市景观不可缺少的数据。
1 DEM数据概述
数字高程模型(DigitalElevationModel),简称DEM。DEM是表示区域上三维向量的有限序列,是对地球表面地形地貌的一种离散的数字表达形式,是数字地面模型(DigitalTerrainModel,简称DTM)的一个分支。1.1 DEM形式
数字高程模型的数据组织表达形式有多种,一般用两种形式存储,基于规则格网的数字高程模型和基于不规则三角网的数字高程模型是目前数字高程模型的两种主要结构。
(1)规则矩形格网:规则格网数字高程模型用在水平方向和垂直方向上等间隔排列的地形点的高程来表示地形,格网点的平面坐标隐含在行列号中。规则格网数字高程模型在存储、管理和便于使用方面的优越性,成为广泛使用的一种数据结构。
(2)不规则三角网:不规则三角网是按一定的规则将离散点连接成覆盖整个区域且互不重叠、结构最佳的三角形,是建立离散点之间的空间关系。不规则三角网既可适应规则分布数据,又可适应不规则分布数据,同时还可以内插生成规则格网数据,能较好的顾及地貌特征点、线,表示复杂地形表面。
1.2 数据来源
DEM数据生产较为常用的做法有两种:一种是通过数字摄影测量工作站进行特征点、线的采集,据此构TIN内插成规则格网的DEM数据;另一种是通过特征匹配方式直接生成规则格网的DSM数据,在此基础上立体模式下进行编辑,消除建筑、植被等要素影响生成DEM成果。生产DEM的数据成果真实地反映地形地貌的现状,其质量及数据精度能够满足相关标准和技术规范的要求。
1.3 DEM精度
DEM的精度主要受原始资料精度和内插精度的影响,在研究DEM的精度时,DEM的粗差难以探测,故假定已排除了粗差的影响。根据实际应用情况,本文中采用通过内插点的计算高程与实际量测高程之间存在差值,来计算DEM精度。
2 设计思路
2.1 程序设计语言
作为非计算机专业工作者,选择一门简单实
数字模型基于python的数字高程模型
高程精度检测方法
◆ 刘 燕 张明娟 李春林
(青海省第一测绘院,青海西宁 810000)
摘 要:本文在测绘领域大批量生产格网数字高程模型背景下,研究通过计算机编程,Python语言的方式,进行数字高程模型的高程精度检测,来保证数字高程模型的质量精度。
关键词:数字高程模型;Python;高程精度
2017年第6期67
用,又能快速实现工作需求的编程语言显得尤为重要。python作为一种简单易学、功能强大,实用的解释性计算机脚本语言,具有丰富强大的库。本文调用GDAL(Geospatial Data Abstraction Library)库来识别栅格数据DEM。
GDAL是一个在 X/MIT 许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。
GDAL提供对多种栅格数据的支持,包括Arc/Info ASCII Grid(asc),GeoTiff (tiff),Erdas ImagineImages(img),ASCII DEM(dem) 等格式。满足了对一般DEM的格式支持。
2.2 设计流程
使用Python进行DEM高程精度检测的程序设计流程如图1所示:
2.3 内容
(1)调用os模块获取DEM存放的路径。
      fileDir="D:"+os.sep+"DEM3"
      for root,dirs,files in os.walk(fileDir):
(2)使用GDAL库中的gdal.Open()读取并打开DEM数据,GetGeoTransform()函数来读取DEM的地理坐标、行列数等信息。
                gdal.AllRegister()
                filePath = os.path.join(root,file)
                dataset = gdal.Open(filePath)   
adfGeoTransform = dataset.GetGeoTransform()
(3)调用open()函数读取控制点文件。
controlFile=open("D:\\DEM4\\","r")
(4)用ReadAsArray(xOffset,yOffset, pixelWidth, pixelHeight)将DEM文件通过数组的方式表示,并获取栅格数据的像素值,即DEM的高程值。筛选出图幅内的控制点,根据控制点的X、Y坐标可以求出相应坐标下DEM的高程值,计算控制点的高程和DEM高程值的差值作为高程差。
if x>originX and x<finalX and y>finalY and y<originY:
xOffset=(x-originX)/pixelWidth
yOffset=(y-originY)/pixelHeight
data=dataset.ReadAsArray(xOffset,yOffset,1,1)
deviationZ=data-z
dt=deviationZ*deviationZ
sum += dt
pNum+=1 
用sum函数进行高程差求和。
用pNum变量统计图幅内的高程点数量。
(5)根据高程中误差公式m=±√((Σ[∆∆])/n),n为观测值个数,计算DEM高程中误差。
m=math.sqrt(sum/pNum)
print ("点数:"+str(pNum))
print ("中误差:"+str(m))
最后使用write()函数将点文件、点数、中误差等信息写入到txt文件中生成精度报告文件。
3 实验分析
本文中选用某一地区1:500的DEM数据作为实验数据,控制点总数为33个,控制点点位分布图如图2所示:
传统的DEM精度检测一般采用在ArcGIS将控制点转为点文件shp,然后用Spatial Analyst Tools中的Extract Multi Values to Points工具采用双线性内插的算法将控制点在DEM相应位置的高程提取出来,如图3所示:
然后对属性表直接进行编辑计算,将控制点原始高程和内插后的高程根据高程中误差公式进行计算得到高程中误差,得到的高程中误差为:0.173662,通过Python编程的方式得到的文本如图4所示:通过编程得到的高程中误差为0.217
米,由于高图1 程序设计流程图
QINGHAIGUOTUJINGLUE
68
青海国土经略·技术交流
程点在DEM 上内插时的算法不同,导致不同方法计算出的高程中误差不一样,但是这种差在允许范围内,故这种方法可行。4 结束语
传统DEM 精度检测采用人工方式,通过ArcGIS 软件进行DEM 高程精度计算需要往往需要几天的工作量,消耗了大量的人力成本和时间成本,使得精度检测这类辅助生产的工作量变得极大。而本论文中DEM 高程精度检测通过用python 语言编程的方式计算高程中误差,可以直观的体现DEM 的高程质量精度。对于大批量的DEM 数据一般几分钟就可以完成,极大提高了工作效率,减轻人工工作量,DEM 高程精度检测文件作为评价DEM 质量的标准之一,在基础测绘项目等大批量生产DEM 的生产任务中,具有比较重要的意义。
参考文献
[1] 刘序.基于DEM 和Cokriging 的增城市水稻土土壤碱解氮空间变异研究[A]. 中国土壤学会.土壤资源持续利用和生态环境安全——中国土壤学会第十一届二次理事扩大会议暨学术会议论文集[C].中国土壤学会:2009:9.
[2] 汤国安.地理信息系统教程[M].高等教育出版社,2007.
[3]亢孟军.数字高程模型不规则四边形网建模方法研究[D].武汉大学,2011.
[4]陈敬周.数字高程模型的生成与应用[D].太
原理工大学,2007. 
[5]余咏胜,尹言军,章琳.基于地形图的大比例尺DEM 精度检查技术[J].测绘工程,2016,25(01):69-72+76.
[6]李强,白建荣,李振林,张黎明. 基于Python 的数据批处理技术探讨及实现[J]. 地理空间信,2015,13(02):54-56+11.
[7]丘恩.Python 核心编程(第2版)[M].人民邮电出版社,2008.
[8]胡现辉,胡茂林,曹志杰. 地形图检测点高程精度统计软件开发[J]. 电力勘测设计,2017,(03):11-
13+21.
2 控制点点位分布图            控制点
图3 控制点高程内插后在ArcMap
中的属性表
图4 DEM 高程精度文件
2017年第6期
69

本文发布于:2024-09-22 07:26:10,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/381018.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:高程   精度   数字
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议