Excel在测绘工作中的应用
- 格式:doc
- 大小:161.50 KB
- 文档页数:18
Excel在测绘工作中的应用
目录
目录„„„„„„„„„„„„„„„„„„„„„„„„„„1 摘要„„„„„„„„„„„„„„„„„„„„„„„„„„2 关键词„„„„„„„„„„„„„„„„„„„„„„„„„2 1 引言„„„„„„„„„„„„„„„„„„„„„„„„„2 2 Excel 应用于附合导线的近似平差计算„„„„„„„„„„3 2.1 创建表格和输入数据„„„„„„„„„„„„„„„„„3 2.2 角度闭合差的计算及分配„„„„„„„„„„„„„„„4 2.3 推算坐标方位角„„„„„„„„„„„„„„„„„„„5 2.4 坐标增量闭合差的计算及分配„„„„„„„„„„„„„5 2.5 解算各点坐标的最或然值„„„„„„„„„„„„„„„5 3 绘制控制网图„„„„„„„„„„„„„„„„„„„„„6 3.1 VBA是什么,„„„„„„„„„„„„„„„„„„„„6 3.2 VBA宏代码编辑„„„„„„„„„„„„„„„„„„„6 3.3 宏代码控制CAD完成展点„„„„„„„„„„„„„„„11 4
EXCEL在移动终端设备上应用„„„„„„„„„„„„„„12 4.1 Quick office办公软件的功能„„„„„„„„„„„„„12 4.2 如何用Quick office在智能手机上处理测量问题„„„„„13
5 结束语„„„„„„„„„„„„„„„„„„„„„„„„15
1
摘要:工程测量的核心是数据处理,但其内业工作的确十分繁琐,涉及几何、三角函数等的算术运算和逻辑运算。Excel作为专业的电子表格,具有制表、计算、统计、逻辑分析等高智能化的强大功能。在工程测量数据处理过程中运用它, 能够很方便地处理如方位角反算、边长改化、简易平差、仪器检验表计算、沉降观测数据分析图表等,配合其它相关制图软件如AUTOCAD,能够实现自动展点、标注以及数据格式的转换,而在移动终端设备上使用EXCEL,将能够实时地处理各种测量问题,具有广泛的运用前景。
关键词:Microsoft Excel 附合导线平差 CAD展点 Quick office PDA 智能手机 1 引言 Microsoft Excel是微软公司基于Windows操作平台开发的一款微机数据处理软件,它具有丰富的表格特性和强大的数据处理能力,界面清晰友好,能够方便地进行数据处理和函数运算。
对于在测量工作中,EXCEL 软件能够很方便地处理如方位角反算、边长改化、简易平差、仪器检验表计算、沉降观测数据分析图表等。EXCEL能够以各种表格的形式直观地体现出计算过程与计算结果, 数据处理灵活多变, 很适应我们的测量计算, 能够非常轻松地取代计算器的所有功能, 使我们的工作能够达到事半功倍的效果。此外,借助EXCEL还可以实现在Autocad绘图软件中的自动展点、标注以及数据格式的转换等功能。
2
2 Excel 应用于附合导线的近似平差计算
所谓附合导线,是指起始于一个已知控制点,而终止于另一个已知控制点的导线。利用它进行附合导线的近似平差计算非常方便。
鉴于附合导线左角观测和右角观测两种情况下近似平差的高度相似性,本例应用只编制左角观测情况的近似平差程序。若是右角观测,需要将右角观测数据转化为左角观测数据。
工作思路:? Excel表格初始化,输入已知数据;? 角度闭合差的计算及分配;?
根据起始边的坐标方位角和改正后的转折角(观测值加改正值) 推算其余各边的坐标方位角;? 坐标增量闭合差的计算及分配;? 解算各点坐标的最或然值。
2.1 创建表格和输入数据
1.运行Microsoft Excel,新建一个文件,赋名存盘。本例文件名是“AACT.XLS”。本例附合导线示意图如图2.1所示。
2.输入文字项目:行标题、列项目(点号)和其他文本信息,这些文字信息为工作表中的各项值提供框架。根据表头提示输入观测数据和已知数据:角度观测值、边长观测值、已知点坐标和观测角中误差。如图2.3所示,虚线框内数据为观测数据和已知数据。设置单元格格式。
图2.1 附合导线示意图
3.数据预处理。若附合导线是右角观测,则先将角度观测值输入到“角度转换”模块的右角栏中。以右角=131?23′44″为例,左角为360-( B20+C20/60+D20/3600),单位为度。转化为度分秒形式,度值 F20= INT[360-(B20+C20/60 +D20/3600)],分值 G20 =INT(([360-(B20+C20/60
+D20/3600)]-F20)*60),秒值 H20 =([(360-(B20 +C20/60+D20/3600)-F20)
3
*60]-G20)*60。在这里,中括号[]表示对上个步骤中部分公式的引用,便于衔接理解,在Excel中编制公式时,应将[]替换成()或略去。观测角度转换界面如图2.2所示。
图2.2 观测角度转换界面
2.2 角度闭合差的计算及分配
1.解算AB边(起始边)和CD边(附合边)的坐标方位角。? 由公式ATAN2((N6-N5),(O6-O5))求得AB边的坐标方位角(弧度制)。ATAN2()为X轴向北、Y轴向东的笛卡尔坐标系下的反正切函数,根据正切值返回弧度值;? 将上式转
ATAN2((N6-N5),(O6-O5))/PI()*180],360);? 解算AB边坐标化为角度制MOD([
方位角的度值 F6= INT[MOD(ATAN2((N6-N5),(O6-O5))/PI()*180,360)],INT()为取整函数;? 解算AB边坐标方位角的分值 G6=
MOD(ATAN2((N6-N5),(O6-O5))/PI()*180,360)]-F6)*60);? 解算AB边坐INT(([
标方位角的秒值 H6
=([(MOD(ATAN2((N6-N5),(O6-O5))/PI()*180,360)-F6)*60]-G6)*60。同理解算CD边坐标方位角的度、分、秒值。
2.求观测角之和,, ,B13=SUM(B6:B11)+SUM(C6:C11)/60+SUM(D6:D11)/3600,SUM()为求和函数。
图2.3 附合导线近似平差界面 2.3 推算坐标方位角
1.解算B-P1边的坐标方位角。为了简明叙述,记AB边的坐标方位角和B测站
4
的观测角分别为α0、β1(弧度制),则α0=(F6+G6/60+H6/3600)/180*PI(),
β1=(B6+C6/60+D6/3600)/180*PI()。? B-P1边坐标方位角的度值
F7=INT(MOD(α0+β1-PI(),PI()*2) *180/PI()),MOD()为求余函数;? B-P1边坐标方位角的分值 G7=INT([MOD(α0+β1-PI(),PI()*2)*180/PI()]-E7)*60);? B-P1边坐标方位角的秒值 H7 =
([(MOD(α0+β1-PI(),PI()*2)*180/PI()-E7)*60]-F7)*60。在编制上述三个公式时将α0和β1代入运算。
2.选中F7:H7区域,拖动右下角十字拖柄至H12,依次自动解算出P1-P2、P2-P3、P3-P4、P4-C、CD等五条边坐标方位角的度、分、秒值。 2.4 坐标增量闭合差的计算及分配
1.计算、和,I13=SUM(I7:I11),J13=SUM(J7:J11),,,X,,Y,S
L13=SUM(L7:L11)。
ff2.坐标增量闭合差的计算。 J14 =N6+J13-N12, L14= O6+L13-O12。 yx
3.坐标增量闭合差的分配。在改正列第一个单元格里写入公式 K7 ,X
=-I7*$J$14/$I$13,拖动K7右下角十字拖柄至K11,自动解算出其它边的改正,X值。同理解算改正列。 ,Y f,S/f4.评定精度。 J15=SQRT(J14^2+L14^2),导线全长相对闭合差分母 L15
ss=I13/J15。
2.5 解算各点坐标的最或然值
P1点坐标(X,Y):N7 =N6+J7+K7,O7 =O6+L7+M7。选中N7:O7区域,拖动右下角十字拖柄至O11,依次自动解算出P2、P3、P4、C点坐标的最或然值。
至此,工作表中的近似平差计算公式编制完毕。根据需要更换观测数据和已知数据,调整未知点个数(插入和删除行),即可自动完成附合导线的近似平差计算。
5
3 绘制控制网图。
我们通过VBA平差计算完成后,下面我们就来解决EXCEL与CAD的连接问题,编程来实现。
3.1 VBA是什么,
VBA是Visual Basic for Application的简写,它以VB语言为基础,经过修改并运行在Microsoft Office的应用程序,如Excel,Word中,VBA具有很强的开发能力。
3.2 VBA宏代码编辑。
把平差的结果对应复制到Sheet5的A、B、C列,然后依次点击工具,宏,Visual basic 编辑器,进入VBA编辑界面。在左边的VBA project工程管理器下拉菜单下找到 sheet5,双击打开代码窗口,输入下列代码。
Dim X() As Double
Dim y() As Double
Dim points() As Double
Dim TEXTOBJ As AcadText
Dim TEXTSTRING As String Dim INSERTIONPOINT(0 To 2) As Double
Dim testlayer As AcadLayer Private Sub CommandButton1_Click()
n = 1
Do While Worksheets(5).Range("B" & n + 1) <> ""
n = n + 1
Loop
n = n - 1
ReDim X(n) As Double
ReDim y(n) As Double
For I = 1 To n
X(I) = Worksheets(5).Range("B" & I + 1) y(I) =
Worksheets(5).Range("c" & I + 1) Next
连接cad
'AddDimStyle
ReDim points(n * 2 - 1)
6
Dim plineObj As AcadLWPolyline
For j = 0 To n * 2 - 1 Step 2
points(j) = X(j / 2 + 1)
points(j + 1) = y(j / 2 + 1)
'Worksheets(3).Range("p" & j) = points(j) 'Worksheets(3).Range("q" &
j) = points(j + 1)
Next j
Set plineObj =