一种图形化的纵横断面数据处理方法及实现

  • 格式:doc
  • 大小:29.00 KB
  • 文档页数:5

一种图形化的纵横断面数据处理方法及实现
摘要:常见的纵横断面数据处理方法主要从数据或格式着手,往往容易忽略了其“图形”意义,本文尝试从“图形化”角度编写了基于VISUAL LISP 的纵横断面数据处理程序,可以应用于各种纵横断面测量数据处理。

关键词:图形化,纵横断面测量,数据处理,VISUAL LISP,AUTOCAD 二次开发
A Graphical Data Processing Method and Implementation of Vertical and Horizontal Cross-Section
PU Shengliang1
(Inner Mongolia Water Resources and Hydropower Survey and Design Institute,Inner Mongolia Hohhot 010020)
Abstract : The common methods of data processing of vertical and horizontal cross-section mainly started from data or for mat, often easy to overlook its “graphics” meaning, this paper attempts from the “graphical” point of view to write the vertical and horizontal cross-section of data processing program based on VISUAL LISP, can be applied to the kinds of vertical and horizontal cross-section measurement data processing.
Keywords: Graphical, Vertical And Horizontal Cross-Section Measurement, Data Processing, VISUAL LISP, AUTOCAD Secondary Development
引言
随着GPS-RTK技术在测量工作中的广泛应用,传统的测量手段得到了大程度地提升,以测点为主要方式的测绘任务面临着“多文件”、“大体积”的数据整理及处理困境。

虽然众多断面测量软件大放异彩,可是各有其千秋,并且大多基于纯程序设计语言的文本操作得以实现,有的以“固定”格式的数据成图为主,有的仅以本职工作出发编写而其他行业应用有限或繁琐,而且都有一个共同的特点:无不使程序使用者容易陷于“文(件)山点海”,极为不方便,且不得不牺牲了测点数据的可见性与直观性,稍有特色者也不过参考点图而已。

正是基于以上思考,本文尝试从点数据的图形角度出发,增加了纵横断面数据整理及处理过程的形象直观性、简易性。

1 需求分析与功能设计
首先,我们必须知道“要解决的问题是什么?”也即如何从测点源数据得到目标数据,从而生成测绘最终成果。

其次,也要知道“是否有行得通的解决办法?”也即采用何种编程方法,达到什么样的功能效果,实现数据的转化,因而本文选择了AUTOCAD VISUAL LISP集成开发环境作为程序编码与测试工具。

最后,要弄明白“怎样具体实现?”也是程序开发最关键的步骤,需要反复进行模块编码、调试、精化与集成,从而实现程序编写所预期的各项功能。

图表 1.1 E-R图
(1)开发目标。

如图1.1 所示,我们要实现测量点的集合AI到成果元数据的集合BJ的转化,I为源点数据的数目,J为目标元数据的数目,也是众多纵横断面数据处理程序的设计思路和目标,而我们要实现“图形化”的目的,即要完成数据图形化(DI)和图形数据化(ID)两个过程,其功能转化过程如图 1.2 所示。

图表 1.2 功能图
(2)应用范围。

从理论上讲,可以实现纵横断面设计与成图。

在实际测量工作中可以应用于渠道、河道纵横断面等相关数据成果的生产过程。

2 流程设计与编码实现
(1)根据图表1.2 ,其功能所对应的程序流程图如图表2.1 所示:
图表 2.1 程序流程图
(2)根据图表2.1 我们可以编写相关函数,以实现功能,函数列表如下:
主程序单元C:ZD () C:HD ()
纵断面数据处理程序横断面数据处理程序
一级调用单元C:E2C() C:L2C ()
高程点生成数据文件复合线输出XY坐标
二级调用单元C:STRPARSE () C:L1R ()
字符串转换为字符串列表判断点在直线上的位置
图表 2.2 函数功能及其关系调用
(3)根据图表2.2 我们可以得到其抽象数据类型定义,如下所示:ADT ZD_HD {
数据对象:C={AI,BI|AI为点数据集合;BI为元数据集合}
数据关系:R={,}
基本操作:
C:ZD (/ LSTS LSTZ B D Z C ZA ZZ S SA FF Z1 ZA1 ZZ1)
// 操作结果:返回一个非NIL值
C:HD (/ LSTS LSTZ P PP P1 FF STR B Z C ZA S SA ZZ ZN FLAG D) // 操作结果:返回一个非NIL值
E2C (/ SN LSTS P1 P2 SS I SI PT Y X H)
// 操作结果:返回一个XYH点列表
L2C (/ PL ENTDATE A N LSTZ FIND KEY YY XX)
// 操作结果:返回一个XYH点列表
STRPARSE (STR DELIMITER / SEARCHSTR STRINGLEN RETURN N CHAR)
// 操作结果:返回一个子字符串列表
L1R (P1 P2 P3 / B C P)
// 操作结果:返回一个INT值,等于0时点在线上,大于0时点在线的左侧,小于0时点在线的右侧。

} ADT ZD_HD
3 程序测试与成果生成
(1)打开AUTOCAD,加入CASS环境,展绘点号和高程点。

输入命令APPLOAD,选择和加载文件“*.FAS/*.LSP/*.VLX”;若命令无效可重复加载。

开启圆心和节点捕捉,从上游至下游(前进方向)连接纵断线,从前进方向左端至右端连接横断线。

输入命令“ZD”,框选高程点(包含纵断线),生成纵断数据文件及成果图。

输入命令“HD”,框选高程点(包含横断线),选择(横断线),选择中心桩和方向点(前进方向),输入中心桩号,生成纵断数据文件及成果图。

(2)以某长1KM纵横断测量项目所采集数据为实例,其原始数据格式为“点名,注释,东坐标,北坐标,高程”,展绘后散点图如3.1所示。

目标纵断成果和横断成果格式为“距离,高程”,并生成横断面图(以第一条为例,如图3.2所示)和纵断面图(如图3.3所示)。

图表 3.1 测点数据散点图
图表 3.2 纵断面成果图
图表 3.3 横断面成果图
4 结语
(1)通过该程序的设计、编码与测试,以及成果生成,取得了预期的结果,操作更加简便、尤其适合于电脑操作不太熟练的同志。

(2)通过断面线的绘制,避免了多人协作测量数据凌乱无章的特点,断面点的选择也更具灵活性,断面数据的可靠性更高,出错率更低。

(3)LISP语言在人工智能方面有着称奇的优势,虽然本程序在生产实践中应用尚可,但是仍立足于简单数据源、图元素,本质上还是文本操作处理,因而将来在数据处理智能化方面有着很大的空间,需要结合本职工作进行更深一步的学习和研究。

参考文献:
[ 1 ] 阎聚群.AUTOCAD 2000 VISUAL LISP开发[M ] .武汉:华中理工大学出版社, 2000.
[ 2 ] 孙江宏,丁立伟,米洁. VISUAL LISP编程与应用[M]. 北京:科学出版社,1999.
[ 3 ] 郭剑峰,陈杉,王宁. 用VISUAL LISP开发AUTOCAD 2000应用程序[M]. 北京:人民邮电出版社, 2000.
[ 4 ] 鲁玉甫. 用LISP程序扩展AUTOCAD在测量上应用[A]. 河南省土木建筑学会2009年学术大会论文集[C], 2009 .
[ 5 ] 陈驰原,刘占奎. VISUAL LISP编程在渠道纵断面设计中的应用[J]. 新疆水利, 2009, (02) .。