引言
这是山东科技大学测绘学院遥感专业18级大三课程王志勇《摄影测量学》的编程家庭作业。
输入给定,使用Python代码求解。输入情况在代码底部。
代码构建了一个空间后方交会类,没有经过任何优化,赶出来的代码,很多地方写的很丑陋很暴力,但是的确能够工作。
代码
"""
后方交会代码
作者:Dash
version:0.1
without any optimization
"""
import numpy as np
class RearIntersection(object):
def __init__(self,f, X, Y, Z, x, y, m = 50000):
"""
`X`,`Y`,`Z`,`x`,`y` is list of control point paras.
"""
# transform to np arrays.
self._f = np.array(f, dtype = np.float32)
# control point
self._X = np.array(X, dtype = np.float32)
self._Y = np.array(Y, dtype = np.float32)
self._Z = np.array(Z, dtype = np.float32)
# image point
self._x = np.array(x, dtype = np.float32)
self._y = np.array(y, dtype = np.float32)
# scale
self._m = np.array(m, dtype = np.float32)
self._H = self._m * self._f
def solve(self):
phi = 0
omega = 0
kappa = 0
n = len(self._x)
# initial line paras
Z0 = self._m * self._f + (1/n) * np.sum(self._Z)
X0 = (1/n) * np.sum(self._X)
Y0 = (1/n) * np.sum(self._Y)
Max_Step = 100000
Xt = X0
Yt = Y0
Zt = Z0
for i in range(Max_Step):
a1 = np.cos(phi)*np.cos(kappa)-np.sin(phi)*np.sin(omega)*np.sin(kappa)
a2 = -np.cos(phi)*np.sin(kappa)-np.sin(phi)*np.sin(omega)*np.cos(kappa)
a3 = -np.sin(phi)</

这是山东科技大学测绘学院遥感专业课程《摄影测量学》的编程作业,使用Python代码求解。代码构建了空间后方交会类,虽未优化、编写较粗糙,但能正常工作,输入情况在代码底部。
最低0.47元/天 解锁文章
2796

被折叠的 条评论
为什么被折叠?



