测绘地理信息   2018, Vol. 43 Issue (2): 119-122
0
大比例尺地形图数学精度检测系统开发与设计[PDF全文]
王友昆1, 瞿华蓥2    
1. 昆明市测绘研究院,云南 昆明,650051;
2. 云南国土资源职业学院,云南 昆明,652501
摘要: 大比例地形图广泛应用于规划和建设中,其成果质量直接影响后续工作的开展, 数学精度是大比例尺地形图质量检查中的重要质量元素之一。目前,测绘质检手段一般滞后于测绘生产手段,而且数学精度检测工作繁琐,检测效率低下。基于AutoCAD ObjectARX.NET二次开发了大比例尺地形图数学精度检测系统, 系统利用Access数据库统一存储检测项目数据,实现了自动检测和手动检测,以及精度统计及输出的关键算法模块,提高了检测效率。
关键词: 大比例尺     地形图     精度检测     自动计算机辅助设计     Access    
Design and Development of Mathematical Precision Inspection System for Large Scale Topographic Map
WANG Youkun1, QU Huaying2    
1. Kunming Surveying and Mapping Institute, Kunming 650051, China;
2. Yunnan Land and Resources Vocational College, Kunming 652501, China
Abstract: At present, the map quality inspection ways lag behind mapping production ways, and mathematical precision inspection work is cumbersome and has poor efficiency. A mathematical precision inspection system of large scale topographic map is developed based on AutoCAD ObjectARX.NET. The system uses the Access database to store the project data, achieves automatic, manual inspection, precision statistics and the key algorithm output module, which improves the detection efficiency.
Key words: large scale     topographic map     precision inspection     AutoCAD     Access    

数学精度是衡量地形图成果质量的一项重要指标。数学精度是地形图成果质量元素之一[1],数学精度不合格可直接判定其成果不合格。因此,数学精度的检测、判定及其评分是大比例尺地形图质量检验的重要内容。

传统地形图精度统计一般利用Excel编辑相关公式计算,方法繁琐,效率低下,不利于质检工作的有效开展。近年来,基于自动计算机辅助设计(autodesk computer aided design,AutoCAD)的地形图平面精度的自动检查[2]的研究与系统实现已经日趋成熟,在数学精度检测自动化方面做出了尝试,但还不够系统和全面。本文借鉴相关精度检测方法[3-12],设计开发了大比例尺地形图数学精度检测统计系统。

1 研究思路 1.1 需求分析

按照标准关于数学精度检测的要求,结合笔者大量实践经验,系统需求包括:①检测成果以dwg成果数据为主;②需对检测点进行导入,同图上成果点进行比较;③检测的类型包括平面绝对位置、平面相对位置、注记点高程、插求点高程;④实现快速自动检测;⑤实现快速手动检测;⑥实现按图幅和测区进行分类精度统计、评分;⑦按照标准要求输出检测记录表和统计表;⑧可对检测成果进行回溯;⑨检测项目可分区进行,可对多个检测员的检测成果进行合并。

1.2 技术路线

大比例尺地形图数据成果一般为AutoCAD的dwg数据格式,因此,系统采用Visual Studio 2012开发平台,C#开发语言,利用AutoCAD ObjectARX.NET以及Office.NET Excel托管类库,以及ADO数据库访问技术,基于AutoCAD搭建开发了大比例尺数学精度检测系统。

通过ObjectARX实现AutoCAD数据、视窗、操作等的交互,通过Office.NET Excel实现精度统计表格输出,检测数据采用Microsoft Access数据库(mdb)存储,以ADO数据库技术实现数据的访问。

1.3 功能设计

为满足CH/T 1020-2010的精度检测要求,系统功能主要包括项目管理、数据输入、精度检测和统计输出等。①项目管理主要包括新建项目、保存项目、合并项目和参数设置等,合并项目可对多个精度检测项目文件进行合并,实现同一检测项目多人检测数据合并汇总;②数据输入主要包括导入检测点、插入地形图数据、插入影像数据、展绘检测点等功能;③精度检测主要包括自动检测和手动检测模块;④统计输出主要包括精度统计和表格输出模块。

1.4 数据库设计

检测数据具有类型固定、数据量小和结构简单等特点。为便于数据管理和合并,系统采用Access数据库存储,一个检测项目存储为一个mdb数据文件。为减少数据冗余,便于检测、统计、输出,设计图幅表(Maps)、点表(Points)和边表(Side)3张数据表,表之间通过图幅号字段进行关联。

Maps表以图幅号字段作为主键,按照图幅为单元记录存储图幅或测区精度统计信息。表字段包括项目名称、图幅号、图幅名称、比例尺、等高距、检查者、复查者、检查日期、复查日期、仪器编号、仪器名称、检测方式和备注等基本信息,以上信息可全部图幅一致或不同。表字段还包括平面绝对位置、平面相对位置、注记点高程和插求点高程的4类精度统计字段,每一类分别包括是否统计、中误差、限差、统计个数、粗差个数、粗差率、分数和是否高精度检测字段。

Points表存储平面绝对位置检测点、注记点高程检测点、等高线插求点的坐标及精度信息,字段包括点号、编码、检测点坐标(X1Y1H1)、图上点坐标(X2Y2H2)、平面误差、注记点高程误差、插求点高程误差、是否平面点、是否注记点高程、是否插求点高程、是否平面点粗差、是否注记点高程粗差、是否插求点粗差、图幅号和备注等。

Side表存储平面相对位置检测点坐标及精度信息,字段包括起点坐标(X1Y1)、终点坐标(X2Y2)、实测边长、图上边长、边长误差、图幅号、是否统计和是否粗差等。

2 主要功能和实现 2.1 参数设置

系统通过该项功能设置和获取测区或图幅的相关信息,包括项目名称、检查者、检查日期、数学基础、限差和检测方式等。这些信息存储在数据库Maps表中,用于精度检测和检测记录表的输出。

对话框中可下拉选择对应的比例尺和等高距,系统可据此按照规范要求自动计算限差值,用户也可手动进行修改。同时,还可根据地形图实际情况,设置精度检测搜索半径。参数设置可对测区全部图幅统一设置参数,也可对某一图幅设置参数。

2.2 自动检测 2.2.1 平面绝对位置

常规做法是利用检测点坐标遍历地形图上所在图幅的图元节点坐标,直到找到最近点,当检测图幅较多时,效率较差。为提高自动匹配的效率,本文在算法中首先依据搜索半径对检查点、图上点分别建立地理格网编码索引,检测点只对索引格网中的图上点进行匹配,提高了坐标匹配效率。如图 1所示,检测点门墩只需对索引格网内的3个节点进行匹配检测,提高了位置匹配速度。

图 1 基于地理格网编码位置匹配示意图 Figure 1 Position-Coding Based on Geographic Grid

同时,对具有图元编码属性的地形图进行图元编码过滤,避免匹配无效点,如筛除高程点、等高线和控制点等。算法流程如下:

1) 遍历图上图元节点,建立地理格网索引,同时对节点进行图元编码标识。本流程只需建立一次格网索引。

2) 程序自动遍历检查点。①建立检查点地理格网索引(a, b);②查找图上点格网索引(a, b);③遍历(a, b)格网内节点坐标(x1, y1)、(x2, y2)、…、(xn, yn),跳过不正确的图元编码标识;④匹配成功,标识记录图上点坐标;⑤(a, b)格网遍历完成,开始下一检查点。

3) 人工手动遍历检查点,检查是否匹配正确,若正确,ESC或空格自动跳至下一点;若错误,则手动重新匹配。

2.2.2 注记点高程

注记点高程自动匹配算法同平面绝对位置自动匹配算法流程一致,只是对图元编码为高程点的图元进行匹配。将§2.2.1中流程2)的④改为:若为注记点高程,记录高程匹配信息,将流程3)改为:调用注记点高程的人工检查子函数。

2.2.3 插求点高程

等高线插求点的检测匹配不仅仅是简单的位置坐标匹配,本文采用对等高线Douglas-Peucker算法进行简化,获取其坐标节点序列,重新构建三角网,内插检测点坐标位置高程的方法计算检测点的高程中误差,如图 2所示。

图 2 等高线节点重建三角网与检测点高程内插示意图 Figure 2 Triangulation Network Rebuilding on Intersections of Contour Line and Inspection Point Elevation Interpolation

算法流程如下:

1) 遍历图上等高线图元,利用Douglas-Peucker算法简化等高线节点。

2) 遍历简化的等高线坐标节点,建立其坐标序列(x1, y1, h1)、(x2, y2, h2)、…、(xn, yn, hn)。

3) 利用坐标序列建立TIN(triangulated irregular network)三角网。

4) 程序自动遍历检测点。①位于TIN三角网内,内插计算检测点坐标位置高程,匹配成功;②位于TIN三角网外,匹配失败;③下一检查点。

5) 人工手动遍历检查点,检查是否匹配正确,若正确,ESC或空格自动跳至下一点;若错误,则手动重新匹配(选择等高线内插)。

2.3 手动检测

为提高手动检测的效率,必须实现检测点、边的自动定位、缩放和浏览,便于检测人员通过图上检测的位置和精度进行判断,如果自动检测正确,则跳转下一点;若错误,则人工进行修正。本文直接采用设置视图表记录,将检测点坐标(或检测边中点坐标)设置为视图中心点,按照一定比例和范围进行缩放,并将检测点坐标(或检测边起止点坐标)通过十字向量绘制在视图中,便于检测人员辨识。

2.3.1 平面相对位置

平面相对位置精度检测主要是采用量边的方式检查地物相对位置是否正确。一般采用手动的方式进行检测,无法实现自动检测。

检测的方法是根据外业记录的边长位置及量边数值,图上点选起点、终点坐标位置,程序自动计算图上边长,然后同录入的检测边长进行比较,计算边长中误差。边检测属性面板中可增加、修改、删除检测边记录。

增加或修改检测边,系统将提示在地形图上点选检测边位置,再手动输入检测边长,系统将计算其中误差,并将边的起止点坐标更新至Side表。

2.3.2 平面绝对位置

主要是对平面绝对位置自动检测的结果进行复核,并对未匹配的点进行手动干预。

检测时可对某一图幅或者全部图幅点数据进行手动检测,点击XY图标,系统将从起点或鼠标点选的点记录位置开始,自动缩放到当前点位置。

若平面位置匹配正确,用户输入空格或ESC,系统将自动跳转下一点记录,并缩放到下一点位置。若匹配错误,用户用鼠标点选正确位置,系统会将图上点坐标、中误差重新计算更新至Points表的当前点记录,并跳转下一点缩放。此外,自动缩放定位的过程中,命令行将进行提示,可根据图上情况,通过输入字母对当前点进行取消统计检测、删除检测点、暂停匹配等操作。

2.3.3 注记点高程及插求点高程

高程手动检测,流程同平面绝对位置手动检测一致,主要对注记点高程、插求点高程自动检测结果进行复核,并对未匹配的点进行手动干预。同样点击H图标,系统将从起点或鼠标点选的点记录位置开始,自动缩放到当前点位置,用户根据图面匹配情况判断是否匹配检测正确。同时,命令行将进行提示,可根据图上情况,通过输入字母对当前点进行输入高程值、插求检测、取消注记高程检测、取消插求高程检测、删除检测点和暂停匹配等操作。

若高程匹配正确,用户输入空格或ESC,系统将自动跳转下一点记录,并缩放到下一点位置;若匹配错误,用户用鼠标选择正确的高程点注记图元,系统会读取高程点图元的高程信息;也可输入S,根据图上高程注记情况手动输入图上高程值。如果是插求点高程,输入D,系统会提示选择高程点两侧的等高线,用户选择后,系统会自动插求计算该点位置高程值。正确的高程值计算后,中误差重新计算更新至Points表的当前点记录,并跳转下一点缩放。

2.4 精度统计

精度统计主要对单点(边)中误差按照图幅或测区分别进行统计并评分。按照数据库表的设计,统计结果将存储在Maps表中。统计类型具有规律性,均包括中误差、中误差统计数、粗差数、粗差比例和精度评分等内容,便于程序设计实现。下面以平面绝对位置精度的统计为例,流程如下:

1) 读取Points表,获取唯一图幅号序列(MapNum1, MapNum2, …, MapNumn)。

2) 遍历图幅号序列,遍历筛选Points表中MapNum=1, 2, …, n,且是平面绝对位置检测点的记录。

3) 遍历筛选的记录点。①读取平面绝对位置中误差,计算中误差平方;②分别计算中误差个数、粗差个数;③下一记录点。

4) 计算中误差个数、粗差个数、中误差平方和,统计中误差、粗差比例和精度评分等。

5) 筛选下一图幅号,且是平面绝对位置检测点的记录。

统计注记点高程和插求点高程精度检测类型时,流程2)中筛选的是注记点高程或插求点高程检测点记录即可。统计平面相对位置检测精度时,流程2)中应遍历筛选Side表中纳入统计的记录。

此外,系统也可根据用户选项,对整个测区按照精度检测类型进行分类统计。只需将流程2)对测区全部检测点分类统计即可,算法可重用。

2.5 表格输出

CH/T 1020-2010附录A规定了检测记录表格样式。系统选用Excel作为记录表格,1个统计项目输出1个Excel文件,设计5个工作表sheet分别存放平面绝对位置、平面相对位置、注记点高程、插求点高程精度检测记录表以及图幅精度统计汇总表。

单个工作表的多个图幅记录表按照列横向排列。每个图幅的记录表按A4幅面纵向打印设计。为避免个别图幅检测点记录幅面超过1页,或按照整个测区进行记录输出超过1页的情况,统计内容均放表头用于重复标题行,方便程序根据数据库记录按照行写入记录。

由于检测点、图上点检测信息均存放于项目数据库中,因此检测图幅较多时,为提高输出效率,也可仅输出图幅精度统计表,检测记录表可根据需要随时输出。

3 结束语

本系统解决了大比例尺地形图数学精度检测数据存储和访问的困难。同时,系统研究实现了平面、高程自动检测和手动检测的算法及功能模块,完善了地形图数学精度检测类型,提高了精度检测效率。此外,系统通过限差和图幅的设置,可快速实现小比例尺地形图的数学精度检测;可根据检测项目类型设置精度计算模型。该系统同样适用于管线测量、控制点测量和地籍测量等项目的数学精度检测,其研究与实现在测绘质检机构、测绘生产单位都具有广泛的应用前景和借鉴意义。

参考文献
[1] 中国国家标准化管理委员会. 测绘成果质量检查与验收: GB/T 24356-2009[S]. 北京: 中国标准出版社, 2009
[2] 邓兴勇. 利用AutoCAD VBA实现地形图平面精度的自动检查[J]. 江西测绘, 2013, (3): 61–63
[3] 国家测绘地理信息局. 地形图质量检验技术规程: CH/T 1020-2010 1: 500、1: 1 000、1: 2 000[S]. 北京. 中国标准出版社, 2010
[4] 蔡建德, 张福利. 数字地形图精度自动检查统计系统的开发和应用[J]. 测绘通报, 2008, (6): 41–44
[5] 王友昆, 许文涛. 地籍测量中界址点点位中误差的自动计算[J]. 城市勘测, 2010, (3): 122–124
[6] 孟凡强, 刚慧龙. 数字地形图位置精度质检程序的研发及应用[J]. 城市勘测, 2015, (5): 136–138
[7] 伍素贞, 方子岩, 莫志恒. 基于AutoCAD和RTK的地形图数学精度检测[J]. 测绘与空间地理信息, 2012, 35(3): 187–189
[8] 邢诚, 徐亚明, 周校, 等. IBIS-S系统检测方法研究[J]. 测绘地理信息, 2013, 38(4): 9–12
[9] 郭雷, 刘曦灿, 刘成宝. AutoCAD VBA在地形图平面精度统计中的应用[J]. 测绘通报, 2011, (1): 40–42
[10] 王锴华, 汪洋, 刘鸿飞. 基于单基站的航运CORS系统动态精度测试与分析[J]. 测绘地理信息, 2015, 40(1): 12–15
[11] 万磊, 程效军, 郭王. 大比例尺地形图数据质量检验自动化方法初探[J]. 测绘通报, 2016, (7): 106–109
[12] 杨海关, 邱云峰, 王占辉. 大标题大比例尺地形图外业巡检软件的研究与实现[J]. 地理空间信息, 2017, 15(6): 109–111