版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、纵横断面测量数据处理软件2.3介绍及使用说明纵横断面测量数据 处理软件说明报告编制: 陈礼坤审核: 贾克永审定: 赵振刚共 20 页中铁工程设计咨询集团有限公司济南设计院2015年01月 济南1、软件开发背景在线路测量工作中,断面的测量是一项基本的工作内容,在进行外业数据采集时,一般采用全站仪和GPS RTK进行断面数据测量。在满足目前相关测量规范测量精度要求的前提下,如何提高外业断面数据采集的效率,降低内业数据处理的难度,同时便于进行数据质量的检核,是我们在实际工作中一直思考的问题。为此,根据现有的测量仪器、测量方法以及测量习惯,可以编制一种断面测量数据处理软件,以满足上述要求。在编制此软件
2、之前,在2013年9月份在新建铁路吉林枢纽西环线补充定测工作中,在对GPS RTK采集的断面数据进行内业处理的过程中,其处理过程的复杂性,给我触动最深。由于测区属于丘陵地带,且现场玉米未收割,通视条件差,很多断面数据均是通过GPS RTK采集。但在内业数据的处理至少要经过三个EXCEL表格,通过断面排序、复制、粘贴、高差计算,再距离排序,再复制,粘贴等过程(可现场演示一个断面的处理过程),将只含12个数据的一个断面处理成平时提交给设计专业要求的断面数据格式,就需要两三分钟的时间,中间步骤越多,出错的概率就越大,当测量专业将最后的结果提交给相关设计专业后,设计专业还需要进一步处理,才能画出地面线
3、图,这样处理多个断面的话,测量的内业处理的任务会更重。如果通过软件编制,实现将导出的仪器数据,结合中桩高程,直接绘制出地面线图,同时生成线路专业相关画图软件要求的距离-高差断面数据,就可以大大减少内业数据处理的复杂度,降低内业处理的时间,减少因步骤过多而出错的几率。同时地面线图的绘制,形成直观的数据表现形式,也有利于数据质量的后期检核。对于用全站仪测量的断面数据,同样可以直接将全站仪导出的断面绘制成地面线图,这样,在我们在外业上,可以将断面数据直接记录在全站仪中,从而减少一个外业记录人员,减少了出错的概率,也不需要处理内业时,再进行断面的人工输入。至于软件的其他功能下面会有详细的介绍。2、软件
4、功能2.1可以将全站仪(如LEICA、TOPCON等)采集的断面测量数据,转换成距离-高差断面数据格式,并可以形成*.dxf格式的图形数据文件和线路设计软件路基助手以及南方CASS支持的.hdm断面数据文件。2.2能够将通过GPS RTK采集的断面测量数据,转换成距离-高差断面数据格式,同时结合中桩数据,生成*.dxf格式的横地面线图和线路设计软件路基助手以及南方CASS支持的.hdm文件。2.3 能够直接将已编辑好的横断面数据,结合中桩数据,直接生成*.dxf格式的断面图形文件和.hdm文件。2.4 能够根据导入的纵断面测量数据,绘制出*.dxf格式的纵向地面线图。3、软件特色3.1 本软件
5、采用易于交互操作的对话框模板和MSFlexGrid控件,在MFC开发环境下利用VC 6.0计算机语言进行编写,可在winxp、win7操作系统下正常运行。整个软件的文件数据导入、导出均可直接在图表中呈现,便于数据的检查,如果数据格式错误,程序将给出友好提示,同时将各种算法的程序实现隐藏在软件界面之下,使软件界面简洁直观,功能清晰、易学易用。3.2 在充分考虑了实际作业习惯以及仪器记录数据的特点后,对于同一个断面的距离乱序排列或者左右侧混排的断面数据,软件能自动识别左右侧断面数据,并分别将数据按照由近到远的顺序重新排列。如果数据中还含有距离重复的数据,通过单独编写排序算法,按照先测先排列的原则进
6、行断面数据排列处理。同时允许只有一侧断面数据的输入。允许断面名称列和距离列数据中含有字母,软件通过算法进行自动截取,只保留数字例如下面的GPS测量数据,一般实测的GPS断面数据就是这样的:点名 坐标 距离 高程c112713.50 506078.24512.49lb213.494c112713.10 506097.604-24.69kx206.926c112713.11 506097.641-25.88 207.212c112713.12 506098.325-27.75 207.714c112713.31 506039.69226.89 206.155c112713.13 506099.56
7、3-30.09 207.682c112713.13 506099.563-30.09 207.382c112713.14 506099.777-30.66 207.381c112713.32 506039.76450.23 206.462c112713.33 506145.732100.23 206.487c112713.60 506077.91813.11ks213.283c112713.15 506099.766-50.26 207.172c112713.80 506091.736-12.02lb213.534c112713.90 506092.046-12.35ks213.3741127
8、50.10 506047.76412.68lb213.353112750.16 506068.98-23.56kx207.389112750.17 506069.327-26.22 207.811112750.18 506070.319-29.01 207.76112750.19 506070.519-29.62 207.311112750.20 506070.525-50.13 207.09112750.20 506047.07213.24ks213.241112750.29 506039.73327.31kx206.152112750.30 506039.7350.23 206.14911
9、2750.70 506061.582-12.38 213.04可以自动识别左右侧断面数据,并分别根据左右侧的数据,自动对距离、高程进行由近及远的排序,同时可以不受第三列距离数据中字符的影响。3.3 对于根据传统方式记录的数据,也就是软件导入既有断面数据的时候,可以不需指定左右侧数据,程序可以依据数据格式就自动判别断面数据是位于线路的左侧还是右侧,同时进行里程数据自动排序,以方便进行横断面的绘制。3.4 在读入中桩高程数据之前,可以通过编辑框进行中桩高程数据的修正,如果实际需要降低中桩高程,填入负值,如果需要增高中桩高程,则填入正值,然后保存修改后的中桩高程数据。3.5 通过引进CadIO动态链
10、接库,在程序中实现CAD部分画图功能,在导出的*.dxf格式的横断面图形文件时,按照Y坐标不变,每个断面之间间隔20m的顺序从左至右横向排列。3.6 进行纵地面线图的绘制时,方格网坐标范围的大小可以根据里程和高程的实际数据范围进行自动调整。同时分别画出纵、横坐标以及坐标刻度。4、软件界面其中左侧是软件功能实现按钮以及项目信息区,右侧是显示测量数据导入、计算结果的显示,需要保存的数据的显示,所见即所得。5、软件开发过程5.5算法设计首先确定软件实现的目标,需要实现一个项目信息的输入,六种格式数据的导入,两种格式数据的导出,一个横断面数据的计算以及每次导入和导出的视图展现等功能。为了在视类展示和编
11、辑数据,采用CEditMSFlexGrid控件,并对其进行二次开发。在ClassView中新增加FreadCouSave类,实现数据的导入,此类将实现允许导入的数据含空格,逗号,将其忽略,从而不影响数据结构,通过相关函数的编制实现不同的功能。具体程序算法框图见下表。读入GPS横断面测量数据(天宝、中海达等GPS)读入全站仪横断面测量数据(徕卡、拓普康等全站仪)计算不含中桩横断面数据并显示是否读入中桩高程数据计算含中桩横断面数据并显示保存不含中桩数据的横断面数据保存含中桩的横断面数据否是生成DXF格式断面线图读入既有的中桩高程数据读入既有的横断面数据保存(.hdm)格式数据读入既有的纵断面数据
12、5.6关键算法如何根据不同的断面测量数据,计算出同样格式的横断面数据是软件的核心,面对多个断面数据,如何进行横断面个数的统计和分类;对一个断面的距离乱序排列同时左右侧混排的数据如何进行排序,也是需要考虑的问题。为此编写了相关函数以解决问题。5.7 编程实现5.71:新增类FreadCouSave:主要用来导入和导出数据,对于导入的数据格式,对无论是以“,”隔开的数据,还是以制表符、任意空格隔开的数据,均能正确读入,增加了数据编辑方便性和容错能力。在这个类中,主要的函数是FRDuanMData(),其实现代码如下:CStdioFile File(SFileName4,CFile:modeRead
13、); CString strLin,strLinPD,str; /定义字符串变量 CString kongge(" ");Result4.SetSize(10400,-1);int k=0; for(k=0;k<10400;k+)Result4.SetAtGrow(k,kongge); char *d=" ,t"/注意指针操作/" ,*"表示“空格”、“,”、“制表符”这三种符号都可以略去。 char *p;int i=1,j=0,i2=0,j2=0,i3=0;m_Djsq=0;for(i3=0;i3<240;i3+)m_
14、jsq240=-1; for(j=0;j<240;j+)/循环读取每一行字符,此处最大设置240行 File.ReadString(strLin); char str2256=" " strncpy(str2,(LPCTSTR)strLin,sizeof(str2);/计算str2的长度 p=strtok(str2,d); str=p; Result4.SetAtGrow(i-1,str);/i-1取值,巧妙的取SetAtGrow(0,str) i2=0;/统计每一个行的数据个数 while(p)/p指针本身就可以当判断条件 str=p; Result4.SetAtG
15、row(i,str); i+; i2=i2+1; if(i2!=0) m_jsqj2=i2;/将每一行的数据个数i2存放在数组m_jsqj2中 j2=j2+1;/j2表示行数 m_Djsq=j2;/断面行数for(j2=0;j2<m_Djsq;j2+)CString str; str.Format("%d",m_jsqj2); Result3.SetAtGrow(j2,str);/将数字数组转换成字符串数组Result3CString kongge2(" ");/给kongge2赋值 for(int m=0;m<10400;m+)if(Res
16、ult4.GetAt(m)!=kongge2)/ 数组值可以比较的/m不能错误!nn4=m;elsem=20000;5.72:在CgridtestDlg类中增加OnCalLC()函数,主要是为了处理多个断面数据,对每一个断面进行统计和分类;对一个断面的距离乱序排列同时左右侧混排的数据进行排序。主要代码示例如下:void CGridtestDlg:OnCalLC() /计算仪器导出的断面数据并显示 if(m_Pand=0)/判断是否导入了全站仪断面数据CString strArray,strArray1,strArray2,strArray3,strArray4; int i=0,j=0,k=1
17、;/i是行数int lcjs161=0;/统计断面的个数for(i=0;i<m_nn2/4-1;i+)strArray1=Res.GetAt(i*4+0);/获取第一行第一个数据strArray1.MakeReverse();/转换字符串顺序strArray3=strArray1.Mid(3);/取字符串第4位以后的数据strArray2=Res.GetAt(i*4+4);/获取第二行第一个数据strArray2.MakeReverse();/转换字符串顺序strArray4=strArray2.Mid(3);/取字符串第4位以后的数据 其余处理导入的全站仪断面数据并显示的源码(此处略)
18、 /if(m_Pand=0)/判断是否导入了全站仪断面数据/处理导入的GPS数据else if(m_Pand=1)/导入了GPS数据其余处理导入的GPS测量的断面数据并显示的源码(此处略)else/无断面数据导入AfxMessageBox("请先导入全站仪或者GPS断面测量数据!");5.73:对于地面线图的绘制,采用CadIO的动态链接库。在OnDxfsave() 函数里面调用,再通过一系列参数的设置和数据的计算,最终自动绘出DXF数据交换格式图。具体代码示例如下:void CGridtestDlg:OnDxfsave() for(i=0;i<m_kd;i+)/m_
19、kd代表断面个数 / draw text result &= drw.SetLayer("Layer1"); drw.SetTextStyle("Style1"); result &= drw.Text(Res2.GetAt(i*2+0), -24,-25-i*100, 5, 0)> 0; result &= drw.Text(Res2.GetAt(i*2+1), 5,4-i*100, 5, 0);/断面高程/ draw a line result &= drw.SetLayer("Layer1"
20、);/竖线也和备注是一个图层的,颜色为白色 result &= drw.SetLineType("DASHDOT2"); result &= drw.Line(0,20-i*100,0,-20-i*100)> 0;/里程竖线 double VerDuanData480=-500.00; int k=0,n=0,m=0,p=0; while(m_LCdmi*3+1m!=-500)/i*3+1左侧数据 k=k+1;m=m+1;/得到k值,判断左侧数据个数if(k!=0) n=k-1;while(n>0)VerDuanDatap=-1*fabs(m_L
21、Cdmi*3+1n-1); VerDuanDatap+1=m_LCdmi*3+1n;n=n-2; p=p+2;/转换顺序 VerDuanDatap+0=0.0; VerDuanDatap+1=0.0; p=p+2;/存入0点坐标m=0; while(m_LCdmi*3+2m!=-500) VerDuanDatap=m_LCdmi*3+2m; m=m+1; p=p+1;/p一直延续增加 /上面这一段将二维数组转换成一维数组/下面画一三角形result &= drw.SetLayer("Layer3");/设置图层3,为三角形 ENTVERTEX vertex24;/容
22、器名字必须不一样 ZeroMemory(vertex2, sizeof(ENTVERTEX)*4); vertex20.Point.x = 0; vertex20.Point.y = 0-i*100;vertex21.Point.x = 0+5*cos(3.1415926/3); vertex21.Point.y = 0+5*sin(3.1415926/3)-i*100;vertex22.Point.x = 0-5*cos(3.1415926/3); vertex22.Point.y = 0+5*sin(3.1415926/3)-i*100;vertex23.Point.x = 0; vert
23、ex23.Point.y = 0-i*100;result &= drw.PolyLine(vertex2, 4);/下面地面线绘制 result &= drw.SetLayer("Layer2");/设置图层2,为地面线 intk2=0; ENTVERTEX vertex60;/画上缓和曲线,容器数据个数的上限 ZeroMemory(vertex, sizeof(ENTVERTEX)*60); while(k2<p)vertexk2/2.Point.x = VerDuanDatak2+0;/距离 vertexk2/2.Point.y = VerDua
24、nDatak2+1-i*100;/高差 k2=k2+2; result &= drw.PolyLine(vertex, k2/2);/地面线绘制 /for断面块个数的循环结束/ Save data to dxf file if(!drw.SaveDXFFile(DxfFileName) result = FALSE; MessageBox("Error while saving dxf file!", "Error", MB_ICONERROR | MB_OK); 其余代码此处略6、导入的数据格式说明6.1、全站仪测量的断面数据格式如下所示6.2
25、、导入的GPS RTK采集的断面数据格式如下:其中,第一列为点名,允许数字和字符,但是小数点前面数据必须一致,小数点后面需要保持两位数据。第二列为无意义列,为数据结构而保留。第三列表示距离和备注,允许是数字和字符,字符必须在数字后面。根据断面测量习惯,线路左侧距离记为负,右侧距离记为正,第四列为GPS RTK测量高程。6.3、横断面中桩数据格式的第一列的字母可以更改,具体如下所示:6.4、纵断面中桩数据格式第一列是里程,不能含字母,具体如下所示:6.5、如果已经有编辑好的断面数据,只需点击“读入中桩高程数据”按钮和其“读入既有横断面数据”按钮,导入相关数据,最后点击”生成DXF格式地面线图”,
26、就可获得*.dxf格式的图形数据文件,其中既有的断面数据格式如下需要注意的是点名后面的高程数据,可有可没有,不影响数据导入的正确性。如果左侧或者右侧无测量数据,则至少要输入一个“0”。6.6、如果导入了中桩数据,那么最后生成的断面数据文件和距离-高差的断面数据格式,如果没有导入中桩数据,那么最后生成的就是距离-高程的断面数据格式。具体格式如下所示:6.7、保存(.hdm)格式数据,根据此文件,可以在线路的路基助手设计软件和南方CASS软件里面进行下一步断面处理,数据格式如下所示6、按钮介绍及使用流程6.1 对于全站仪测量的断面数据,在设定好“项目名称”,需要先点击“全站仪测量横断面数据”按钮,
27、导入*.Dat格式的测量数据,如果需要在断面数据文件显示中桩高程数据,再点击“读入中桩高程数据”按钮,读入线路中桩高程,然后点击“计算断面数据并显示”按钮,显示计算结果,最后点击“保存断面数据”以及生成DXF格式地面线图,分别保存断面数据和生成*.dxf格式的图形数据文件。当然也可以忽略中桩高程数据的导入,最后在保存断面数据文件中,断面高程显示默认值0。6.2 在处理GPS RTK采集的断面数据时,操作流程和前面的全站仪测量断面数据的处理基本一致,就是将先点击“全站仪横断面据”按钮换成点击“读入GPS测量断面数据”。 最后点击“保存断面数据”,保存断面数据最后如果要生成*.dxf格式的图形数据文件,必须先读入中桩高程数据。6.3 如果已经有编辑好的断面数据,只需点击“读入中桩高程数据”按钮和其“读入既有横断面数据”按钮,导入相关数据,最后点击”生成DXF格式地面线图”,就可获得*.dxf格式的图形数据文件。6.4、如果前面导入的是横断面,那
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 事业编畜牧业岗必刷题
- 2026年秋季学期社区居民地质灾害群测群防课件
- 2026年高级美容师职业技能鉴定考试试题(含详细答案)
- 2026年道路运输从业资格证考试真题及详细答案(驾校一点通原版)
- 2026学生健康生活方式与慢病预防课件
- 事业编中小学教导岗必刷题试卷
- 校园澡堂维修合同范本
- 巨量引擎投放全面实战案例课件
- 美甲合伙开店合同范本
- 医用有机化学课件第一章~第五章总结张
- 2026淹溺事故生产安全专项应急预案
- 2026年宝洁(中国)秋招试题及答案
- 2026年青年教师赛课指导课件(专题深化版)
- 小学道德与法治新部编版五年级上册全册教案(2026秋)
- 应用化工专业毕业论文
- 2026中稀(保定)稀土新材料有限公司招聘1人笔试历年参考题库附带答案详解
- 2026秋外研版九年级上册英语单词表
- 《传感器与检测技术》课件 第三章 电阻式传感器
- 认识有理数(第1课时有理数)课件2026-2027学年北师大版数学七年级上册
- 国企党务工作者(党建岗)面试题和专题题20问及答案
- 财务管理实务操作案例分析与解答
评论
0/150
提交评论