更全的杂志信息网

面向地下综合管线数据处理的实用工具设计与开发

更新时间:2016-07-05

1

按下电灯开关、接通一个电话,这些平常的生活细节都和一个视野之外的系统密切相关——遍布城市地下空间的各类管线[1]。城市地下管线是城市基础设施中的重要组成部分,是现代城市高效率、高质量运作的基本保证[2]。随着城市建设的不断发展,地下管线的种类和数量越来越复杂,相应的地下管线数据处理也是一项烦琐复杂的工作。为了减轻劳动强度,提高工作效率,测绘单位往往投入了不少资金购买各种地下管线数据处理软件或系统,这些软件确实能在一定程度上提高作业单位的生产效率。但这些软件一般都是统一定制,实行统一的功能销售模式,并非按需定制开发,无法真正解决测绘单位在作业过程中的具体问题和各种新出现的问题,这将在很大程度上影响生产进度和成果质量[3]

基于这种需求,为了能真正提高生产效率,满足管线作业全过程需要,测绘单位必须提升自身的管线处理软件开发实力,进行各项管线数据处理所需的具体功能的设计和开发,形成一系列管线数据处理实用工具,满足地下管线项目的使用需求。

2 管线数据处理的功能需求分析

2.1 外业采集获取到的管线数据的现状

管线探测外业数据采集以作业草图方式为主,结合外业测量坐标文件形成管线探测成果表即点成果表和线成果表,点成果表中记录了管线点(附属物明显点或隐蔽探测点)的位置坐标、权属、现状、特征、附属物、井深及井盖的相关属性等信息;线成果表(管道、线缆)中记录了管线线的起终点号、埋深、管径断面、材质、孔数、根数、电压、压力等等信息。

2.2 数据处理软件的功能需求分析

对于外业探测调查获取的这些管线点表和线表,如何将这些点、线成果表快速转换为具有拓扑结构和属性结构的图库一体化的空间数据库即“管线成图”;如何保证成图后的管线数据的拓扑关系正确性、关联成果一致性及管线属性的正确性、协调性和完整性以及如何将最终的管线成果图按用户的要求输出不同格式的成果数据等各种需求都需借助管线软件平台二次开发环境定制相应的数据导入输出、信息查询、数据批处理、合法性检查、批量纠错等具体的管线功能才能得以顺利实现。

3 实用工具设计

3.1 功能框架

经需求调研与分析,选用EPS 2008为基础平台,在该平台下实现从数据导入——数据编辑处理——数据检查——成果输出的全过程,针对不同数据处理阶段需求的功能,工具软件的总体功能框架如图1所示:

1 工具软件功能框架

3.2 运行环境

软件平台:Windows 7专业版操作系统,清华山维EPS 2008基础平台。

CT及MRI增强扫描上,SPT均表现为轻度延迟强化,其病理基础是肿瘤实性成分和假乳头状成分的过渡区内肿瘤细胞围绕血管排列形成类似血窦改变;在动态增强MRI上其时间信号曲线呈流入型,具有一定的特征性,因此实性或实性成分较多的SPT的时间信号曲线有一定的诊断价值,而对于囊性或囊性成分为主的SPT,需要结合T2WI压脂及DWI序列进一步作出正确的诊断。

硬件平台:PC机(Dell Optiplex 980,Intel(R)Core(TM)i7 CPU 2.80GHz,16.0 GB的内存)。

3.3 开发语言与工具

本文提出的管线数据处理实用工具开发所采用的EPS的脚本语言遵守JScript或VBScript语言标准,基于EPS平台及开放的二次开发环境,用户可以通过该脚本语言进行相关二次开发,结合已有的管线数据处理平台可以实现对矢量数据的整理、格式转换、统一赋值等数据处理。

SSProcess是系统缺省定义的对象,是与EPS平台交互的主要入口对象,SSProcess对象的功能包括选择集操作、图形编辑操作、数据转换和系统设置等[4]

4 功能实现

4.1 数据导入

属性类的编辑处理:主要以管线点、线要素的某项属性项为基础,通过脚本语言函数和方法将通过设定的算法公式计算出来的结果赋值给与这些要素相关联的要素属性项;通过这些自动化编辑处理方式,对于某些具有共性的管线点、线属性项,可以根据与之相关的要素的某些属性通过加工处理后进行属性赋值,提高作业效率。

首先通过自定义函数GetExcelFields()获取Excel文件各个工作表中的数据的表头及表名;再新建数组,循环遍历所有工作表,自定义函数GetxlsRecord()读取Excel文件中的所有数据并存入到数组中;最好通过SSProcess对象CreateNewObjd自定义函数AddPoints()和AddLines()创建管线点、管线线对象并导入各个相应的属性项。

主要代码如下(以excel成果表举例说明):

DimarFile(20),nRecordCount,nxCount,aryKJSJ(),field_Array(100),strFields(20),strSheet(50),code(50),SheetName(),nFields_hz(),nFields_py()

Sub OnClick()

aa = SSFunc.ExcelSelectFile(arFile,nFileCount) '读EXCLE表格

雷锋的家乡在湖南省长沙市望城区,假期里,我和爸爸、妈妈到那里办事,望城人的友善、热心给我留下了深刻的印象。

if aa = 0 then exit Sub

GetExcelFields arFile(0),ExcelName,SheetName,nSheetCount,nFields_hz,nFields_py

codes=""

式中:H为单位质量反应热;Cp为样品平均比热容。根据实验得到的初始反应温度T0、反应最高温度Tf替代H/Cp及α,并联立上述两式可得绝热温升速率方程:

strSheets = ""

SSFunc.ScanString strSheets,",",strSheet,sheetCount

SSFunc.ScanString codes,",",code,codeCount

For i = 0 to 14 'excel '开始调入数据

GetxlsRecord nFileCount,strSheet(i),nFields_hz(i) '读取excel数据

If k<12 Then’

AddPoints code(i),aryKJSJ,nFields_hz(i) '导入管点数据

Else

AddLines code(i),aryKJSJ,nFields_hz(i) '导入管线数据

注重基于工作过程的技能培养,以及相关理论的理解、知识的运用能力。学习过程的全程化考核,其考核内容与比例见表2。

End If

k=k+1

各地情况千差万别,农村生态环境治理的目标如何考虑现实,反映差别?《行动计划》明确,各地要根据环境质量、自然条件、经济水平和农民期盼,科学确定本地区整治目标任务,集中力量解决突出环境问题,不搞“一刀切”,不搞形式主义。

敏捷型的BIM团队,同时响应内部的需求,包括技能交换、工时轮换、任务转包。团队负责人须时刻响应内部沟通企图,冲刺阶段全程陪同完成。最大程度响应团队对于技能提升、办公环境、加班待遇的需求。

erase aryKJSJ

SSProcess.RefreshView

这种数据表的调入方式简单直观,对于一些计算机文化程度不高的外业作业人员,他们缺乏掌握新事物新技术的兴趣和动力,仍习惯于将外业采集成果以Excel电子表格的方式进行表达,因此这种简单方便的Excel成果表调入方式可以很好解决这个问题。

4.2 信息查询

管线数据要素查询主要是通过对管线点、线要素的某种特性或属性进行筛选过滤,再对过滤所得的要素进行坐标获取与定位。大致分三步实现:

首先通过SSProcess对象的AddInputParameter方法设置查询要素的某种特性或属性内容;再通过SSProcess.ClearSelectCondition和SSProcess.SelectFilter方法获取查询对象选择集,循环遍历说有选择集要素,通过设置好的特性或属性内容对选择集中的各要素进行筛选过滤,符合设置的特性或属性内容的要素即是需要查询的要素;最后通过SSProcess.GetSelGeoPoint方法获取过滤所得的要素的坐标信息进行定位。

For i=0 To geocount-1

为使流经导流片①A的水流能均匀地沿水平方向流动,在①A与收缩段之间设置整流段,并在整流段安置蜂窝器,可对水流起导向作用,并能降低水流的横向湍流强度。图6给出蜂窝器附近不同断面的湍动能分布。从图6中可看出,现有的整流蜂窝器能起到有效的整流作用,水流经过蜂窝器之后湍动能得到有效降低。

dim mark_find

SSProcess.ClearInputParameter

SSProcess.AddInputParameter "管线ID","",0,"",""

(4)方案提出工作是指根据前面分析的背景、需求和资源,按照相应的设计规范要求,提出初步满足要求的设计方案。

result =SSProcess.ShowInputParameterDlg ("输入ID号")

if result =1 then

SSProcess.UpdateScriptDlgParameter 1 '更新对话框上参数到内存

ID = SSProcess.GetInputParameter ("管线ID")

mark_find =1

辛娜的催促声惊到了孩子。孩子睁眼就看到床上多了一个人,还抱着妈妈在打架,就吓得哭起来。王树林偃旗息鼓,逃也似地出了卧室。

end if

if mark_find =1 then

SSProcess.ClearSelection

SSProcess.SetSelectCondition "SSObj_ID","==","ID" '过滤

SSProcess.SelectFilter '通过选择条件的设置可以设置任意的过滤条件

正解:在氧化还原反应中,还原性(氧化性)越强的物质或微粒优先参与氧化还原反应。Fe2+的还原性比Br-强,在FeBr2溶液中通入氯气,发生的反应依次为:先2Fe2++Cl2==2Fe3++2Cl-,后2Br-+Cl2==Br2+2Cl-。故溶液中的反应情况应是:Fe2+已被完全氧化,且有50%的Br-被氧化;根据电子得失关系,Fe2+、Br-离子失去电子的总数为:0.02mol+0.02mol=0.04mol,通入的氯气的体积为0.448L。

geocount = SSProcess.GetSelGeoCount

在储量管理上,采油厂是各种储量管理的交汇点,如三级储量、未动用储量、可采储量、经济可采储量等的基础资料或初步成果大部分出自于采油厂,各类储量的管理正是SEC储量评估的基础。

主要代码如下(以ID号查询举例说明):

SSProcess.SetSelectCondition "SSObj_Type","=","LINE"

我一直想撰文说说他的杂文,主要是说他本世纪来,尚未收入过集子的杂文,却一直拖了下来。如今鉴于身体情况,此事不能再拖了,于是从几种杂文选本中搜索本世纪初至2010年间的张雨生杂文。

SSProcess.GetSelGeoPoint i,x,y

SSProcess.AddCheckRecord "","","",,x,y,,0,pid,""

next

end if

通过这种不受限制的自定义属性项、属性内容的过滤查询方式,作业人员可以轻松地对各种目标对象进行查询定位。

4.3 数据处理

管线数据成图后,还需要进行各种数据整理和编辑处理,主要包括属性整理和拓扑逻辑整理两方面。

对于外业探查形成管线探测成果表即点成果表和线成果表,点表中的点号可作为唯一的标识码,点表和线表中的特征码可作为管点类型和管线线类型的参照字段,通过点表和线表中的特征码对照关系调入EPS平台进行管线数据成图,大致分四步实现:

逻辑类的编辑处理:在管线点、线属性编辑过程中,往往会造成原本相互密切关联的点线要素丢失逻辑相关性造成孤立点或孤立线现象的出现,为了避免这种现象的出现,就需随时针对编辑过程中所做的点、线处理进行点线关联性修复更新。

主要代码如下:(以通过管点高程和管线埋深计算管高举例说明)

SSProcess.ClearSelection

1.2 种植布局趋于合理,栽培模式多样化 坚持川地与山地并进、设施与露地共有,套种与间作并举,在露地韭菜生产的基础上,又发展了设施大棚韭菜种植模式,并开始推行韭菜套甘蓝、韭菜套菜花,韭菜套萝卜等种植模式,还将多层覆盖技术应用到了韭菜生产上,实现了栽培模式的多样化,达到了均衡生产、四季供应。

pid = SSProcess.GetSelGeoValue(i,"SSObj_ID")

SSProcess.GetSelGeoPoint i,0,x0,y0,z,ptype,name

sl = SSProcess.GetSelGeoCount

dim strs(100)

For i = 0 To sl - 1

geoID = SSProcess.GetSelGeoValue(i,"SSObj_ID")

pz0 = SSProcess.GetSelGeoValue(i,"[起点埋深]")

Next

pz1 = SSProcess.GetSelGeoValue(i,"[终点埋深]")

SSProcess.SelectFilter

SSProcess.GetSelGeoPoint i,PNT-1,x1,y1,z,ptype,name

ids=SSProcess.SearchNearObjIDs(x0,y0,0.00001,0,"",0)

If ids <> "" Then

SSFunc.ScanString ids,",",strs,count

For j = 0 To count - 1

SSProcess.GetObjectPoint strs(j),0,x,y,z,ptype,name

if isnumeric(pntz0)=true then ms = z - pz0

ms = formatnumber(ms,2,-1)

SSProcess.SetObjectAttr geoID,"[起点高程]",ms

next

end if

ids=SSProcess.SearchNearObjIDs(x1,y1,0.00001,0,"",0)

If ids <> "" Then

SSFunc.ScanString ids,",",strs,count

For j = 0 To count - 1

SSProcess.GetObjectPoint strs(j),0,x,y,z,ptype,name

if isnumeric(pntz1)=true then ms = z - pz1

ms = formatnumber(ms,2,-1)

SSProcess.SetObjectAttr geoID,"[终点高程]",ms

next

end if

next

4.4 质量检查

管线数据经过编辑处理后,在成果输出之前需对管线数据的完整性、规范性及逻辑关系和拓扑关系方面进行严格的质量检查即合法性检查,这里的合法性检查大体上包括管线图形的拓扑逻辑检查和要素属性检查。检查的方式主要是根据需要检查的内容和目的,制定各种合法性参数,将不满足合法性参数的管线要素筛选过滤出来并进行定位,方便作业人员进行整改修正。

在本项目中,依据项目技术设计要求及管线方面的规范标准,定制了包括逻辑关系、拓扑关系正确性;点号命名规范性;属性内容完整性及属性内容规范性四方面在内的共计20多项图形、属性检查项。具体的检查项有:

(1)拓扑关系、逻辑关系类:孤点、孤线检查;点名重复检查;分支特征检查;变径检查;排水无出口检查;污水流向雨水检查;0长度线检查;空间交叉检查;接边检查等。

(2)点号命名规范类:组号错用检查,管线类型码错误检查等。

(3)必填属性为空检查。

(4)属性内容规范类:排水粗流向细检查;排水由低向高检查;燃气管压力值不一致检查;管线材质检查;隐蔽点两端属性不一致检查;管线长度超限检查;高程异常检查等。

(5)线缆类电压、根数、孔数逻辑关系:总孔数大于已用孔检查;根数为0时,电压不为空、已用孔不为0检查等。

上述各检查项中的合法性参数应依据项目技术设计书和项目所在地的实际管网现状情况而定。

经过上述定制的各种检查项逐项检查后,管线成果在拓扑、逻辑方面和属性内容方面无限接近0错误,得到了专家组的一致好评。

4.5 成果输出

根据项目的技术设计和要求,项目成果要求既能输出Access 数据库的文字记录格式,又要能输出具备属性存储的AutoCAD dwg格式及GIS空间数据格式。

为了能将满足客户对管线成果的不同的表现格式,本项目中采用SSProcess对象的输出函数ExportData()函数,在执行该函数前,通过SSProcess.SetDataXParameter函数进行一系列转换参数的设置,包括数据输出格式;数据输出范围;格式版本;地物颜色;地物符号样式模板;注记样式模板等。在设置好所要求的参数后即可执行数据输出。

其主要代码如下:(以输出带属性的.dwg格式举例说明)

DataBoundMode = SSProcess.ReadEpsIni ("设置输出模式","SCFS" ,"全部输出" )

SSProcess.AddInputParameter "输出范围",DataBoundMode,0,"当前图幅,全部,选择集输出,",""

res=SSProcess.ShowInputParameterDlg("设置输出模式" )

DataBoundStyle=SSProcess.GetInputParameter("输出范围" )

If DataBoundStyle = "当前图幅" Then

DataBoundMode = "2"

ElseIf DataBoundStyle = "全部输出" Then

DataBoundMode = "0"

ElseIf DataBoundStyle = "选择集输出" Then

DataBoundMode = "1"

End If

SSProcess.WriteEpsIni "设置输出模式","SCFS" ,DataBoundStyle

fileName= SSProcess.SelectFileName(0,"指定输出文件名",0,"AutoCAD Files (*.dwg)|*.dwg")

SSProcess.SetDataXParameter "DataType","1"

SSProcess.SetDataXParameter "Version","2004"

SSProcess.SetDataXParameter "SymbolScriptTBName","SymbolScriptTB_CAD"

SSProcess.SetDataXParameter "FeatureCodeTBName","FeatureCodeTB_CAD"

SSProcess.SetDataXParameter "NoteTemplateTBName","NoteTemplateTB_CAD"

SSProcess.SetDataXParameter "DataBoundMode",DataBoundMode

SSProcess.SetDataXParameter "ExportPathName",filename

SSProcess.SetDataXParameter "ThicknessExportMode","3"

SSProcess.SetDataXParameter "ExportLayerCount","0"

SSProcess.SetDataXParameter "ExplodeObjMakeGroup","1"

SSProcess.SetDataXParameter "ColorUseStatus","2" '//按地物设定颜色输出

SSProcess.SetDataXParameter "LayerUseStatus","0" '//按编码表设定层名输出

SSProcess.SetDataXParameter "SymbolExplodeMode","0"'//符号打散方式

SSProcess.SetDataXParameter "LineExportMode","2" '//输出AutoCAD数据时,多义线输出

AcadDwtFileName = SSProcess.GetSysPathName (0) & "AcadLinNngx.dwt"

SSProcess.SetDataXParameter "AcadDwtFileName",AcadDwtFileName

SSProcess.ExportData

msgbox "输出完成!"

SSProcess.SetDataXParameter函数易学易用、灵活多变,通过的输出格式参数的设置可以定义输出各种格式的GIS空间数据。如:ArcGIS SDE、DWG、DXF、E00、Coverage、Shp、ArcGIS Mdb等。

5 应用实例

笔者所在单位基于本设计框架和开发思路,进行了管线数据处理实用工具软件开发,也在南宁市地下管线全面普查项目的实际生产过程中得到广泛应用。尤其是在广西地区各城市地下管线普查建库、第一次全区性地下空间管线数据普查项目中得到很好的应用,本套管线数据处理软件切实地提高了管线作业工作效率,确保了管线普查成果的质量和任务进度,并作为交流软件,在区内其他单位和地下管线普查和信息化建设技术群中进行了共享,反响良好。

参考文献

[1] 周京春,侯至群,尚剑红. 昆明市地下管线信息化建设历程及思考[J]. 测绘通报,2013(S):P44~48.

[2] 徐婵. 面向矢量数据综合处理的实用工具设计与开发[J]. 测绘与空间地理信息,2015(8):104~107.

[3] 徐中华,刘万华,余成江. 清华山维一体化软件EPS脚本语言的应用[J]. 城市勘测,2007(6):P88~90.

[4] 王利华. 地下管线数据采集及建库研究[D]. 昆明:昆明理工大学,2015.

王海英,刘容
《城市勘测》 2018年第2期
《城市勘测》2018年第2期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号