全站仪在导线内外业一体化测量中的应用.doc_第1页
全站仪在导线内外业一体化测量中的应用.doc_第2页
全站仪在导线内外业一体化测量中的应用.doc_第3页
全站仪在导线内外业一体化测量中的应用.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全站仪在导线内外业一体化测量中的应用刘云波(浙江省测绘大队,杭州 310030)摘 要:在分析传统导线测量的基础上,针对全站仪在导线测量中广泛应用,改进了传统的作业方式,用VB6.0编写程序直接对全站仪的内存进行分析并提取数据生成平差文件和观测手簿。关键词:全站仪;VB6.0;简便易行;精减环节 1前言全站仪在地形、地籍测量中的广泛应用,使导线外业观测更加准确、快捷,但大部分的导线平差软件还不支持与全站仪直接进行数据交换,平差计算还需要人工对全站仪的观测数据进行整理计算、手工录入,不仅费时费力,还容易产生粗差。全站仪具有自动测距、测角、计算和数据自动记录及传输功能的自动化、数字化的特点。本文以TOPCON系列全站仪为例,通过对观测数据格式进行分析,利用“VB6.0”编写程序,对数据进行转换、检查,生成清华山维NASEW95格式的平差文件及WORD格式的导线平差软件。2.全站仪观测数据格式TOPCON全站仪以测量模式输出的原始观测数据文件一般有两种,见表1,表2。表1 斜距(SD)模式?+01178481m0852030+1203040d01174572IDSDm/fVHd/g/mHD数据识别符斜距距离单位垂直角水平角角度单位平距t00+00+25099EXT(CRLF)t/*LPOBCC倾斜改正(t打开,*关闭)0值大气改正数棱镜常数块较验符结束符表2 平距/高差(HD/VD)模式R+01174572m0852030+1203040d01174572IDHDm/fVHd/g/mHD数据识别符平距距离单位垂直角水平角角度单位平距t00+00-30099EXT(CRLF)t/*LPOBCC倾斜改正(t打开,*关闭)0值大气改正数棱镜常数块较验符结束符3.程序模块设计思想程序分为“数据预处理”、“中间数据检查处理”和“平差文件、导线观测手簿”三部分。“数据预处理”模块:利用VB程序读取全站仪观测数据文件,根据数据识别符对每测站的字符串进行分解,来获取各测站及观测方向点(点名、仪器高、方向名、水平角、垂直角、距离、目标高)信息,生成后缀为.ELE的中间文件(*.ELE文件为清华山维NASEW95平差软件的外业数据观测格式)。*.ELE以文本格式保存,生成速度快、存取方便,生成的数据格式内容整齐、便于人工辩读及除去多余观测量;表3 中间文件数据格式*A003,1.610测站名,仪器高 A004,HZS,000.0000,090.2454,00083.671,1.194 测站,模式,水平角,垂直角,距离,目标高 A002,HZS,244.0324,090.0415,00084.636,1.194-盘左盘右分隔符 A002,HZS,064.0307,269.5542,00084.636,1.194 A004,HZS,179.5943,269.3453,00083.671,1.194 “中间数据检查处理”:调用Microsoft Access软件将*.ELE文件导入到数据库中,计算2C、指标差、高差等计算量,使用SQL语言对测站的盘左盘右方向名是否相同、2C、指标差、对向边长、对向高差等精度进行检查并生成报表;“平差文件、导线观测手簿”:对通过“中间数据检查处理”的*.ELE文件,从Access数据库中提取所需数据,在已知点数据文件中提取已知点生成*.MSM文件,直接调用清华山维NASEW95程序打开进行平差计算。差文件直接加载了已知点数据,减少了人为输入产生的错误。提取Access中的观测数据,在WORD软件中生成导线观测手簿(表四),便于后期资料整理。表四 图根导线观测手簿4.程序代码4.1数据预处理 1) 导线参数设定Load Dialog1Dialog1.Show vbModal调用参数设置对话窗体Open App.Path & daoxian.lyb For Random As #1 Len = Len(DaoXian)将导线设置参数写入到二进制文件中,方便调用。Put #1, 1, DaoXian 2)读取原始观测数据CommonDialog1.ShowOpen 调用打开对话框RichTextBox1.LoadFile CommonDialog1.Filename, rtfText 打开原始观测文件,读取文件内容到文本框内3)数据转换(生成*.ELE文件)TempStr = QuWei(TempStr) 调用函数去掉文本中的CRLF、EXT和块较验符利用循环语句对每测站进行读取Cz = StrHead(TempStr, _) 测站信息 If InStr(ch, _?+) 0 Then 判断边长测量模式对字符串进行分解,根据设置的参数重新组合得到测站的方向点点名、距离、垂直角、水平角、目标高。End If RichTextBox1.Text=“”清空文本框中的内容RichTextBox1.Text=NewTempStr 将处理好的文本写入到文本框中CommonDialog1.ShowSave 弹出保存对话框RichTextBox1.SaveFile CommonDialog1.Filename, rtfText4.2 中间数据检查处理读取*.ELE文件Access数据检查1) *.ELE文件导入AccessSet db = OpenDatabase(App.Path & Traverse.mdb) 设置数据库db.Execute INSERT INTO 测站(ID,测站名,仪器高,文件号) VALUES(CZGC)读入测站信息。db.Execute INSERT INTO 方向点(ID,方向名,水平角盘左,垂直角盘左,边长读数1,觇标高,文件号) VALUES(FXGCPZ) 读入观测方向信息。2)各项检查常数计算Set RS = db.OpenRecordset(select * from 方向点 where 文件号=1 ) RS.EditRS.Fields(4).Value = (DMS(DEG(RS.Fields(2).Value) - (DEG(RS.Fields(3).Value) - DEG(180) * 10000 计算指标差RS.Fields(5).Value = DMS(DEG(RS.Fields(2).Value) - DEG(RS.Fields(4).Value / 20000) 计算2CRS.Fields(6).Value = DMS(DEG(RS.Fields(5).Value) - DEG(Val(Gl)计算水平角中值RS.Update3)数据检查Set RS = db.OpenRecordset(select 测站.ID,测站名, 方向名,指标差 from 方向点,测站 WHERE 测站.ID=方向点.ID and abs(指标差) & ZBC & and 方向点.文件号=1) 检测指标差。Set RS = db.OpenRecordset(select 测站.ID,测站名, 方向名,边长读数1,读数2 from 方向点,测站 WHERE 测站.ID=方向点.ID and abs(边长读数1-读数2) & BC & and 方向点.文件号=1) 边长检测。Set RS = db.OpenRecordset(select 测站.ID,测站名, 方向名,高差,平距 from 中值,测站 WHERE 测站.ID=中值.ID and 测站.文件号=1) 读取测站观测信息。RS .Fields(2).Value = Cz And RS.Fields(1).Value = fx And Abs(RS.Fields(4).Value - Zjl) PingJu 对向距离检查。Abs(Val(RS.Fields(3).Value) + Zgc) GC * Sqr(Val(RS.Fields(4).Value) * 0.001) 对向高差检查。4.3平差文件、导线观测手簿1)平差文件Set RS = db.OpenRecordset(select 测站.ID,测站名, 方向名,水平角,高差,平距 from 中值,测站 WHERE 测站.ID=中值.ID) 读取水平角、高差、平距信息。RS.MoveFirstDo Until RS.EOF对每行记录进行分解后,存在相应的字段。RS.MoveNextLoopShell App.Path & NASEW.EXE & FILSAVE, vbNormalFocus 调用平差软件直接打开平差文件2) 导线观测手簿Set wdApp = CreateObject(Word.Application) 调用Word程序Set wdbok = wdApp.Documents.Open(App.Path & 图根导线观测手簿.doc)调用模板文件Set wdBook = wdApp.Documents.Add新建word文件Set RS = db.OpenRecordset(select 测站.ID,测站名, 仪器高, 方向名, 水平角盘左, 水平角盘右, RC, 方向值, 水平角中数, 垂直角盘左, 垂直角盘右, 指标差, 垂直角, 觇标高, 边长读数1, 读数2, 边长值 from 方向点,测站 WHERE 测站.ID=方向点.ID and 测站.文件号=1 ) 导线观测手簿的信息 RS.MoveFirst Do Until RS.EOFWith wdBook.Tables(TabCount) .Cell(i, 2).Range.InsertAfter Format(RS.Fields(3).Value, ) 方向名 .Cell(i, 3).Range.InsertAfter Replace(Format(RS.Fields(4).Value, #0.00 00), ., ) 水平角盘左 将读取的数据填入到WORD表格中End WithRS.MoveNextLoopwdBook.Save保存文件wdBook.Close关闭文件wdbok.Cl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论