APP下载

等高线内高程点检查软件开发与实现

2018-09-13刘小华

现代测绘 2018年3期
关键词:等高线高程矛盾

刘小华

(福建省测绘院,福建 福州350003)

0 引 言

当前测量数据整理后一般用AutoCAD软件(含AutoCAD平台二次开发的软件,如广州南方测绘科技股份有限公司的CASS)处理、编辑成图,高程点(GCD层)与等高线(DGX)分属不同图层,作业人员依据现场地形地貌特征和所采集的高程点,先由CASS软件自动生成等高线,再由人机交互方式进行修整;或由人工勾画等高线计曲线、再加密等高线首曲线的方式进行绘制。质检人员则根据高程点、等高线、沟、坎、斜坡等特征线进行逐条逐点人工检查,费时费力、准确率低;且在检查过程中,经常发现高程点与等高线不匹配、高程点显示值与高程点的H值不一致等情况。

Visual LISP(以下简称 VLISP)是 AutoCAD内置的二次开发软件,具有功能强大、语言学习比其他高级语言入门快、可被AutoCAD完全兼容,且程序段可直接在AutoCAD 2000以上版本中运行等优点。

本文以福建省测绘院数字地形图内等高线区域进行高程点检查为例,研究在现有AutoCAD和CASS软件基础上,利用VLISP在AutoCAD平台上开发编写程序代码的方式进行高程点与等高线匹配性检查,以提高质检效率和准确率。

1 数字地形图中的点线矛盾

1.1 点线矛盾

等高线是与高程点配合表达地貌特征的,它们之间有紧密的逻辑关系。点线矛盾主要是指等高线与高程点之间的逻辑错误。常见的点线矛盾主要有如下几个方面。

(1)高程值矛盾:高程点的高程值和等高线高程值存在矛盾。

(2)等高距矛盾:高程点之间等高线数目与基本等高距矛盾。

(3)等高线高程值错误。

1.2 点线矛盾发生原因分析

经过对地形图检查后分析,问题产生主要的原因有:① 由人机交互的方式按高程点及实地地形走向勾画的等线,存在高程点与等高线匹配度误差过大,在生产和检查中未发现、改正;② 人工勾画或计算机按DEM生成的等高线,为使等高线更光滑,往往采用多段线样条曲线化,最终可能使等高线与高程点之间的相互关系产生偏差;③ 在进行人工修编过程中,发生诸如偏移、复制、移动等捕捉高程错误等误操作,造成图形发生改变;④ 近来出现的CAD病毒专门对AutoCAD文件进行属性和图层篡变、地物高程修改等情况。

1.3 点线矛盾解决方法研究

针对上述原因分析,经过研究,问题解决的方法有:①通过高程点与等高线匹配度检查,如误差过大则按要求作出注记,提醒作业人员对等高线走向进行人工修改;② 样条曲线化等高线,由程序对其进行取消样条曲线化,改为拟合的方式进行曲线化光滑等高线;③Z值和显示值不一致错误、CAD病毒引起的高程点标高错误,则按等高线内插高程点的方式进行标高纠正,由程序对其Z值和显示值同时进行修正。

基于Visual LISP功能强大、语言学习入门较快、与AutoCAD数据完全兼容、可直接在AutoCAD环境中直接运行等特点,选择Visual LISP程序设计处理高程点与等高线之间的矛盾。

2 高程点检查程序设计

2.1 具体算法研究

当一个高程点地处两条最近的不同高程的等高线区域中,高程点到任意一条等高线中最近点的距离与最近两条等高线之间最近的距离的比等于相应高差与两条等高线的高差比;计算高程点位置应插入的高程计算值,将高程计算值与现有的值进行比较,分析两者较差是否在误差允许范围内,进行不同方法处理:① 当误差在允许范围内,则不对其进行任何的变动;② 当误差大于允许范围时,则按要求进行标注符号或对高程计算值按其高程Z值进行替换,同时对高程点的显示值进行更新。

等高线与高程点之间的检查,主要对两者的匹配度、高程点显示值与H值一致性进行检查,其主要任务为:① 高程点与相邻等高线匹配度是否正确;② 高程点显示值与高程点的实际H值的取位后是否一致。

在AutoCAD数据中,利用组码查询或修改的方式,获取高程点的平面坐标、Z值、显示值、最近点等高线及其标高等数据的获取较为便利,一般只需要引用Visual LISP内置函数就可以完成。

2.2 程序设计

在AutoCAD文件中,图上的点、线、面均有相应组码与之相应。DWG文件均会有设置本图的绘制比例尺,一般用(*1000(getvar“celtscale”))的方法求出比例尺,并设置误差值允许范围和等高线搜索范围(可以用多段线圈出、选择全部或点选方式);选择等高线和高程点,读取相应组码中的高程赋值,并进行匹配比对。当比例误差或高程误差大于允许范围,即两者匹配度出现差错时,可根据先行设置要求,做相应处理(可将高程点改变颜色、改变图层或在高程点上画红色圆圈,以提醒检查人员高程点可能有误)。具体流程图如下所示(图1)。

2.3 数据分析

(1)组码的获取:对AutoCAD文件进行分析,图中地物的组码扩展数据均可用“(entget(ssname(ssget)0)'(“*”))”函数读出(中文双引号不输入,可在AutoCAD平台的命令行输入,获取组码信息,如高程点与等高线组码信息)。

图1 作业流程图

(2)高程点的组码为“((-1.<图元名:7eeaa4c8>)(0.INSERT)……(2.GC200)(10 X Y H)……(-3(SOUTH(1000.202101))))”,其中“(2.GC200)”说明其中高程点插入的块名为“GC200”;“(10 X Y H)”中,X Y H 在组码中为数字,此处用X Y H表示其三维坐标,在与等高线数据进行匹配;“(-3(SOUTH(1000.202101)))”为CASS软件对数据的编码(即为高程点)等信息。

(3)等高线的组码为“((-1.<图元名:7eec6cb8>)(0.LWPOLYLINE)……(8.DGX)(6.Continuous)(100.AcDbPolyline)(90.8)(70.128)(43.0.15)(38.173.0)(39.0.0)(10 X1 Y1)(40.0.15)(41.0.15)(42.0.0)……(-3(SOUTH(1000.201101))))”,同理可得到类似高程点的各种信息。

2.4 程序编写

根据方案设计和数据分析,在VLISP编辑器内写出代码,并在AutoCAD中运行、调试、改错,直至程序代码全部顺利运行并完成设计目标,最后编译为FAS文件。

3 程序运行检验

3.1 程序检验

利用本程序,对福建省测绘院在泉州市泉港区324国道以西区域施测的地形图项目进行试运行检验。这项目面积为7.69 km2,其中完全等高线区域有6.97 km2,种植区域有0.34 km2,居民地区域有0.15 km2,水域有0.23 km2,共检查有22 293个高程点,成功率约93%(表1)。

检查失败原因分析:程序在AutoCAD软件加载后,由人机交互方式进行操作,经数据验算表明,对于一般地形地貌的高程点和等高线检查,高程点较好选中了最近等高线,软件运行效率较高,差错率小;但在坎、斜坡、陡崖、鞍部、山顶、山底、图幅边角处等比较特殊的地形地貌区域进行检查时,选中的理论最近等高线其实不是真实的等高线,所以存在一定误差。种植区域、居民地区域、水域由于等高线较稀少,高程点和等高线匹配成功率较低。

表1 高程点检查情况表

3.2 程序检验运行效果

在AutoCAD中运行,对完全等高线区域进行等高线与高程点之间匹配度进行检查,运行中截取小区域范围进行说明(图2)。如图2(a),选择地形图中的3个高程点进行检查,程序发现较差已超出允许值,视为粗差,将高程点的块颜色变成 “蓝色”,以提示本高程点匹配出现粗差(如图2b所示)。当作业人员进行修改完整后,应重新进行匹配度检查,直至全部合格为址。

图2 地貌对比图

4 结 语

本文根据等高线与高程点之间的匹配关系,利用VLISP编程的特点,编写了等高线内高程点检查软件。该软件具有较好实用性,且操作简单容易上手,目前已在福建省测绘院数字化地形图测绘的等高线区域中检查得到较好应用,显著提高了质量检查效率。

猜你喜欢

等高线高程矛盾
几类树的无矛盾点连通数
再婚后出现矛盾,我该怎么办?
8848.86m珠峰新高程
等高线地形图的判读和应用
矛盾的我
对矛盾说不
地形图的阅读
一种基于Fréchet距离的断裂等高线内插算法
基于二次曲面函数的高程拟合研究
“等高线地形图的判读”专题测试