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

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

更新时间:2019-12-26 19:40:39 大小:3M 上传用户:songhuahua查看TA发布的资源 标签:python 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

本文在测绘领域大批量生产格网数字高程模型背景下,研究通过计算机编程,Python语言的方式,进行数字高程模型的高程精度检测,来保证数字高程模型的质量精度。


部分文件列表

文件名 大小
基于python的数字高程模型高程精度检测方法.pdf 3M

【关注B站账户领20积分】

部分页面预览

(完整内容请下载后查看)
青海国土经略·技术交流  
基于 python 的数字高程模型  
高程精度检测方法  
ꢀ刘ꢀ燕ꢀ张明娟ꢀ李春林  
(青海省第一测绘院,青海西宁ꢀ810000)  
摘ꢀ要 :  
本文在测绘领域大批量生产格网数字高程模型背景下,研究通过计算机编程 ,Python 语言的方式,  
进行数字高程模型的高程精度检测,来保证数字高程模型的质量精度。  
关键词 :  
数字高程模型 Python 程精度  
在我国 DOM(数字正射影像图DEM(数字高  
程模型DRG(数字栅格地图DLG(数字线划地  
图)是国家基础空间数据的主要产品形式 , 其中 DEM  
(数字高程模型)作为独立的标准的基础产品其应用  
遍及很多领域。在测绘领域中可用于绘制等高线、坡  
度图、立体透视图、并制作正射影像图及进行地图修  
测等 ; 在工程中可用于体积和面积的计算、各种剖面  
图的绘制及线路的设计 ; 军事上可用于导航 ( 包括导  
弹及飞机导航 )、通讯、作战任务计划等 ; 遥感中可  
作为分支辅助数据 ; 在环境与规划中可用于土地现状  
的分析 , 各种规划及水险情况预报等等 ; 同时 DEM 还  
是生产数字正射影像图和建立三维城市景观不可缺少  
的数据。  
则格网数字高程模型在存储、管理和便于使用方面的  
优越性,成为广泛使用的一种数据结构。  
(2)不规则三角网 规则三角网是按一定的  
规则将离散点连接成覆盖整个区域且互不重叠、结构  
最佳的三角形,是建立离散点之间的空间关系。不规  
则三角网既可适应规则分布数据,又可适应不规则分  
布数据,同时还可以内插生成规则格网数据,能较好  
的顾及地貌特征点、线,表示复杂地形表面。  
1.2ꢀ数据来源  
DEM 数据生产较为常用的做法有两种 ∶ 一种是  
通过数字摄影测量工作站进行特征点、线的采集 , 据  
此构 TIN 内插成规则格网的 DEM 数据 ; 另一种是通  
过特征匹配方式直接生成规则格网的 DSM 数据 , 在  
此基础上立体模式下进行编辑 , 消除建筑、植被等要  
1 DEM据概述  
数字高程模型 (DigitalElevationModel), 简称 DEM。 素影响生成 DEM 成果。生产 DEM 的数据成果真实  
DEM 是表示区域上三维向量的有限序列 , 是对地球表  
面地形地貌的一种离散的数字表达形式,是数字地面  
模型 (DigitalTerrainModel, 简称 DTM) 的一个分支。  
1.1ꢀDEM 形式  
地反映地形地貌的现状 , 其质量及数据精度能够满足  
相关标准和技术规范的要求。  
1.3ꢀDEM 精度  
DEM 的精度主要受原始资料精度和内插精度的  
影响研究 DEM 的精度时DEM 的粗差难以探测,  
故假定已排除了粗差的影响。根据实际应用情况,本  
文中采用通过内插点的计算高程与实际量测高程之间  
存在差值,来计算 DEM 精度。  
数字高程模型的数据组织表达形式有多种,一  
般用两种形式存储,基于规则格网的数字高程模型和  
基于不规则三角网的数字高程模型是目前数字高程模  
型的两种主要结构。  
(1)规则矩形格网 则格网数字高程模型用 2 设计思路  
在水平方向和垂直方向上等间隔排列的地形点的高程  
来表示地形,格网点的平面坐标隐含在行列号中。规  
2.1ꢀ程序设计语言  
作为非计算机专业工作选择一门简单实  
2017年第6期  
67  
技术交流  
jishujiaoliu  
用,又能快速实现工作需求的编程语言显得尤为重  
要。python 作为一种简单易学、功能强大,实用的解  
释性计算机脚本语言,具有丰富强大的库。本文调用  
GDAL(Geospatial Data Abstraction Library) 库来识别栅  
格数据 DEM。  
adfGeoTransform = dataset.GetGeoTransform()  
(3)调用 open() 函数读取控制点文件。  
controlFile=open("D∶\\DEM4\\control.txt","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∶  
GDAL 是一个在 X/MIT 许可协议下的开源栅格空  
间数据转换库。它利用抽象数据模型来表达所支持的  
各种文件格式。它还有一系列命令行工具来进行数据  
转换和处理。  
GDAL 提 供 对 多 种 栅 格 数 据 的 支 持, 包  
括 Arc/Info ASCII Grid(asc),GeoTiff (tiff),Erdas  
ImagineImages(img),ASCII DEM(dem) 等格式。满足了  
对一般 DEM 的格式支持。  
xOffset=(x-originX)/pixelWidth  
yOffset=(y-originY)/pixelHeight  
2.2ꢀ设计流程  
data=dataset.ReadAsArray(xOffset,yOffset,1,1)  
deviationZ=data-z  
使用 Python 进行 DEM 高程精度检测的程序设计  
流程如图 1 所示 :  
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 所示 :  
图 1ꢀ程序设计流程图  
2.3ꢀ内容  
传统的 DEM 精度检测一般采用在 ArcGIS 将控制  
点转为点文件 shp,然后用 Spatial Analyst Tools 中的  
Extract Multi Values to Points 工具采用双线性内插的算  
法将控制点在 DEM 相应位置的高程提取出来,如图  
3 所示 :  
(1)调用 os 模块获取 DEM 存放的路径。  
ꢀꢀfileDir="D∶"+os.sep+"DEM3"  
ꢀꢀ for root,dirs,files in os.walk(fileDir)∶  
(2使用 GDAL 中的 gdal.Open() 取并打开  
DEM 数据,GetGeoTransform() 函数来读取 DEM 的地  
理坐标、行列数等信息。  
然后对属性表直接进行编辑计算,将控制点原  
始高程和内插后的高程根据高程中误差公式进行计算  
得到高程中误差,得到的高程中误差为 0.173662,  
通过 Python 编程的方式得到的文本如图 4 所示 :  
通过编程得到的高程中误差为 0.217 米,由于高  
gdal.AllRegister()  
filePath = os.path.join(root,file)  
dataset = gdal.Open(filePath)  
QINGHAIGUOTUJINGLUE  
68  

全部评论(0)

暂无评论

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

  • 打赏
  • 30日榜单

推荐下载