数字化地形测量居民地时删除多余高程注记点方法

2010-12-23 15:11:00    来源:

摘要:在数字化地形测量尤其是居民地的测量工作中, 内业对高程注记点的整饰工作是比较繁琐的, 要删除大量的高程注记点。笔者将告诉你如何轻松的完成这项工作。
赵云刚
(吉林省地理信息工程院,吉林长春130051)


0.引 言
    随着城市建设开发的迅猛发展, 城市的大比例尺数字化地形图也不断更新, 对于数字地形测量来说, 测量工作者无论是外业还是内业的工作量都是相当繁重的。仅针对内业处理居民地内多余高程注记点一项工作来说就比较麻烦, 以普遍使用的南方CASS5. 1成图软件为例, 大部分人的做法是只将 GCD 图层打开而其他所有图层都锁住(但显示), 在计算机的图面上手工删除多余的高程注记点。这种方法比较费时, 还容易出错, 通过多年的工作经验积累, 笔者找到一种既适合内业工作又适合外业操作的方法, 写成本文愿与同行们共同探讨。
1.外业工作
    外业数据采集普遍使用各种全站仪, 对于居民地测量来说,在图面高程注记点密度满足规范和设计要求的前提下,我们只需有针对性的测注高程点。一般来说, 如果没有特殊要求, 只有特征地物、道路中心、装饰地面等地需要测注高程, 其他诸如房角、电杆、通讯杆等不需测注高程。换言之就是哪儿需要测注高程我们就把哪些地方的高程测准, 其他地方我们可以不要高程。外业测量时我们可以采取如下方法来实现。
    在已知点位上将仪器设置好后, 开始测量。常规的做法是靠画草图的人在草图中标注出哪点要高程哪点不要高程, 这样做就会使草图较乱, 而且还会出现漏记的地方,而内业整饰时也是依赖外业的草图来进行高程注记的取舍。我的做法是基于测绘居民地时碎部点较多且较密,大部分地方不需测注高程, 所以观测时棱镜高设成一个大的又便于输入的数值,以使测出的高程(其实是个错误高程)明显不同于该地的正确高程(如测区高程值在200m左右, 我们不妨将棱镜高设成666,则观测出的高程值都是负值),为内业处理做好准备。画草图的人要经常与观测员沟通, 如需测注正确高程时及时将正确的棱镜高报给观测员,然后观测员再在仪器上修改棱镜高(仪器上一直默认那个错误的、大数的棱镜高), 这样测出来的结果就是正确的。若下一个点不要高程则及时将棱镜高再改回原来的数值上。若不愿来回改动棱镜高, 也可以一次集中多测些要高程(或不要)的点, 以节省时间。
    综上所述就是通过经常变换棱镜高来测出每个点的高程, 相对于正确高程而言错误的高程就是异常高程值,而内业正是通过一个AutoLISP语言编写的程序根据这些异常高程值决定高程注记的取舍。
2.AutOLISP语言程序
    AutoLISP语言是一种运行在AutoCAD环境下的LISP(LISt Processing)编程语言, 是一种嵌入式语言, 为AutoCAD的二次开发提供了一个便利工具。而现在测绘单位普遍使用的南方CASS5. 1成图软件也是基于AutoCAD这个平台开发的数字化成图软件。所以我们就用AutoLISP语言编写一个小程序来处理我们外业采集的原始数据,将异常高程值删除。
    这个程序包含两个子程序(源程序清单附后): 第一个子程序是删除错误高程注记值; 第二个子程序是删除错误高程注记点, 但保留展点号及展点位置, 以便于图形编辑。所以内业处理时只需在南方CASS5. 1成图软件中将这小段AutoLISP语言程序进行永久加载即可实现我的构想。
3.内业工作
    以普遍使用的南方CASS5. 1成图软件为例, 打开南方CASS5. 1成图软件, 在命令栏内键入APPLOAD命令,
选中对话框中的添加到历史记录 , 再点击对话框中的内容 , 搜寻编写的AutoLISP语言程序存放路径, 将其进行永久性加载。
    内业图形编辑前先将外业采集的原始数据进行传输、展点等工作, 然后在命令行内键入 SYCD 命令, 根据命令行的提示指令送入测区正确高程的区间值(以上面提到的高程为例, 假如该区的最大高程值为218m, 最小高程值为198m,则在请输入最小高程 提示后输入190,在请输入最大高程 提示后输入230), 然后回车或空格即可实现该功能。这样就会使图像面更加清晰, 图像整饰时再有选择性地对图面高程注记点进行删减。此项工作可在展完高程点工作结束后进行, 也可在图形编辑工作结束后在图面整饰开始前进行, 这就根据每个人的意愿而定。
4.结束语
    通过这样一个嵌入式小程序, 就可以把我们从繁琐的找点、删点工作中解脱出来, 同时也减少了错误发生的机会。文中或许有不当之处, 请阅读过的同行批评指正。

源程序清单
( defun c: sycd( )
( setqhl( getreal "\n请输如最小高程: ") )
( setqh2( getreal "\n请输入最大高程: ") )
( SETVAR"OSMODE"0)
( c: shan-text)
( c: shan-point)
( write-line"\n错误高程点已被删除! ")
( print)
)
( DEFUNC: SHAN-text( )
; ( SETQDATA( ENTGET ( SETQTY ( CAR( ENT
SEL) ) ) ) )
( setqent( ssget"x" ('( 8. "GCD") ( 0. "TEXT") ) ) )
( if ent( progn
( SETQLONG-ENT( SSLENGTHENT) )
( SETQNUM-ENT0)
( REPEATLONG-ENT
( SETQTY( SSNAMEENTNUM-ENT) )
( SETQDATA( ENTGETTY) )
( SETQGC-REAL( CDR(ASSOClDATA) ) )
( SETQGC-REAL(ATOFGC-REAL) )
( IF( < = h2GC-REAL) ( COMMAND"ERASE"
ty"") )
( IF( > = h1GC-REAL) ( COMMAND"ERASE"
ty"") )
( SETQNUM-ENT( 1+NUM-ENT) )
)
) )
)
( DEFUNC: SHAN-point( )
; ( SETQDATA( ENTGET( SETQTY( CAR( ENT
EL) ) ) ) )
( setqent( ssget "x" (' ( -4. "
( -4. "
AND>")
( -4. "or>") ) ) )
( if ent( progn
( SETQLONG-ENT( SSLENGTHENT) )
( SETQNUM-ENT0)
( REPEATLONG-ENT
( SETQTY( SSNAMEENTNUM-ENT) )
( SETQDATA( ENTGETTY) )
( SETQGC-REAL( CaddDR(ASSOCl0DATA) ) )
( IF( < = h2GC-REAL) ( COMMAND"ERASE"
y"") )
( IF( > = h1GC-REAL) ( COMMAND"ERASE"
( SETQNUM-ENT( 1+NUM-ENT) )
)
) )
)

参考文献:
[ 1] 潘正风,杨正尧. 数字测图原理与方法[M]. 武汉:武汉
大学出版社, 2004.
[ 2] 陆润民.计算机辅助绘图基础[M]. 北京: 清华大学出版
社, 2002.
[ 3] 李青. 工程测量学[M]. 北京: 测绘出版社, 1982.

声明:中国勘测联合网登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。