APP下载

基于Python的DOM质量检查技术研究

2016-12-28余咏胜彭艳丽高雅冰

地理空间信息 2016年8期
关键词:图幅射影质量检查

余咏胜,彭艳丽,高雅冰

(1.武汉市测绘研究院,湖武汉 430022;2.武汉市规划研究院,湖武汉 430014)

基于Python的DOM质量检查技术研究

余咏胜1,彭艳丽2,高雅冰1

针对常规质量检查方式的不足,提出了检查要素编辑和统计填表分离的作业模式,在Python环境下以Arcpy站点包和Win32com组件为基础实现了DoM质量检查工作的自动化处理,并将该成果应用于武汉市正射影像数据生产,提高了数据检查的效率和准确性。

DoM;质量检查;Python;精度检查;自动化

DoM的质量检查是正射影像数据生产中的一项重要工作内容。近年来,随着海量遥感数据自动处理系统的应用,如像素工厂(pixel factory)、数字摄影测量网格(DPGrid)等高性能数据处理平台,多核CPU和并行计算技术极大地提高了DoM数据生产效率,特别是Leica ADS80推扫式数字航空摄影技术的应用使空三加密和影像镶嵌等数据处理效率得到大幅提升,正射影像的成图周期进一步缩短。相比之下,DoM成果质量检查方式并未得到有效改进,数据检查过程中存在人工作业量大、重复操作多等问题,直接影响了数据生产和成图效率,所以改进现有的影像成果质量检查方式,提高影像数据的检查效率十分迫切[1-3]。

1 问题分析

DoM质量检查内容包含两个方面:一是一般性检查项目,如影像命名、分幅、影像效果等,可以通过程序自动检查或目视方式检查;二是图面精度检查,可以通过外业测定明显地物点坐标与影像上对应点坐标进行比较的方式检查,也可以利用已有的数字线划图与正射影像进行矢栅叠加的方式检查,在基础地理信息数据比较丰富的前提下一般选择第二种方式。

全要素矢量地形图数据一般为DWG格式或DGN格式,进行DoM数据质量检查时一般在AutoCAD/ Microstation环境下载入正射影像数据,在正射影像和地形图上查找明显的同名地物点,测量其坐标偏差值并填写检查记录表。由于正射影像数据量较大,在CAD环境下调用效率较低,特别是载入多幅影像数据后程序响应速度明显延迟,对影像数据的质量检查速度影响较大。同时,人工输入检查数值并计算较差和中误差的作业方式重复工作量大、作业效率低[4-5]。按相关规范要求进行DoM数据的检验时,耗时较长,影响项目周期[6-7]。针对这些问题和不足,本文提出了数据检查和统计填表分离的作业模式,采用Python自动化处理脚本,实现了DoM成果质量检查的自动分析与处理,提高了DoM成果质量检查工作的效率、准确性。

2 DOM的质量检查

2.1 DOM质量检查工作流程

DoM的质量检查主要包括影像数据格式、命名方式、影像质量、数学基础、影像分辨率、数据范围、平面精度、接边精度和元数据质量等内容,正射影像图的一般性检查项目比较容易处理,平面精度检查则相对比较困难,也是成果质量检查的关键内容。DoM数据精度检查应在一般性项目检查通过的基础上,在ArcGIS系统中对DoM原始分幅数据构建金字塔影像,然后将矢量地形图与正射影像数据叠加,根据矢量与栅格影像上的同名地物编辑质量检查要素(.shp格式)。影像质量检查要素处理完毕以后,Python程序根据线要素的空间地理坐标自动计算数据所在的图幅编号,并根据影像图幅编号遍历当前图幅内的所有检查要素,计算较差和中误差。在此基础上,程序通过CoM接口将检查数值填写到预定义的检查记录表的Word文档模板中,并将所有图幅的质量检查情况汇总到Excel文档模板中进行精度分析和统计。DoM的质量检查流程如图1所示。

2.2 质量检查要素编辑

在ArcGIS中对DoM数据进行图面精度检查之前,需要对原始分幅影像数据构建金字塔,以提高质量检查时ArcGIS系统的运行效率。每个影像文件只需要构建一次金字塔,以后每次访问该影像文件时系统自动调用金字塔文件。ArcGIS的金字塔文件有两种类型,一种是递减分辨率数据集.rrd文件,当影像文件为ERDAS IMAGINE(.img)格式或在ArcGIS 10之前版本构建的金字塔时,金字塔文件以.rrd格式存储;另一种是.ovr文件,当影像文件为其他数据格式或在ArcGIS 10及以后版本中构建金字塔时以该格式保存。与.rrd文件相比,.ovr文件可以控制影像压缩的类型和金字塔的质量。ArcToolbox中提供了构建金字塔的工具Build Pyramids,可以对单个或多个影像文件进行处理。通常情况下,系统会以2∶1的比例进行缩减采样构建金字塔层级,金字塔的最高层级为29级,当层级设定为0时则删除影像金字塔,如果层级设定低于0或高于29系统将按默认层级进行处理。重采样方式或压缩方式的选择也会影响金字塔生成的效率和显示效果。

图1 DOM质量检查流程

采用矢量地形图和栅格影像叠加进行DoM质量检查有两种方式,一种是“点-点”方式,即通过影像图和线划图上的同名地物点量测坐标较差,如清晰可辨的房屋拐角底部、水泥路面的十字交叉口、电力杆底部、路灯杆底部以及花坛、体育场等拐角明显的地物;另一种检查方式是“边-边”方式,即通过影像图和线划图上同名地物的边长计算较差,如影像上清晰可辨的矩形房屋的对应边长,两房角的间距长度,水泥路面、高架桥面的宽度等。DoM质量检查要素采用Shapefile线要素文件保存,“点-点”检查采用两点线段方式存储,“边-边”检查通过两条两点线段组合方式存储。在ArcMAP中操作时,只需要先选择影像检查线段,再选择地形图检查线段,通过Merge工具就可以实现两线段的合并。为减少检查时人工编辑的工作量,线要素所有属性采用缺省值,不进行任何字段的输入。

根据相关规范要求,每幅正射影像图内的检查数量一般不得少于20个,特殊情况下,如图幅不满幅、图内存在大面积水域、林地、草地等单一纹理以及存在大范围云块与云影难以获取明显地物点位置等情况时,图幅内检查数量可适当减少,但应在精度检查表中对该情况进行说明备注。

2.3 质量检查结果输出

在ArcGIS中完成DoM数据检查的线要素编辑之后,接着对线要素对象进行预处理,计算线要素所在的图幅编号。1∶2 000比例尺图幅号计算相对简单,一般采用图幅西南角坐标的整公里数字按X坐标在前、Y坐标在后的方式命名(如380525),1∶5 000比例尺的图幅号计算也是采用西南角坐标方式命名,但由于其分幅采用2 km×2 km,图幅号计算方式略有不同,其计算公式如下:

式中,cx、cy为线要素或组合要素的中心点坐标,该数值可以通过要素属性项获取;//为取整除后的整数商;%为取整除后的整数余数。完成图幅号计算后,可根据图幅号遍历该图幅内的所有检查要素,根据两点线段长度值或组合线段长度差值计算检查较差,并将较差值填入预定义的质量检查记录表Word模板。

在Python环境下操作Shape线要素可以通过Arcpy站点包进行处理,Arcpy提供了SearchCursor游标函数用于遍历所有要素对象并提取几何或属性数值,如要素长度、中心点坐标等。Word文档模板的操作需要通过Win32com组件实现,模板操作的核心在于检查记录表格的填写,不同类型的线要素填写的内容和较差计算方式不同,图幅内检查要素遍历完成后可根据填写的较差值计算中误差,再填写图幅号、比例尺、作业员、作业日期、检查员、检查日期等相关检查信息。数字正射影像图质量检查记录表的主要内容如表1所示,表中“点-点”较差值为两点线段长度,“边-边”较差值为底图距离与检查距离的差值。

2.4 质量检查情况统计

质量检查情况统计是在单幅正射影像质量检查记录表的基础上进行汇总生成,汇总后的检查统计表可以方便地掌握各图幅的中误差、检查个数以及各区间的质量分布情况,快速了解DoM数据的整体质量状况。正射影像质量检查统计表采用Excel文档模板方式填写,同样需要通过Win32com组件实现文档的处理。Excel文档模板处理的主要代码如下:

import win32com.client

表1 DOM质量检查记录表/m

ExcelApp = win32com.client.Dispatch("Excel. Application")

wBook = ExcelApp.Workbooks.open(xlsPathName)

wSheet = wBook.Worksheets(1)

for i, rms in enumerate(lst):

wSheet.Cells(i+3, 1).Value =rms[0]

wSheet.Cells(i+3, 2).Value =rms[1]

其他单元格赋值代码省略

wSheet.Cells(i+3, 11).Value =’%.1f’%(rms[10])

其中,lst变量存储了图幅号、检查个数、中误差以及各区间点数和占比等统计数值。经程序处理后的DoM质量检查统计表的主要内容如表2所示。

表2 DOM质量检查统计表

通过表2中质量检查统计结果,可以快速查找和定位检查中存在问题的图幅。如果检查个数少于20个,可以根据该图幅号检查图幅内是否存在不满幅、大面积落水等特殊情况,如不满足条件则应按规定增加检查数量;当中误差或各区间检查要素超限,可返回该图幅查看是检查要素选择不当还是图幅本身存在质量问题。质量检查统计表结果经复核无误后,检查记录表和检查统计表可作为最终检查资料提交。

3 实验分析

为验证本文提出的基于Python的DoM质量检查方法的效率和可靠性,本文以武汉市2014年1∶5 000比例尺卫星正射影像图质量检查工作为例进行了实验,实验区总面积约900 km2,涉及图幅数量为240幅。为方便程序使用,本文通过wxPython工具包编写了GUI图形用户界面,wxPython是Python语言的一个开源GUI工具箱,具有较强的跨平台能力,可在多种平台上高效运行。DoM精度检查与统计图形用户界面如图2所示。

图2 DOM精度检查与统计的GUI图形用户界面

程序的GUI界面主要用于交互指定DoM质量检查文件、质量检查记录表、质量检查统计表的输出路径,以及质量检查记录表相关项目填写内容等参数。实验区的影像数据采用1∶5 000比例尺WorldView-2、WorldView-3卫星影像数据,影像输出分辨率为0.5 m,影像分幅方式采用2 km×2 km矩形分幅,总数据量约11.2 GB,参考1∶2 000比例尺地形图数据共920幅,数据文件为AutoCAD DWG格式。正射影像质量检查的作业环境为ArcGIS 10,按本文方法生成Shapefile线要素文件,经过程序自动生成精度检查表和精度统计表。实验区DoM数据检查共投入检查人员4人,所有检查及统计工作在5个工作日内全部完成,平均每个人每天完成12幅左右。如果采用常规边检查边填表的检查方式,根据图面检查内容的难易程度不同,相同作业人员每天只能完成8~10幅左右的检查工作。相比之下,本文方法在DoM质量检查的作业效率上得到了较大提升。

4 结 语

本文以Arcpy站点包和Win32com组件为基础实现了DoM质量检查工作的标准化和自动化处理,该方法在ArcGIS环境下生成DoM质量检查线要素文件,该文件经过程序处理后自动生成质量检查记录表和质量检查统计表,实现了DoM数据质量检查的快速处理。与常规影像质量检查方式相比,本文方法通过构建影像金字塔提高了质量检查操作过程中程序的响应速度,同时将精度检查和统计填表工作分离,避免了质量检查作业时在不同应用程序间频繁切换,提高了检查工作的效率。经程序处理后的所有检查表格和统计表格结构相同,实现了数据处理的标准化,检查效率较之前得到了较大提高。本文方法已经在武汉市DoM数据生产中得到广泛应用,程序稳定、可靠,为DoM的质量检查工作探索了一条行之有效的技术路线。

[1] 程滔,郭雅琳,周旭,等.面向大规模数字正射影像的质量检查方法[J].合肥工业大学学报(自然科学版),2013(7):816-819

[2] 白丹. 数字正射影像的制作及质量检查方法的探讨[J].测绘与空间地理信息,2013(7):215-216

[3] 位鲁青,于延文,徐宁. 1∶2 000数字正摄影像质量检查方法探讨[J].测绘技术装备,2006(2):27-29

[4] 余咏胜,罗名海,吴克友,等.基于FME的地理国情覆盖要素提取技术探讨[J].地理空间信息,2014,12(5):1-3

[5] 张桂英. 基于地理国情监测项目DoM检查的研究[J].经纬天地,2014(2):56-60

[6] 李宇新,姜波,李东海. 哈尔滨市1∶2 000数字正射影像图质量控制标准及方法[J].城市勘测,2006 (4):24-26

[7] 刘东丽,李赵,龚家玉,等. DEM/DoM成果质量检查研究[J].测绘,2011(4):175-177

P237

B

1672-4623(2016)08-0014-03

10.3969/j.issn.1672-4623.2016.08.005

余咏胜,高级工程师,注册测绘师,主要从事遥感数字图像处理、GIS数据应用研究与开发工作。

2015-05-13。

项目来源:精密工程与工业测量国家测绘地理信息局重点实验室开放基金资助项目(PF2013-14)。

猜你喜欢

图幅射影质量检查
基于ArcEngine自动生成1∶5万地形图标准分幅图框
常曲率Berwald空间
审计署赴江西省审计厅质量检查座谈会
三参数射影平坦芬斯勒度量的构造
基于Arcpy的地形图接图表快速生成方法
中注协举办2016年证券资格会计师事务所执业质量检查人员培训班
加强会计信息质量检查促进会计基础工作规范
基于已有控制资料的正射影像自动更新
基于EXCEL的地形图图幅号转换查询方法
利用矩阵初等变换求二维射影变换