先后方交会求外方位元素
Private Sub Command1_Click()
Dim x(4) As Double, y(4) As DoubleDim a(8, 6) As Double
Dim Xd(4) As Double, Yd(4) As Double, Zd(4) As Double
Dim n As Integer, i As Integer
Dim Xy(4) As Double, Yy(4) As Double, x_x(4) As Double, y_y(4) As Double, z_z(4) As Double
Dim Zs0 As Double, Xs0 As Double, Ys0 As Double, ψ As Double, ω As Double, κ As Double, f As Double, dx(6, 1) As Double
Dim L(8, 1) As Double
Dim a1 As Double, a2 As Double, a3 As Double, b1 As Double, b2 As Double, b3 As Double, c1 As Double, c2 As Double, c3 As Double
Dim v As Variant
ψ = 0
ω = 0
κ = 0
n = 0
f = 153.24
Xy(1) = Text5: Xy(2) = Text7: Xy(3) = Text9: Xy(4) = Text11
Yy(1) = Text6: Yy(2) = Text8: Yy(3) = Text10: Yy(4) = Text12
Xd(1) = Text13: Xd(2) = Text16: Xd(3) = Text19: Xd(4) = Text22
Yd(1) = Text14: Yd(2) = Text17: Yd(3) = Text20: Yd(4) = Text23
Zd(1) = Text15: Zd(2) = Text18: Zd(3) = Text21: Zd(4) = Text24
Zs0 = 2000
Xs0 = (Xd(1) + Xd(2) + Xd(3) + Xd(4)) / 4
Ys0 = (Yd(1) + Yd(2) + Yd(3) + Yd(4)) / 4
Do
a1 = Cos(ψ) * Cos(κ) - Sin(ψ) * Sin(ω) * Sin(κ)
a2 = -Cos(ψ) * Sin(κ) - Sin(ψ) * Sin(ω) * Cos(κ)
a3 = -Sin(ψ) * Cos(ω)
b1 = Cos(ω) * Sin(κ)
b2 = Cos(ω) * Cos(κ)
b3 = -Sin(ω)
c1 = Sin(ψ) * Cos(κ) + Cos(ψ) * Sin(ω) * Sin(κ)
c2 = -Sin(ψ) * Sin(κ) + Cos(ψ) * Sin(ω) * Cos(κ)
c3 = Cos(ω) * Cos(ψ)
For i = 1 To 4
x_x(i) = a1 * (Xd(i) - Xs0) + b1 * (Yd(i) - Ys0) + c1 * (Zd(i) - Zs0)
y_y(i) = a2 * (Xd(i) - Xs0) + b2 * (Yd(i) - Ys0) + c2 * (Zd(i) - Zs0)
z_z(i) = a3 * (Xd(i) - Xs0) + b3 * (Yd(i) - Ys0) + c3 * (Zd(i) - Zs0)
x(i) = -f * x_x(i) / z_z(i)
y(i) = -f * y_y(i) / z_z(i)
L(2 * i - 1, 1) = Xy(i) - x(i)
L(2 * i, 1) = Yy(i) - y(i)
a(2 * i - 1, 1) = (a1 * f + a3 * Xy(i)) / z_z(i)
a(2 * i - 1, 2) = (b1 * f + b3 * Xy(i)) / z_z(i)
a(2 * i - 1, 3) = (c1 * f + c3 * Xy(i)) / z_z(i)
a(2 * i - 1, 4) = Yy(i) * Sin(ω) - ((Xy(i) / f) * (Xy(i) * Cos(κ) - Yy(i) * Sin(κ)) + f * Cos(κ)) * Cos(ω)
a(2 * i - 1, 5) = -f * Sin(κ) - (Xy(i) / f) * (Xy(i) * Sin(κ) + Yy(i) * Cos(κ))
a(2 * i - 1, 6) = Yy(i)
a(2 * i, 1) = (a2 * f + a3 * Yy(i)) / z_z(i)
a(2 * i, 2) = (b2 * f + b3 * Yy(i)) / z_z(i)
a(2 * i, 3) = (c2 * f + c3 * Yy(i)) / z_z(i)
a(2 * i, 4) = -Xy(i) * Sin(ω) - ((Yy(i) / f) * (Xy(i) * Cos(κ) - Yy(i) * Sin(κ)) - f * Sin(κ)) * Cos(ω)
a(2 * i, 5) = -f * Cos(κ) - Yy(i) / f * (Xy(i) * Sin(κ) + Yy(i) * Cos(κ))
a(2 * i, 6) = -Xy(i)
Next i
Call EquationResult(a, L, dx)
ψ = ψ + dx(4, 1): ω = ω + dx(5, 1): κ = κ + dx(6, 1)
Xs0 = Xs0 + dx(1, 1): Ys0 = Ys0 + dx(2, 1): Zs0 = Zs0 + dx(3, 1)
Text25 = Xs0: Text26 = Ys0: Text27 = Zs0
n = n + 1
Loop While Abs(dx(4, 1)) > 0.00003 Or Abs(dx(5, 1)) > 0.00003 Or Abs(dx(6, 1)) > 0.00003 Or Abs(dx(1, 1)) > 0.001 Or Abs(dx(2, 1)) > 0.001 Or Abs(dx(3, 1)) > 0.001
MsgBox "迭代次数为" & n & "次"
End Sub
在前方交会求待定点的坐标
航空摄影测量指的是在飞机上用航摄仪器对地面连续摄取像片,结合地面控制点测量、调绘和立体测绘等步骤,绘制出地形图的作业。航空摄影测量单张像片测图的基本原理是中心投影的透视变换,立体测图的基本原理是投影过程的几何反转。航空摄影测量的作业分外业和内业。外业包括:①像片控制点联测,像片控制点一般是航摄前在地面上布设的标志点,也可选用像片上明显地物点(如道路交叉点等),用测角交会、测距导线、等外水准、高程导线等普通测量方法测定其平面坐标和高程。②像片调绘,在像片上通过判读,用规定的地形图符号绘注地物、地貌等要素;测绘没有影像的和新增的重要地物;注记通过调查所得的地名等。③综合法测图,在单张像片或像片图上用平板仪测绘等高线。内业包括:①加密测图控制点,以像片控制点为基础,一般用空中三角测量方法,推求测图需要的控制点、检查其平面坐标和高程。②测制地形原图。
测图的方法主要有综合法、全能法、分工法(微分法)。综合法是摄影测量与平板仪结合测图方法,属单张像片测图,根据纠正后的航摄像片,确定地面点的平面位置,用平板仪测地面点高程和等高线。适用于平坦地区的大比例尺测图。全能法是置立体像对于立体测图仪内,构成缩小的地面几何模型,在立体模型上测地面点的平面位置、高程和等高线,获得地形图的方法,主要适用于山地。分工法是按照平面和高程分求的原则进行测图的方法,在立体测图仪器上测定地面点高程和测绘等高线,地面点平面位置确定与综合法相同,适用丘陵地区。
后方交会﹣前方交会方法;
相对定向﹣绝对定向法;
一步定向法
后方交会﹣前方交会法主要步
首先进行后方交会,利用单张影像上3个以上已知控制点分别计算像片外方位元素,再通过前方交会计算出地面目标的物方坐标。
该方法的缺点在于每张影像上都必须有3个以上控制点,并且前方交会求取的地面点坐标的精度取决于后方交会所解算外方位元素的精度(前方交会过程没有充分利用多余条件进行平差计算)。
因此,该方法往往在,知影像的外方位元素、需确定少量的待定点坐标时采用。
相对定向﹣绝对定向法主要步骤:
首先利用两张影像重叠区内5对以上同名点,按照共面条件方程解算相对定向元素,并计算同名点模型坐标,同时要求至少2个平高点1个高程点位于像片重叠区内以计算控制点模型坐标。然后利用控制点模型坐标和对应地面坐标根据三维相似变换方程解算出绝对定向元素。最后根据绝对定向元素求取目标的物方坐标。(计算公式比较多,用这种方法的解算结果不能严格表达一幅图像的外方位元素)
该方法的缺点在于需要已知重叠区内最少5对同名点。同样地,绝对定向的精度取决于相对定向精度。因此常用于航带法解析三角测量的应用。
步定向法主要步骤:
利用已有控制点地面坐标、像片上对应像点坐标,根据共线条件方程一步解算出像片外方位元素和目标的地面坐标。
该方法一步完成,精度完全由控制点和像点坐标量测精度决定,理论上比以上两种方法精度高。但该方法相较以上两种方法,求解过程较复杂。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)