纯Excel公式坐标反算程序
EXCEL公式进行经纬度与XY坐标的相互转换
EXCEL公式进行经纬度与XY坐标的相互转换•一、用EXCEL进行高斯投影换算从经纬度B、L换算到高斯平面直角坐标X、Y(高斯投影正算),或从X、Y换算成B、L(高斯投影反算),一般需要专用计算机软件完成。
在目前流行的换算软件中不足之处,就是灵活性较差,大都需要一个点一个点地进行,不能成批量地完成,给实际工作带来许多不便。
而用EXCEL可以很直观、方便地完成坐标换算工作,不需要编制任何软件,只需要在EXCEL的相应单元格中输入相应的公式即可。
下面以1954年北京坐标系为例,介绍具体的计算方法。
上图为编辑好的EXCEL表(红色为输入数据项)完成经纬度B、L到平面直角坐标X、Y的换算,在EXCEL中大约需要占用21列,当然读者可以通过简化计算公式或考虑直观性,适当增加或减少所占列数。
在EXCEL中以公式从第3行第1列(A3格)为起始单元格为例,各单元格的公式如下:(1)单元格A3输入中央子午线,以度、分、秒形式输入,如107度0分则输入107.00 (2)单元格B3公式如上图,把L0化成度形式。
(3)单元格C3以度小数形式输入纬度值,如23°44′01″则输入23.4401。
(4)单元格D3以度小数形式输入经度值,如107°42′48″则输入107.4248。
(5)单元格E3公式如上图,把纬度B化成度形式。
(6)单元格F3公式如上图,把经度L化成度形式。
(7)各个单元格输入公式如下:表中计算公式见由孔祥元等主编、武汉大学2002年出版的《控制测量学》,EXCEL软件的操作方法请参阅有关资料。
按上面表格中的公式输入到相应单元格后,就可方便地由经纬度求得平面直角坐标。
当输入完所有的经纬度后,用鼠标下拉即可得到所有的计算结果。
表中的许多单元格公式为中间过程,可以用EXCEL的列隐藏功能把这些没有必要显示的列隐藏起来,表面上形成标准的计算报表,使整个计算表简单明了,可计算的数据量是无限的,当第一次输入公式后,相当于自己完成了一软件的编制,可存储起来供今后重复使用。
坐标反算程序
坐标正反算程序(5800)反算主程序:FS1.Prog"SJ"2.90U÷π÷R→H 第一回旋线所对应圆心角β013.90V÷π÷R→T 第二回旋线所对应圆心角β024.Rec((Z[3]+Z[4]÷cosK)÷tanK,F+90G):Z[5]+I→Z[11]:Z[6]+J→Z[12]ZH 、HZ点垂线交点坐标5.F-90G→Z[13]ZH点与ZH、HZ点垂线交点连线方位角6.Z[13]+GH→Z[14]HY点与圆心连线方位角7.Z[13]+G(K-T)→Z[15]YH点与圆心连线方位角8.Z[15]+GT→Z[16]HZ点与ZH、HZ点垂线交点连线方位角9.Lbl 0:?X:?Y10.Pol(X-Z[11],Y-Z[12])11.If GIsin(J-Z[13])<0:Then Pol(N-X,E-Y):Rec(I,F-J)12.Q-I→Z: J→S:Cls:“Z=”:Locate3,1,Z:”S=”:Locate 3,2,S◢13.Goto 0:IfEnd 第一直线14.If GIsin(J-Z[16])>0:Then Pol(X-N,Y-E):Rec(I,J-F-GK)15.I-Z[4]+D→Z: J→S:Cls:“Z=”:Locate3,1,Z:”S=”:Locate 3,2,S◢16.Goto 0:IfEnd 第二直线17.If GIsin(J-Z[13])>0:Then Pol(X-Z[9],Y-Z[10])18.If GIsin(J-Z[14])<0:ThenZ[13]→P:U→H:A→M:1→T:Z[5]→Z[17]:Z[6]→Z[18]:F→Z[19]:Goto 1:IfEnd 第一缓和曲线19.If GIsin(J-Z[15])<0:Then Abs(J-Z[14])→Z[20]:Z[20]>360?Z[20]-360→Z[20]20.B+πRZ[20]÷180→Z: G(R-I)→S:Cls:“Z=”:Locate3,1,Z:”S=”:Locate 3,2,S◢21.Goto 0:IfEnd 圆曲线22.If GIsin(J-Z[15])>0:Then Z[16]→P:V→H:D→M:-1→T:Z[7]→Z[17]:Z[8]→Z[18]:F+GK+180→Z[19]:Goto 1:IfEnd 第二缓和曲线23.Lbl 1:Pol(X-Z[11],Y-Z[12]): Abs(J-P)→J:J>180?J-360→J:JπR÷180→L L为以R为半径,以所求点-(Z[11],Z[12])连线与P的角度差计算得的弧长24.Lbl 2:L-L5÷(40R2H2)+L9÷(3456R4H4)-L13÷(599040R6H6)→O25.L3÷(6RH)-L7÷(336R3H3)+L11÷(42240R5H5)-L15÷(9676800R7H7)→P26.Rec(sqrt(O2+P2),Z[19]+TGtan-1(P÷O)):Z[17]+I→O:Z[18]+J→P27.Pol(X-O+0.00001,Y-P+0.00001):Rec(I,J-(Z[19]+90TGL2÷(πRH)))28.If AbsI>0.001:Then L+I→L:Goto 2:Else M+TL→Z:TJ→S:Cls:“Z=”:Locate3,1,Z:”S=”:Locate 3,2,S◢29.Goto 0:IfEnd子程序(曲线要素数据):SJ1.20→DimZ:?M2.If M=1:Then *→F:*→K:*→G:*→U:*→V:*→R:*→Q:*→N:*→E:Goto 1:IfEnd3.If M=2:Then *→F:*→K:*→G:*→U:*→V:*→R:*→Q:*→N:*→E:Goto 1:IfEnd4.………………5.Lbl 1:U2÷24÷R-U4÷2688÷R3+U6÷506880÷R5→Z[1]Z[1]第一回旋线内移值P16.V2÷24÷R-V4÷2688÷R3+V6÷506880÷R5→Z[2]Z[2]第二回旋线内移值P27.(R+Z[2]-(R+Z[1])cosK)÷sinK→M8.(R+Z[1]-(R+Z[2])cosK)÷sinK→P9.M+U÷2-U3÷240÷R2→Z[3]Z[3]第一切线长T110.P+V÷2-V3÷240÷R2→Z[4]Z[4]第二切线长T211.πRK÷180+(U+V)÷2→L 曲线长(Ls1+圆+Ls2)12.Q-Z[3]→A:A+U→B:A+L→D:D-V→C ZH,HY,HZ,YH里程桩号13.0→I:0→J:Rec(Z[3],F+180):N+I→Z[5]:E+J→Z[6]ZH点坐标14.Rec(Z[4],F+GK):N+I→Z[7]:E+J→Z[8]HZ点坐标15.Rec(sqrt(M2+(R+Z[1])2),F+G(K+tan-1((R+Z[2])÷P))):N+I→Z[9]:E+J→Z[10]Z[9],Z[10] 圆心坐标注:F-起始边方位角K-转角G-线路左转输-1,右转输1U-第一回旋线长V-第二回旋线长R-圆曲线半径Q-交点桩号N,E-交点坐标Z-待求点桩号S-偏距(左偏为-,右偏为+)sqrt为根号。
Excel高级技巧使用目标查找进行反向计算
Excel高级技巧使用目标查找进行反向计算在Excel中,使用目标查找进行反向计算是一种高级技巧。
通过这种方法,我们可以根据已知的结果,推导出实现这一结果所需的输入数据。
接下来,我将介绍如何使用Excel的目标查找功能来进行反向计算。
首先,在Excel中打开你的工作簿,并确保你已经有一些数据和一个已知的结果。
1. 选择目标单元格:首先,选择包含已知结果的单元格。
这个单元格可能是一个公式的输出或者你想要达到的特定数值。
2. 运行目标查找功能:点击Excel的“数据”选项卡,在“数据工具”组中找到“求解器”功能,并点击打开。
3. 设置目标单元格和目标值:在弹出的“求解器参数”对话框中,将“目标单元格”设置为你选中的已知结果的单元格,然后将“值”设置为该单元格中的数值。
4. 设置调整单元格:选择一个或多个合适的单元格,这些单元格的数值将用于反向计算以达到目标值。
请确保这些单元格中的数值是你打算调整的变量。
5. 设置约束条件(可选):在需要的情况下,你可以添加一些约束条件,限制调整单元格的取值范围。
这可以帮助你更精确地找到适合的解决方案。
6. 运行求解器:点击“确定”按钮后,Excel将尝试找到一个解决方案,以实现目标值。
7. 查看结果:如果Excel找到了解决方案,它将在调整单元格中填入相应的数值,从而达到目标值。
你可以根据需要手动调整这些数值。
使用目标查找进行反向计算的好处在于,它可以帮助我们找到使得结果符合特定要求的输入变量的数值。
无论是在财务建模、工程计算还是其他领域,这一高级技巧都可以提高我们的工作效率和准确性。
注意,目标查找方法并不是一种万能的解决方案,它可能无法找到满足所有约束条件的解决方案。
此外,当调整单元格过多或者约束条件过于复杂时,计算可能会变得非常耗时。
总而言之,Excel的目标查找功能为我们提供了一种强大的反向计算方法。
通过设置目标单元格、调整单元格和约束条件,我们可以利用这一技巧找到使得结果符合特定要求的输入变量的数值。
Excel批量反算桩号
新建一个Excel表,按ALT+F11进入Excel VB编辑器。
依次点击——插入——模块,将下面的内容全部复制到右边的空白窗口里面(曲线元素请自行修改,下面有说明)。
保存后就可以在这个新建的Excel表里用了(如果出现#NAME?请百度“Excel启用宏”)。
中桩X =XPS(DKI,1)中桩Y =XPS(DKI,2)中桩方位角=XPS(DKI,3)中桩高程=SHU(DKI)坐标反算桩号=ZHUANG(X,Y,1)坐标反算距中桩距离=ZHUANG(X,Y,2)从下面开始复制到结束***************************Function XPS(DKI, Z)'辛普森公式,5800程序改编Dim QX As VariantDim A, B, C, D, E, F, G As DoubleDim P, Q, I, J, M, N, K As Double'曲线元素,请自行更改'ElseIf DKI<终点桩号THEN' QX=Array(起点桩号,终点桩号,起点X,起点Y,起点方位角(弧度),起点半径,终点半径)If DKI < 20058.839 ThenQX = Array(0, 0, 0, 0, 0, 0, 0)ElseIf DKI < 20238.839 ThenQX = Array(20058.839, 20238.839, 4201152.834, 465521.276, 5.65395484192746, 0, 1500)ElseIf DKI < 20816.464 ThenQX = Array(20238.839, 20816.464, 4201300.426, 465418.29, 5.71395484980653, 1500, 1500)ElseIf DKI < 20996.464 ThenQX = Array(20816.464, 20996.464, 4201834.24, 465207.124, 6.09903818731417, 1500, 0)ElseIf DKI < 21116.464 ThenQX = Array(20996.464, 21116.464, 4202012.345, 465181.272, 6.15903858304419, 0, -1244.01)ElseIf DKI < 21538.232 ThenQX = Array(21116.464, 21538.232, 4202131.155, 465164.502, 6.11080747575542, -1244.01, -1244.01)ElseIf DKI < 21658.232 ThenQX = Array(21538.232, 21658.232, 4202526.61, 465023.77, 5.77176839646516, -1244.01, 0)ElseIf DKI < 21850.133 ThenQX = Array(21658.232, 21850.133, 4202629.304, 464961.713, 5.72353724069503, 0, 0) ElseIf DKI < 21970.133 ThenQX = Array(21850.133, 21970.133, 4202791.929, 464859.835, 5.72353724069503, 0, 1252.482)ElseIf DKI < 22050.81 ThenQX = Array(21970.133, 22050.81, 4202894.615, 464797.767, 5.77144211685777, 1252.482, 1252.482)ElseIf DKI < 22310.81 ThenQX = Array(22050.81, 22310.81, 4202966.18, 464760.552, 5.83585582000829, 1252.482, 2900)ElseIf DKI < 23162.892 ThenQX = Array(22310.81, 23162.892, 4203208.994, 464668.271, 5.98447753865125, 2900, 2900)ElseIf DKI < 23418.664 ThenQX = Array(23162.892, 23418.664, 4204048.252, 464539.886, 6.27829891856905, 0, 0) ElseIf DKI < 23843.077 ThenQX = Array(23418.664, 23843.077, 4204304.021, 464538.637, 6.27829887008768, -3000, -3000)ElseIf DKI < 24987.311 ThenQX = Array(23843.077, 24987.311, 4204726.868, 464506.599, 6.13682786235288, 0, 0) ElseIf DKI < 25107.311 ThenQX = Array(24987.311, 25107.311, 4205858.869, 464339.73, 6.1368282986852, 0, -1000)ElseIf DKI < 25597.197 ThenQX = Array(25107.311, 25597.197, 4205977.194, 464319.862, 6.07682829080613, -1000, -1000)ElseIf DKI < 25717.197 ThenQX = Array(25597.197, 25717.197, 4206413.637, 464108.336, 5.58694229503935, -1000, 0)ElseIf DKI < 26198.491 ThenQX = Array(25717.197, 26198.491, 4206502.543, 464027.767, 5.52694228716029, 0, 0) ElseIf DKI < 26318.491 ThenQX = Array(26198.491, 26318.491, 4206852.646, 463697.506, 5.5269428689367, 0, -1250)ElseIf DKI < 26668.593 ThenQX = Array(26318.491, 26668.593, 4206938.599, 463613.786, 5.47894287232972, -1250, -1250)ElseIf DKI < 26788.593 ThenQX = Array(26668.593, 26788.593, 4207143.201, 463331.103, 5.19886125757867, -1250, 0)ElseIf DKI < 27337.747 ThenQX = Array(26788.593, 27337.747, 4207195.875, 463223.295, 5.15086126097169, 0, 0) ElseIf DKI < 27487.747 ThenQX = Array(27337.747, 27487.747, 4207429.022, 462726.09, 5.15086174578537, 0, 1000)Else: QX = Array(0, 0, 0, 0, 0, 0, 0)End If'以下不用更改A = QX(2)B = QX(3)C = QX(4)If QX(5) <> 0 Then D = 1 / QX(5) Else D = 0 'D = QX(5)If QX(6) <> 0 Then E = 1 / QX(6) Else E = 0 'E = QX(6)F = QX(0)G = QX(1)P = (E - D) / Abs(G - F)Q = Abs(DKI - F)I = P * QJ = C + (I + 2 * D) * Q / 2M = C + (I / 4 + 2 * D) * Q / 8N = C + 3 * (3 * I / 4 + 2 * D) * Q / 8K = C + (I / 2 + 2 * D) * Q / 4If Z = 1 Then XPS = A + Q * (Cos(C) + 4 * (Cos(M) + Cos(N)) + 2 * Cos(K) + Cos(J)) / 12If Z = 2 Then XPS = B + Q * (Sin(C) + 4 * (Sin(M) + Sin(N)) + 2 * Sin(K) + Sin(J)) / 12If Z = 3 Then XPS = JEnd FunctionFunction shu(L)Dim SQX As VariantDim A, B, C, D, R, T, E, F, H, X, Y As Double'曲线元素,请自行更改'ElseIf L<终点桩号THEN' SQX=Array(变坡点,H,R,T,E,I1,I2)If L < 20483 ThenSQX = Array(0, 0, 0, 0, 0, 0, 0)ElseIf L <= 21225 ThenSQX = Array(20740, 785.679, 12000, 129, 0.693, 0.0035, 0.025)ElseIf L <= 22009.19 ThenSQX = Array(21360, 801.179, 30000, 135, 0.304, 0.025, 0.034)ElseIf L <= 22797.109 ThenSQX = Array(22160, 828.379, 14160.563, 150.81, 0.803, 0.034, 0.0127) ElseIf L <= 23636.923 ThenSQX = Array(22980, 838.793, 7075.103, 182.891, 2.364, 0.0127, -0.039) ElseIf L <= 24692.69 ThenSQX = Array(23740, 809.153, 12884.625, 103.077, 0.412, -0.039, -0.023) ElseIf L <= 25717.197 ThenSQX = Array(24840, 783.853, 6137.917, 147.31, 1.768, -0.023, 0.025) ElseIf L <= 26467.197 ThenSQX = Array(25820, 808.353, 14686.143, 102.803, 0.36, 0.025, 0.039) ElseIf L <= 27320 ThenSQX = Array(26570, 837.603, 5860.362, 218.591, 4.077, 0.039, -0.0356) Else: SQX = Array(0, 0, 0, 0, 0, 0, 0)End If'以下不用更改A = SQX(1)B = SQX(0)C = SQX(5)D = SQX(6)R = SQX(2)T = SQX(3)E = SQX(4)If (C - D) >= 0 Then F = 1 Else F = -1 'F=ABS(C-D)/(C-D)X = B - TY = B + TIf L < X ThenH = A - (B - L) * CElseIf L < B ThenH = A - (B - L) * C - F * (L - X) ^ 2 / (2 * R)ElseIf L = B ThenH = A - F * EElseIf L < Y ThenH = A - (B - L) * C - F * (L - X) ^ 2 / (2 * R)ElseIf L > Y ThenH = A - (B - L) * DEnd Ifshu = HEnd FunctionFunction ZHUANG(X, Y, Z)Dim W, L, J, DKI As Double'坐标反算,只需更改DKI=路线起点桩号DKI = 20058.839'以下不用更改DoL = ((XPS(DKI, 1) - X) ^ 2 + (XPS(DKI, 2) - Y) ^ 2) ^ 0.5If L = 0 Then Exit DoJ = Sin(XPS(DKI, 3) - 1.5707963267949 - Application.WorksheetFunction.Atan2((XPS(DKI, 1) - X), (XPS(DKI, 2) - Y)))If Application.WorksheetFunction.IsErr(W) Then Exit DoW = L * JIf Abs(W) < 10 ^ (-8) Then Exit DoIf Application.WorksheetFunction.IsErr(W) Then Exit DoDKI = DKI + WLoopIf Z = 1 Then ZHUANG = DKI Else ZHUANG = LEnd Function。
坐标正算、反算计算方法及在Excel中的VBA编程
坐标正算、反算计算方法及在Excel 中的VBA 编程测量中经常需要将某点相对坐标系坐标转换成线路的里程、偏距,或根据线路某一里程偏距计算出对应的相对坐标系坐标,为寻求一种快速简单高效的计算方法,本文对线路正算反算的原理进行了阐述,并结合Excel VBA 编程,将编程和Excel 的拖拽的功能相结合,编制出实用计算表,特别适用于需要大量计算边桩、围护桩的情况。
关键词:坐标方位角坐标正算坐标反算 V AB 编程循环迭代直接算法一、坐标方位角的反算1.坐标方位角反算如图1所示,已知点A 、B 的坐标,求直线AB坐标方位角α。
图1坐标方位角反算直线AB 之间的坐标增量:AB B AAB B Ax x x y y y ∆=−∆=−当0,0AB AB x y ∆>∆>时,角α位于第一象限角:arctan ABABy x α∆=∆当0,0AB AB x y ∆<∆>时,角α位于第二象限角:arctan 180AB ABy x α∆=+°∆当0,0AB AB x y ∆<∆<时,角α位于第三象限角:arctan 180AB ABy x α∆=+°∆当0,0AB AB x y ∆>∆<时,角α位于第二象限角:arctan360AB AB y x α∆=+°∆2.坐标方位角反算的VBA 编程可用VBA 将上述过程定义为一个名为angel()的函数,代码如下:Function angel(x0As Double, y0 As Double, x1 As Double, y1 As Double) As Double dx = x1- x0dy = y1- y0If dx > 0 And dy > 0 Thenangel = Atn(dy / dx)End IfIf dx < 0 And dy > 0 Thenangel = Atn(dy / dx) + 3.14159265358979End IfIf dx < 0 And dy < 0 Thenangel = Atn(dy / dx) + 3.14159265358979End IfIf dx > 0 And dy < 0 Thenangel = Atn(dy / dx) + 3.14159265358979 * 2End IfEnd Function二、直线段坐标正算与反算1.直线段正算图2直线段计算已知HZ 点坐标(x1,y1)、里程N HZ ,ZH 点坐标(x2,y2),正算时已知P 点对应的中桩里程Np 和偏距e (规定沿着线路前进方向,左边偏距为负,右边偏距为正),Np>N HZ ,求P 点对应的坐标。
利用EXCEL进行高斯投影正反算
利用EXCEL 进行高斯投影正反算在工作中常需要将大量经纬度转换成高斯平面坐标、将高斯平面坐标转换成经纬度、将6度带坐标转换成3度带坐标等坐标转换问题。
面对这些问题,我们希望能找个坐标转换软件进行批量转换从而降低劳动强度、提高工作效率。
然而我们通常用的软件对批量转换往往有一定的限制而且对转换数据的格式要求比较严格不容易掌握和使用。
实际上我们通常用的办公软件EXCEL 就可以完成这项工作。
EXCEL 办公软件操作简单方便、易于掌握。
想要用EXCEL 实现正反算,我们必须知道高斯投影正反算数学公式。
(高斯投影正算实际就是把大地坐标通过高斯投影数学模型转换为平面坐标,反之则为高斯投影反算)下面就是高斯投影公式:正算公式:"2322"4""4sin cos sin cos (59)22N N x X B Bl B B t l ηρρ=++-+ "322"3524"5""3"5cos cos (1)cos (118)6120NN N y X Bl B t l B t t l ηρρρ=++-++-+ 反算公式:23222424635(539)(619045)224720f f f f f f f f f f ff f f ft t N B B y t t y t t y M N M N M N ηη=-+-+---+ 22324535111(12)(52824)cos 6cos 120cos f f f f f f f f f fl y t y t t y N B N B N B η=-+++++ 我们只需要把上述两个公式用EXCEL 函数写于EXCEL 表格中就可以进行计算了。
其实,我们用的其他软件中高斯正反算基本全都是用这两个公式实现的,然而由于各种程序语言以及软件计算数据时精度不同所以最后结果也会有很小的误差。
EXCEL公式进行经纬度与XY坐标的相互转换
EXCEL公式进行经纬度与XY坐标的相互转换•一、用EXCEL进行高斯投影换算从经纬度B、L换算到高斯平面直角坐标X、Y(高斯投影正算),或从X、Y换算成B、L(高斯投影反算),一般需要专用计算机软件完成。
在目前流行的换算软件中不足之处,就是灵活性较差,大都需要一个点一个点地进行,不能成批量地完成,给实际工作带来许多不便。
而用EXCEL可以很直观、方便地完成坐标换算工作,不需要编制任何软件,只需要在EXCEL的相应单元格中输入相应的公式即可。
下面以1954年北京坐标系为例,介绍具体的计算方法。
上图为编辑好的EXCEL表(红色为输入数据项)完成经纬度B、L到平面直角坐标X、Y的换算,在EXCEL中大约需要占用21列,当然读者可以通过简化计算公式或考虑直观性,适当增加或减少所占列数。
在EXCEL中以公式从第3行第1列(A3格)为起始单元格为例,各单元格的公式如下:(1)单元格A3输入中央子午线,以度、分、秒形式输入,如107度0分则输入107.00 (2)单元格B3公式如上图,把L0化成度形式。
(3)单元格C3以度小数形式输入纬度值,如23°44′01″则输入23.4401。
(4)单元格D3以度小数形式输入经度值,如107°42′48″则输入107.4248。
(5)单元格E3公式如上图,把纬度B化成度形式。
(6)单元格F3公式如上图,把经度L化成度形式。
(7)各个单元格输入公式如下:表中计算公式见由孔祥元等主编、武汉大学2002年出版的《控制测量学》,EXCEL软件的操作方法请参阅有关资料。
按上面表格中的公式输入到相应单元格后,就可方便地由经纬度求得平面直角坐标。
当输入完所有的经纬度后,用鼠标下拉即可得到所有的计算结果。
表中的许多单元格公式为中间过程,可以用EXCEL的列隐藏功能把这些没有必要显示的列隐藏起来,表面上形成标准的计算报表,使整个计算表简单明了,可计算的数据量是无限的,当第一次输入公式后,相当于自己完成了一软件的编制,可存储起来供今后重复使用。
利用EXCEL行高斯投影正反算
利用EXCEL行高斯投影正反算————————————————————————————————作者:————————————————————————————————日期:利用EXCEL 进行高斯投影正反算在工作中常需要将大量经纬度转换成高斯平面坐标、将高斯平面坐标转换成经纬度、将6度带坐标转换成3度带坐标等坐标转换问题。
面对这些问题,我们希望能找个坐标转换软件进行批量转换从而降低劳动强度、提高工作效率。
然而我们通常用的软件对批量转换往往有一定的限制而且对转换数据的格式要求比较严格不容易掌握和使用。
实际上我们通常用的办公软件EXCEL 就可以完成这项工作。
EXCEL 办公软件操作简单方便、易于掌握。
想要用EXCEL 实现正反算,我们必须知道高斯投影正反算数学公式。
(高斯投影正算实际就是把大地坐标通过高斯投影数学模型转换为平面坐标,反之则为高斯投影反算)下面就是高斯投影公式:正算公式:"2322"4""4sin cos sin cos (59)22N N x X B Bl B B t l ηρρ=++-+ "322"3524"5""3"5cos cos (1)cos (118)6120NN N y X Bl B t l B t t l ηρρρ=++-++-+反算公式:23222424635(539)(619045)224720f f f f f f f f f f ff f f ft t N B B y t t y t t y M N M N M N ηη=-+-+---+ 22324535111(12)(52824)cos 6cos 120cos f f f f f f f f f fl y t y t t y N B N B N B η=-+++++ 我们只需要把上述两个公式用EXCEL 函数写于EXCEL 表格中就可以进行计算了。
利用EXCEL进行高斯投影正反算
利用EXCEL 进行高斯投影正反算在工作中常需要将大量经纬度转换成高斯平面坐标、将高斯平面坐标转换成经纬度、将6度带坐标转换成3度带坐标等坐标转换问题。
面对这些问题,我们希望能找个坐标转换软件进行批量转换从而降低劳动强度、提高工作效率。
然而我们通常用的软件对批量转换往往有一定的限制而且对转换数据的格式要求比较严格不容易掌握和使用。
实际上我们通常用的办公软件EXCEL 就可以完成这项工作。
EXCEL 办公软件操作简单方便、易于掌握。
想要用EXCEL 实现正反算,我们必须知道高斯投影正反算数学公式。
(高斯投影正算实际就是把大地坐标通过高斯投影数学模型转换为平面坐标,反之则为高斯投影反算)下面就是高斯投影公式:正算公式:"2322"4""4sin cos sin cos (59)22N N x X B Bl B B t l ηρρ=++-+ "322"3524"5""3"5cos cos (1)cos (118)6120NN N y X Bl B t l B t t l ηρρρ=++-++-+ 反算公式:23222424635(539)(619045)224720f f f f f f f f f f ff f f ft t N B B y t t y t t y M N M N M N ηη=-+-+---+ 22324535111(12)(52824)cos 6cos 120cos f f f f f f f f f fl y t y t t y N B N B N B η=-+++++ 我们只需要把上述两个公式用EXCEL 函数写于EXCEL 表格中就可以进行计算了。
其实,我们用的其他软件中高斯正反算基本全都是用这两个公式实现的,然而由于各种程序语言以及软件计算数据时精度不同所以最后结果也会有很小的误差。