基于AutoLISP的地形图数学精度检测算法的设计与实现
2015-07-04翟高鹏李文彬河北省测绘产品质量监督检验站河北石家庄050031石家庄经济学院土地资源与城乡规划学院河北石家庄050031
翟高鹏,李文彬(1.河北省测绘产品质量监督检验站,河北石家庄 050031;.石家庄经济学院土地资源与城乡规划学院,河北石家庄 050031)
基于AutoLISP的地形图数学精度检测算法的设计与实现
翟高鹏1∗,李文彬2
(1.河北省测绘产品质量监督检验站,河北石家庄 050031;
2.石家庄经济学院土地资源与城乡规划学院,河北石家庄 050031)
摘 要:介绍了测绘产品质量监督检验工作中对数字地形图产品数学精度检测的一种算法。该算法通过遍历展绘的检测点坐标,依次定位显示检测点视图窗口,然后采用人机交互操作方式实现地形图数学精度的快速检测统计与评分。文章结合地形图产品质量检验项目,以LISP语言为例,对算法的基本设计思路进行了说明与实现。最后通过工程实例对程序的实用性和有效性进行了测试,达到了预期结果。
关键词:AutoLISP;数字地形图;数学精度;检测
1 引 言
测绘产品质量监督检验中,地形图数学精度检测是一项十分重要的工作,检测结果是产品质量评定的主要技术指标和重要参考依据[1]。测绘产品质检单位对测绘成果数学精度检测的方法有很多种:目前流行使用的基于ArcGIS开发的4D Checker软件,对于检测入库4D产品起到了很好的效果,但4D Checker软件基于ArcGIS开发平台,在检测AutoAD平台数字测绘成果前需要进行格式转换,使得软件的应用受到一定限制;河南省测绘产品质量监督检验站开发的数字地形图精度自动检测系统,在DWG格式地形图精度检测的应用中发挥了很大作用。其他还有基于VB和CAD的地形图精度检测统计程序等等,这些研究工作都在一定程度上提高了地形图数学精度检测的效率,减轻了检验工作对人力因素的需求。本文所研究的是基于AutoLISP的CAD二次开发技术,在大比例尺地形图测绘中由于AutoCAD平台应用的广泛性,使得本程序具有良好的通用性。该算法的具体实现也对提高地形图产品质检效率具有一定的积极意义。
2 基本思路
本文通过对地形图数学精度检测的一般作业方式以及在精度检测与统计过程中影响作业效率的关键步骤进行分析,有针对性的设计了展点范围选定、检测点定位显示、粗差点提示和中误差自动计算与质量评分的算法。
2.1地形图精度检测作业方式
根据规范要求,进行地形图的数学精度检测,每幅图需要分别采集20个~50个平面和高程检测点[6],检测点分布应均匀覆盖图幅范围。检测点的采集由作业小组完成,一般使用RTK或全站仪对照地形图在实地进行采集,采集过程中将采集的检测点点位(高程注记检测点为概略位置)标绘到地形图上。外业检测点采集完成后,由内业进行统计与评分。内业是将采集的检测点展绘到地形图上,然后对照外业地形图标绘的检测点位置进行一一计算与统计,最后基于统计得到的中误差进行地形图数学精度的质量评分。
2.2展点范围设定
作业小组采集的点位分布范围比较大,一般是跨图幅作业。由于作业习惯的不同,有些外业作业员提交的检测点是几个图幅混合到一起的数据,这对于内业统计来说增加了必要的数据整理工作。
为此,本文设计了按图幅范围展绘检测点的算法:在被检测图幅上选取图框左下角(x1,y1)和右上角(x2,y2)角点坐标,以(x1<x<x2) and(y1<y<y2)作为筛选条件,依次读取检测点数据文件中的点,并将满足条件的点展绘到图幅上。检测点展点调用的命令代码为(command“circle”zb r) (command "text" tzb 0.8 0h),即调用CAD绘圆与添加文本命令。展绘的检测点样式是以点位为圆心,点位精度允许误差为半径的圆,检测点高程值作为点注记。如图1所示。
图1 展点样式
图1中展绘检测点示例所对应的DXF组码为: ((-1.<图元名:7ef76948>) (0."CIRCLE") (330.<图元名:7ef71c20>) (5." FC581") (100." AcD-bEntity") (67.0) (410."Model") (8."0") (62.230) (6."Continuous") (370.0) (100."AcDbCircle") (10 3.94676e+007 4.49896e+006684.026) (40 .0.5) (210 0.0 0.0 1.0))。
2.3检测点定位显示
影响地形图数学精度统计效率的关键步骤是建立外业检测点和与之相对应图上点相关信息的对应关系。受计算机数字地形图显示范围和人眼分辨能力所限,在地形图中快速找出检测点的识别范围耗时费力。本文据此设计了检测点定位显示的算法,其基本思想如下:
(1)以展绘检测点的DXF组码“(0."CIRCLE") (40.0.5)”为筛选条件,建立以检测点为成员的图元选择集。建立图元选择集的LISP代码为(setq ss(ssget "X" lst))。
(2)遍历选择集图元,获取图元坐标。根据图元坐标并结合地形图比例尺大小计算视窗角坐标。设计出合理的视窗显示范围。定位显示调用的CAD命令为(command ".zoom" " w" wpt1 wpt2),其中wpt1, wpt2为计算机视窗角坐标。
(3)定位到检测点后,通过人机交互实现检测点与图上点相关信息的匹配。主要包括平面检测点与地物点、高程检测点与高程注记点或高程值内插点的匹配。
2.4 粗差记录提示与评分
根据国家标准[6]的规定,合格地形图产品数学精度检测的粗差率不高于5%,因此统计过程中粗差的出现需要经过谨慎判断。地形图数学精度评分依照国家标准规定的数学精度评分方法进行评分。
本文在数学精度检测点点位信息计算完成后,设置了粗差提示。即根据匹配后计算出的差值与允许差值进行比较,当差值超过允许值时判定为粗差并自动给出提示,根据实际情况判定是否对该检测点位进行记录。点位匹配完成后,通过程序实现中误差计算公式与数学精度评分方法所定义的分段函数公式[6],完成单幅地形图成果中误差计算和数学精度质量评分。
3 算法实现与效果
该算法可以用多种编程语言实现,如AutoLISP、ObjectARX、VBA等,本文采用AutoLISP编写并在AutoCAD 2010下运行通过。目前作业单位普遍使用的数字成图软件,如南方CASS、北京威远图易SV等软件,均是在AutoCAD平台下开发,所以该程序具有良好的通用性。下面说明算法的主要步骤,其中算法思路相类似步骤受篇幅所限本文不再细述。最后对该算法的实用效果进行说明。
3.1算法主要步骤
(1)人机交互方式确定展点的范围。交互操作只需提取范围角点坐标,相应代码:(setq pt1(getpoint " n请点取展点范围左下角点"))(setq pt2(getpoint " 请点取展点范围右上角点"))
(2)筛选检测点文件中图幅范围内的点并以设定的圆形半径进行展绘。主要程序代码:
(if(and (<x1 (atof x) x2) (<y1 (atof y) y2)) (progn
(command "circle" zb r) ;绘点
(command "text" tzb 0.8 0 h) ;注记
) ;end progn
);end if
(3)高程精度检测
①建立以展绘点图元为单位的选择集ss,(setq ss (ssget "X" lst));
②获取选择集图元个数num,(setq num(sslength ss));
③依图元个数num遍历图元,并据图元坐标定位显示交互操作视图窗口。
④人机交互,实现点位信息匹配:
(setq pt1 (getpoint " 点击检测高程点:"))
(if点击空格,直接跳到第③步进行下一个检测点视图窗口显示)
(progn
(高程值获取方法选择,“内插高程值”或“点取高程点”) (setq gch(abs gch1)) ;计算高程差值。(if(<mg gch);判断高程误差是否限差,(如果超限进行提示及相应操作,否则计算并记录到输出文件)
);end if );end if
⑤调用预定函数,进行中误差统计与评分;
⑥完成统计成果输出。
(4)平面精度检测实现与高程精度检测实现类似,在此不再细述。
3.2应用示例
本文以某1∶500地形图测绘产品质量检验项目为例说明算法及程序的有效性。根据GB/ T 24356-2009测绘成果质量查检与验收,外业采集的检测点个数介于20个~50之间均可。示例中实际采集到的检测点个数为高程和平面检测点各24个,其中包括公共点。如图2所示,展绘的检测点显示为红色圆形并以高程作注记。
图2 展绘点示意图
展绘点完成后分别进行地形图高程与平面精度的检测与统计。在计算机命令行显示操作提示,通过人机交互实现点位信息的匹配。高程和平面精度检测的交互界面分别如图3、图4所示。
图3 高程精度检测人机交互界面
图4 平面精度检测人机交互界面
通过人机交互操作将点位信息匹配完成后,分别输出高程和平面精度统计的评分成果。输出格式为TXT,如图5、图6所示。
4 结 语
本文针对测绘产品质量监督检验工作中的地形图数学精度检测与统计,基于AutoCAD二次开发技术的LISP计算机语言,设计并实现了地形图数学精度检测与统计的算法,最后将程序应用于地形图质检项目。
图5 高程精度检测与统计结果输出
图6 平面精度检测与统计结果输出
通过实现点位信息人工匹配与粗差提示等算法,有效地降低了检测统计工作中出错的概率;检测点定位显示与自动评分,提高了地形图数学精度检测与统计的效率。
参考文献
[1] 邓思胜,章亚平,吕冰.基于VB和CAD的地形图精度检测统计程序[J].地理空间信息,2008(5),124~126.
[2] 蔡建德,张福利.数字地形图精度自动检查统计系统的开发和应用[J].测绘通报,2008(6),41~44.
[3] 胡友明.AutoCAD VBA在数字地形图精度检测统计中的应用[J].城市勘测,2009(4),123~125.
[4] 建国.基于AutoCAD平台运用VBA语言设计编写地形图高程精度检测软件[J].工程勘察,2011(11),85~89.
[5] 李学智,方戈亮,孙力红.Visual LISP程序设计(第二版) [M].北京:清华大学出版社,2010,3~53.
[6] GB/ T 24356-2009.测绘成果质量检查与验收[S].
Design and Implementation of an Algorithm for Topographic Map Mathematical Precision Detection Based on AutoLISP
Zhai Gaopeng1,Li Wenbin2
(1.The Station of Quality Supervision and Inspection about Surveying and Mapping Products,Shijiazhuang 050031,China; 2.College of land resources and rural planning,Shijiazhuang University of Economics,Shijiazhuang 050031,China)
Abstract:Introduce an algorithm for mathematical precision detection of Digital Topographic Map products in the surveying and mapping product quality supervision and inspection.Mathematical precision of topographic map shall be efficiently detected,statistic analyzed and scored,which is by traversing the detecting points’coordinate,displaying the view window of their position in turn,and then operating by human-computer interaction mode till completed.Based on topographic map quality inspection items,taking LISP as an illustration,the basic idea of the algorithm was illustrated and implemented.Finally through an example of test about the practicability and validity of application,which achieved the desired effect.
Key words:AutoLISP;digital topographic map;mathematical precision;detection
文章编号:1672-8262(2015)01-37-04中图分类号:P208.1
文献标识码:A
收稿日期:∗2014—06—29
作者简介:翟高鹏(1985—),男,硕士,助理工程师,主要从事工程测量与测绘产品质检工作。