APP下载

水利工程中断面信息自动提取软件开发与应用

2023-03-05徐树元罗时龙丁中原

现代测绘 2023年6期
关键词:标段零点里程

李 磊,徐树元,罗时龙,丁中原

(淮安市水利勘测设计研究院有限公司,江苏 淮安 223001)

0 引 言

目前,水利工程中断面纵/横断面图是河道疏浚、配套景观整治等工程项目实施的重要参考依据。如何快速、有效地提取纵/横断面信息是测绘内业工作的重点,也是影响工作效率的重要因素。如果里程较短或者断面数量较少时,当前常用的软件(扬州易图公司的AutoDM 软件V3.0、济南百图公司的百图水利土石方设计软件V13.0[1]等)都能较好的完成必要的断面信息提取工作。一旦断面里程或者数量增加,这两个软件在应用中存在的弊端将会凸显,例如依赖人工区别要素以及逐条提取;依赖人工后添加属性等,故而研究图元的识别、归组的自动化。

开发工具(VisualLisp[2]和VBA[3])规则简单,易上手,但面向对象不友好,处理复杂情形能力不足;开发工具(.NET[4]和ObjectARX[5])克服以上不足,但是开发速度慢,要求较高。这些工具的缺点[6]限制着各自的应用,2001年微软公司发布的C#语言[7]综合了VBA的可视化操作和C++的高运行效率,可以通过COM组件加载CAD类库的方式[8]深入控制CAD与互操作,故而研究C#语言进行二次开发,将算法实现并且完成软件设计,实现断面信息的自动、批量提取。

最后在水利工程《沂沭泗直管河流地形测量项目Ⅲ标段》项目中进行应用,并且通过与当前软件进行比较的方式,验证软件(方法)的成果可靠性与内业效率性。

1 全要素批量提取方法流程

以扬州易图公司的AutoDM软件V3.0为例说明当前软件的作业流程,将其概括为数据准备和信息提取两大阶段。具体方式如图1所示。

图1 AutoDM提取断面信息作业流程

显然,这种作业流程存在着大量的依赖人工操作的部分,不仅需要耗费大量的时间,降低了内业工作效率,而且可能影响成果的可靠性,影响最终的判断决策。

例如,准备阶段中,添加里程是依靠手工量取线节点到起点距离;提取阶段中,输入拾取断面线起/终点等几乎所有步骤都是依靠人工的重复操作。但是在数据准备完整的前提下,这些步骤基本上可以利用AutoCAD二次开发方法进行图形要素识别、分类、归组,进而获取制式的TXT文件。新软件的设计运行流程如图2所示。

图2 新软件运行流程

数据准备完整的基础上,关闭其他干扰图层后,直接框选所有必要的断面信息要素。软件在内部利用不同图形要素间存在的区别完成对象的识别、分类、归组、生成运算,最后将成果另存为TXT文件即可。

具体的运算(识别、分类、归组)依赖相互间的逻辑关系,将在第二节中作详细说明。

2 基于阈值的智能化

能够进行智能化改进的主要方面是“添加里程”和“信息提取”2个模块。

2.1 添加里程

断面里程(在CAD中为文本图形)通常是要求文字朝向河流下游,同时沿断面线方向放置在线的近似中心位置,具体如图3所示。

图3 里程要求样式

需要确定的是节点距起点的长度L与旋转角度α。长度L可以将相邻节点的距离作累加AGO即可;角度α可以根据断面线确定。

假设其端点坐标为(x1,y1)、(x2,y2),那么根据式(1)、式(2)[9]即可计算出其与水平线所夹的锐角β和旋转角度α。

(1)

(2)

2.2 信息提取

假设有N条断面线,因为断面零点、断面里程和断面线都存在一一对应的关系,所以存在有N个里程和N个零点;因为高程点与断面线是多对一的关系,所以在M个高程点(包括无效高程点)。通常数据准备阶段会将相关要素移动到断面线两侧,本软件有如下设置:

(1)断面线5 m范围内的高程点有效。

(2)断面线10 m范围内的里程为对应高程。

(3)断面线1 m范围内的圆为对应圆;以其圆心为零点依据,高程点到圆心的距离小于0.1 m时视为零点(为了获取高程)。

超限的图元无效,在此基础上给出识别、分类、归组的运行逻辑示意,如图4所示。

图4 运行逻辑示意图

图4中,L是指对象的插入点到断面线的距离;Mi是指满足阈值的高程点数据;O是指零点在断面线上的垂点,OMi即是Mi个高程点在断面线上的垂点;LMi是指Mi个高程点的垂点OMi与零点垂点O间距离;LM是指所有LMi按从大到小排列后的序列;HM是指与LM值对应的高程值数列。

3 工程应用

本部分不仅包含最终的应用效果,而且还对软件UI(User Interface)和核心代码进行展示。

3.1 软件UI

软件是基于C#[7]窗体应用程序的,最终的UI如图5所示。

图5 软件UI展示

软件不仅对第二节中涉及的两个模块进行了功能实现,而且对断面信息提取过程中包含的细节技术要求也进行了实现。例如,起始里程不为0或者起始号不为1等特殊情况。

另外,《沂沭泗直管河流地形测量项目Ⅲ标段》项目[10]中对点属性的要求比较详细。如果在TXT文件中后添加的话,工作量很大,所以尝试将展点代码直接提出,那么就需要获悉高程点与代码插入点的相对关系,具体位置关系如图6所示。

图6 高程点与代码插入点间相对关系

图6中是1∶1 000比例尺时高程点坐标与展点代码(文本)的插入点坐标间的差值,即不同比例尺间存在以下关系:

(3)

式中,S为CAD图形的比例尺。

因文本插入点完全重合情况不存在,所以利用比例尺这个特性可以不遗漏地提取属性信息。

3.2 核心代码

软件基于COM端口方式,独立于AutoCAD运行,先后构建断面等结构体,新建求垂足等函数,核心代码如图7所示。

图7 核心代码截图

3.3 应用效果

沂沭泗直管河流Ⅲ标段共分邳苍分洪道、新沭河、分沂入沭水道三段,累计约160 km,共测断面130条。以邳苍分洪道为例,每2 km测量一条大断面,共测45条大断面。每条断面上平均有测点120个,45条断面线的平均长度大于2 km,示意如图8所示。如果使用的是AutoDM软件V 3.0,按照正常的工作效率进行断面信息提取、添加地性注释(断面点属性)至少需要3~8 h,则完成整个Ⅲ标段的断面信息整理至少需要1~3 d。

图8 邳苍分洪道断面整理数据示意图

保证处理数据完全一致的前提下,测试电脑使用的是HP电脑(i3处理器,4G内存)进行提取时间测试。考虑到软件自身运算量较大,在不同性能电脑上的测试时间结果可能略有区别。

直接框选所有断面要素(不包括中心线)后点击ENTER键即可。使用秒表计时,运行时间接近100 s,平均在每条断面上耗费的时间只有2.3 s,则提取沂沭泗直管河流Ⅲ标段实测的160条断面信息只需6 min。与原本“1~3 d”的耗时相比,工作效率得到极大了提升。效率性(已验证)是对软件的要求之一,可靠性是对软件的另一要求,两个软件的成果对比如图9所示。

图中左侧是AutoDM软件的提取结果,右侧是本软件的提取结果。这是水利工程中要求的断面格式,其中第一行为里程值,第一行以下每行的值分别是距零点的距离(左正右负)、高程值。

结果表明,本软件的运算成果是有效的,与当前常用软件的成果相比没有显著区别。鉴于篇幅有限,成果的完整对比在此不再展示。

4 结 语

本文详细地介绍了水利工程中断面信息自动提取软件的实现方法和开发逻辑,最后利用开发出的软件与当前常用软件(AutoDM等)在效率性和可靠性两个方面进行对比。本软件在不牺牲可靠性的前提下,大大提升了断面信息提取的效率(以一条断面为准,当前软件用时以分记,本软件以秒记)。

虽然本软件在智能化等方面有了一定的进步,但仍存在不足,例如运算代码自身的冗余、对复杂情形的处理等。以后将在这些方面作出改进,以便软件的推广应用。

猜你喜欢

标段零点里程
2019年高考全国卷Ⅱ文科数学第21题的五种解法
一类Hamiltonian系统的Abelian积分的零点
腾势400 用在上海市区的来回穿梭克服里程焦虑
幸福合力 开启幸福里程
幸福合力 开启幸福里程
恩亿梯中标嫩丹高速公路两个标段的机电工程
西安地铁5号线5标段
算里程
黑龙江省三江治理工程23个标段开标
简述小型农田水利工程的标段划分研究