论文部分内容阅读
摘要:根据对道亨软件数据格式的研究,本文介绍了将坐标数据转化为里程数据后如何直接转换成可以利用的ORG文件的过程,并介绍了对测量的原始数据进行简单的编码设计的方法。
关键词:坐标;里程
中图分类号:TM7文献标识码:A 文章编号:1009-0118(2011)-01-000-02
一、前言
SLCAD架空送电线路平断面图处理及定位CAD系统(500kV)即道亨软件现在已经比较广泛的应用于测量人员与线路设计人员的内业工作,但是由于先前坐标数据格式无法进行数据转换,所以造成了内业通常用任意添加辅助点的对话框手工输入原始测量数据,而后进行内业工作的局面。下面是其数据格式的几项简单的介绍:
任意添加辅助点(大院版): b,点号,偏距,累距,高程Z,点编码,连接点,线型,连线编码,有高,注记
比高法补顶点: G,待测点号,已知点号,增加高度,顶点|编码
跨越和延长:*,跨越点号1,杆型/沟宽延1上2下3两,连接点,线型,连线编码,1点跨越角
3点房:L,未知房角点,房角1点号,房角2点号,房角3点号,线型,连线编码
5点断面房:x,生成点号,房后视点1,房后视点2,房前视点1,房前视点2,房顶点,房高:相对
房顶形状;平顶,;尖,房屋偏距
输入桩(大院版): 0,桩名,偏距,累距,高程Z,点编码,注转角角度,实测左角,有高,注记
画路沟r:后中断面点,点编码,后视边点2,前中断面点,点编码,前视边点2,沟路宽,1点跨越角,沟路连码
c:连线点号,连接点,线型,连线编码
二、程序设计流程
(一)根据断面点坐标转化为相应耐张段的里程
1、通过公共模块声明是否计算断面点相应的偏距D1D2的限定值,并在程序中声明数组存储耐张段的编号,并成根据左右偏距值成应该计算的断面点所在面域1、2……
采用常规的几种算法,进行按转角的编号排序,并将断面点所在相对面域的角点(Q1、Q2、Q3、Q4坐标用数组存储。如图所示一般相接的角点是转角的二等分线(虚线)。
2、点在多边形面域内的判断
运用公式点到直线的距离,如图所示断面点在该面域内应该是S点到对应的两条变的距离为约束条件,如下所示:
|SD1|+|SD2|=|D1D2| (D1D2为左右约束的偏距值)………(1)
|SD3|+|SD4|<=|Q1Q2| (Q1Q2为该面域沿线路方向最长的边)……(2)3、坐标转化为里程
设定J1的里程为L,SJ1J2为断面点与该耐张段的前后转角所成角度,则计算S点的里程D与偏距P根据三角函数关系为:
D=L+S J1×cos∠SJ1J2 ………(3)
P= S J1×sin∠SJ1J2 ………(4)
(二)转换外业编码并生成道亨格式的断面格式
首先要制定好野外采集点的编码,并编写好子函数转换成道亨ORG文件格式的对应的编码及文件,为了方便于记忆部分编码采用了道亨的编码前部,下面表格为本人程序设计的可以进行转化的点的类型及相应的编码对应:
(三)根据点的类型判断是否连接断面线
连接断面点及其对应的连接与否和线型如下表格所示:
三、程序设计实现过程
(一)通过程序窗口输入交叉跨越线高及跨越杆型编码。
在以前坐标数据转换为里程数据程序窗口的平台上,通过GPS外业手簿采集的坐标数据自动转换成里程数据后,普通点按编码进行自动转换,而交叉跨越就要建立新的窗体,设定变量存储线高及跨越杆型。
(二)沟壑前后断开点的处理
(三)按累距进行排序并进行断面点的连接
由于点的转换及交叉跨越的处理过程中产生新的点,如跨越线顶点、沟壑前后断开点等不能进行连接,因此能进行连接的点要在生成新点的过程中设定好变量进行存储,由于该过程代码较长,故只提供累距排序,并根据沟壑前后断面点连线的过程。
该过程按累距进行顺序的排列
For i = 1 To k - 1
imin = i
For j = i + 1 To k - 1
If Val(strc(j)) < Val(strc(i)) Then
imin = j
累距交换
tmpp = strc(i)
strc(i) = strc(imin)
strc(imin) = tmpp
点名称交换
tmpstr = stra(i)
stra(i) = stra(imin)
stra(imin) = tmpstr
输入编码交换
tpw = strb(i)
strb(i) = strb(imin)
strb(imin) = tpw
End IfNext jNext I
进行点的连接
Dim m1 As Integer: Dim m2 As Integer: Dim jj As Integer
m2 = 1For i = 1 To k - 1
If strb(i) = "7" Or strb(i) = "9" Then 遇有7号点或是9号点存储相应得数组地址位置
m1 = iEnd IfFor jj = m2 To m1 - 1
Print #2, slw_drwline(stra(jj), stra(jj + 1)) 连接由起始端点点连接
Next jjIf strb(i) = "6" Or strb(i) = "10" Then遇有6号点或是10号点存储相应得数组地址位置
m2 = iEnd IfNext i
For jj = m2 To k - 2
Print #2, slw_drwline(stra(jj), stra(jj + 1))连接由末端点连接Next jj
四、程序运行范例
本人将原宁夏南部某山区工测自动采集的坐标数据导入,并进行处理、生成ORG文件。点击运行后无数据格式错误提示、运行正常。结果如下图所示:
五、总结
对测量内业软件的熟练并正确的操作源自于对其软件原理的深刻理解,而其数据文件接口为我们打开了操控软件的方便之门。在操作平台无法完成的修改用更改ORG文件的方法更有效率。任何一个软件不可能做到完全适应于自己工作的需要,因此对软件进行挖掘和研究可以更加合理、科学的应用软件。
参考文献:
[1]刘大杰.实用测量数据处理方法[M].测绘出版社,2000.
关键词:坐标;里程
中图分类号:TM7文献标识码:A 文章编号:1009-0118(2011)-01-000-02
一、前言
SLCAD架空送电线路平断面图处理及定位CAD系统(500kV)即道亨软件现在已经比较广泛的应用于测量人员与线路设计人员的内业工作,但是由于先前坐标数据格式无法进行数据转换,所以造成了内业通常用任意添加辅助点的对话框手工输入原始测量数据,而后进行内业工作的局面。下面是其数据格式的几项简单的介绍:
任意添加辅助点(大院版): b,点号,偏距,累距,高程Z,点编码,连接点,线型,连线编码,有高,注记
比高法补顶点: G,待测点号,已知点号,增加高度,顶点|编码
跨越和延长:*,跨越点号1,杆型/沟宽延1上2下3两,连接点,线型,连线编码,1点跨越角
3点房:L,未知房角点,房角1点号,房角2点号,房角3点号,线型,连线编码
5点断面房:x,生成点号,房后视点1,房后视点2,房前视点1,房前视点2,房顶点,房高:相对
房顶形状;平顶,;尖,房屋偏距
输入桩(大院版): 0,桩名,偏距,累距,高程Z,点编码,注转角角度,实测左角,有高,注记
画路沟r:后中断面点,点编码,后视边点2,前中断面点,点编码,前视边点2,沟路宽,1点跨越角,沟路连码
c:连线点号,连接点,线型,连线编码
二、程序设计流程
(一)根据断面点坐标转化为相应耐张段的里程
1、通过公共模块声明是否计算断面点相应的偏距D1D2的限定值,并在程序中声明数组存储耐张段的编号,并成根据左右偏距值成应该计算的断面点所在面域1、2……
采用常规的几种算法,进行按转角的编号排序,并将断面点所在相对面域的角点(Q1、Q2、Q3、Q4坐标用数组存储。如图所示一般相接的角点是转角的二等分线(虚线)。
2、点在多边形面域内的判断
运用公式点到直线的距离,如图所示断面点在该面域内应该是S点到对应的两条变的距离为约束条件,如下所示:
|SD1|+|SD2|=|D1D2| (D1D2为左右约束的偏距值)………(1)
|SD3|+|SD4|<=|Q1Q2| (Q1Q2为该面域沿线路方向最长的边)……(2)3、坐标转化为里程
设定J1的里程为L,SJ1J2为断面点与该耐张段的前后转角所成角度,则计算S点的里程D与偏距P根据三角函数关系为:
D=L+S J1×cos∠SJ1J2 ………(3)
P= S J1×sin∠SJ1J2 ………(4)
(二)转换外业编码并生成道亨格式的断面格式
首先要制定好野外采集点的编码,并编写好子函数转换成道亨ORG文件格式的对应的编码及文件,为了方便于记忆部分编码采用了道亨的编码前部,下面表格为本人程序设计的可以进行转化的点的类型及相应的编码对应:
(三)根据点的类型判断是否连接断面线
连接断面点及其对应的连接与否和线型如下表格所示:
三、程序设计实现过程
(一)通过程序窗口输入交叉跨越线高及跨越杆型编码。
在以前坐标数据转换为里程数据程序窗口的平台上,通过GPS外业手簿采集的坐标数据自动转换成里程数据后,普通点按编码进行自动转换,而交叉跨越就要建立新的窗体,设定变量存储线高及跨越杆型。
(二)沟壑前后断开点的处理
(三)按累距进行排序并进行断面点的连接
由于点的转换及交叉跨越的处理过程中产生新的点,如跨越线顶点、沟壑前后断开点等不能进行连接,因此能进行连接的点要在生成新点的过程中设定好变量进行存储,由于该过程代码较长,故只提供累距排序,并根据沟壑前后断面点连线的过程。
该过程按累距进行顺序的排列
For i = 1 To k - 1
imin = i
For j = i + 1 To k - 1
If Val(strc(j)) < Val(strc(i)) Then
imin = j
累距交换
tmpp = strc(i)
strc(i) = strc(imin)
strc(imin) = tmpp
点名称交换
tmpstr = stra(i)
stra(i) = stra(imin)
stra(imin) = tmpstr
输入编码交换
tpw = strb(i)
strb(i) = strb(imin)
strb(imin) = tpw
End IfNext jNext I
进行点的连接
Dim m1 As Integer: Dim m2 As Integer: Dim jj As Integer
m2 = 1For i = 1 To k - 1
If strb(i) = "7" Or strb(i) = "9" Then 遇有7号点或是9号点存储相应得数组地址位置
m1 = iEnd IfFor jj = m2 To m1 - 1
Print #2, slw_drwline(stra(jj), stra(jj + 1)) 连接由起始端点点连接
Next jjIf strb(i) = "6" Or strb(i) = "10" Then遇有6号点或是10号点存储相应得数组地址位置
m2 = iEnd IfNext i
For jj = m2 To k - 2
Print #2, slw_drwline(stra(jj), stra(jj + 1))连接由末端点连接Next jj
四、程序运行范例
本人将原宁夏南部某山区工测自动采集的坐标数据导入,并进行处理、生成ORG文件。点击运行后无数据格式错误提示、运行正常。结果如下图所示:
五、总结
对测量内业软件的熟练并正确的操作源自于对其软件原理的深刻理解,而其数据文件接口为我们打开了操控软件的方便之门。在操作平台无法完成的修改用更改ORG文件的方法更有效率。任何一个软件不可能做到完全适应于自己工作的需要,因此对软件进行挖掘和研究可以更加合理、科学的应用软件。
参考文献:
[1]刘大杰.实用测量数据处理方法[M].测绘出版社,2000.