目录
一 实习目的与意义
二 实习内容与成果
1)航片调绘
2)建筑物立面控制测量成果表
3)eLen航空摄影软件
1 空间后交及前交
2 相对定位
3 绝对定位
4 立体匹配及编辑
4)eLen近景摄影软件
1 elen直接线性变换和计算结果
2 elen生成的建筑物立面图
5)VirtuoZo数字摄影测量系统
1 绝对定向结果
6)遥感专题制图
1 几何校正成果
2 拼接镶嵌成果图
3 水体专题信息栅格图和矢量图
4 空间建模
5 监督和非监督分类
7)程序设计(空间前后方交会)
附录:航片调绘成果图
三 实习总结
一 实习目的与意义
测绘工程专业的“摄影测量与遥感实习”是同“摄影测量学”、“遥感与图像处理”、“近景摄影测量”等课程教学紧密联系。实习目的是运用所学基础理论知识与课内实验已掌握的基本技能,利用现有仪器设备及资料进行综合训练,让我们系统全面地学习并应用已学摄影测量及遥感知识,锻炼实践技能。
根据摄影测量与遥感学科发展状况及生产实践水平,并考虑工测专业教学要求及现有条件,实习基于四个重点:一是以航空摄影测量为主的摄影测量学基本理论和方法;二是以测制建筑物立面图为目标的地面摄影测量完整作业过程;三是以数字摄影测量系统为平台的数字摄影测量生产作业;四是基于遥感图像处理系统的卫星遥感影像专题制图。
二 实习内容与成果
1)航片调绘
(成果另附)
2)建筑物立面控制测量
地面摄影测量控制点成果表:
河海
点号 | X | Y | 高程H | |
1 | 94.767 | 81.216 | 19.101 | |
2 | 99.913 | 72.068 | 19.146 | |
3 | 105.187 | 72.074 | 18.833 | |
4 | 111.857 | 72.977 | 18.511 | |
5 | 119.543 | 72.921 | 18.541 | |
6 | 94.768 | 81.207 | 14.987 | |
7 | 99.904 | 72.067 | 14.834 | |
8 | 104.598 | 72.075 | 15.337 | |
9 | 111.651 | 73.541 | 14.992 | |
10 | 119.539 | 72.925 | 15.067 | |
11 | 99.919 | 72.074 | 23.493 | |
12 | 105.611 | 72.074 | 22.904 | |
13 | 110.479 | 72.984 | 22.571 | |
14 | 120.826 | 72.917 | 22.775 | |
15 | 115.868 | 72.961 | 22.739 | |
16 | 91.835 | 80.982 | 23.008 | |
17 | 99.935 | 72.065 | 29.011 | |
18 | 108.258 | 72.993 | 26.992 | |
19 | 113.892 | 72.979 | 26.986 | |
20 | 121.737 | 72.924 | 30.448 | |
21 | 94.411 | 81.203 | 10.966 | |
22 | 106.343 | 72.085 | 10.227 | |
23 | 117.299 | 72.025 | 9.684 |
文天
点号 | X | Y | 高程H | |
1 | 94.767 | 81.216 | 19.101 | |
2 | 99.913 | 72.068 | 19.146 | |
3 | 105.187 | 72.074 | 18.833 | |
4 | 111.857 | 72.977 | 18.511 | |
5 | 119.543 | 72.921 | 18.541 | |
6 | 94.768 | 81.207 | 14.987 | |
7 | 99.904 | 72.067 | 14.834 | |
8 | 104.598 | 72.075 | 15.337 | |
9 | 111.651 | 73.541 | 14.992 | |
10 | 119.539 | 72.925 | 15.067 | |
11 | 99.919 | 72.074 | 23.493 | |
12 | 105.611 | 72.074 | 22.904 | |
13 | 110.479 | 72.984 | 22.571 | |
14 | 120.826 | 72.917 | 22.775 | |
15 | 115.868 | 72.961 | 22.739 | |
16 | 91.835 | 80.982 | 23.008 | |
17 | 99.935 | 72.065 | 29.011 | |
18 | 108.258 | 72.993 | 26.992 | |
19 | 113.892 | 72.979 | 26.986 | |
20 | 121.737 | 72.924 | 30.448 | |
21 | 94.411 | 81.203 | 10.966 | |
22 | 106.343 | 72.085 | 10.227 | |
23 | 117.299 | 72.025 | 9.684 |
3)eLen航空摄影软件
1. 空间后交及前交
本组所有控制点1155、1156、2155、2156、6155、6156、101、108、109参与计算,其余点作为检查点。迭代初值由公式计算得到,限差取默认值。
后方交会计算结果:
像片号 | XSo | YSo | ZSo | phi | omig | kapa |
156 | 14927.1011 | 11530.4864 | 3232.515 | -0:09:19.9 | -0:05:49.0 | -0:37:54.8 |
155 | 16297.5376 | 11515.6816 | 3240.3477 | 0:02:05.1 | -0:20:35.7 | -0:12:41.3 |
前方交会计算结果:
2.相对定向
相对定向结果
by | bz | phi | omig | kapa |
-.060793 | .83392 | 0:11:53.3 | -0:13:05.0 | 0:25:34.8 |
相对定向模型点坐标
点号 | Xm | Ym | Zm | Q |
109 | 48.8505 | -82.9612 | -159.0819 | -.097 |
6156 | 2.4888 | -69.2863" | -156.9641 | .291 |
103 | 6.8261 | -49.4154 | -151.1332 | -.2791 |
108 | 42.7892 | -46.3432 | -152.8296 | -.0298 |
107 | 41.1727 | -6.6681 | -146.299 | .0243 |
2156 | -2.1033 | -13.9272 | -140.7622 | .0274 |
104 | 84.5098 | -35.0521 | -153.7157 | .0595 |
2155 | 84.2519 | -1.887 | -153.6741 | .079 |
6155 | 91.0803 | -76.0777 | -157.6412 | -.0126 |
1156 | .3581 | 60.8124 | -156.8966 | .074 |
106 | 58.2756 | 27.812 | -152.4116 | .0107 |
102 | 86.0375 | 34.4353 | -155.0555 | .0263 |
105 | 49.3173 | 69.3308 | -156.3648 | .0358 |
1155 | 87.6682 | 71.3252 | -156.1766 | -.0928 |
101 | 6.9746 | 27.2433 | -154.4285 | -.1166 |
3.绝对定向
取本组所有控制点参与计算,其余控制点作为检查点,限差取默认值。
计算得:
Xs | 15579.4065 |
Ys | 11361.8698 |
Zs | 817.027 |
F | 0:02:56.0 |
W | -0:11:13.7 |
K | -0:39:47.3 |
Lemda | 0.9803 |
控制点残差
ID | △X | △Y | △Z |
1155 | -0.1627 | -0.4564 | 0.1318 |
1156 | -0.0911 | -0.2194 | -0.9242 |
2155 | -0.865 | 0.6631 | -0.6407 |
2156 | -0.4066 | 0.8086 | -0.2479 |
6155 | 0.8542 | -0.9706 | -0.459 |
106 | -0.0689 | 0.1479 | 0.6118 |
107 | -0.5299 | 0.5138 | 0.2097 |
108 | -0.3879 | -0.3235 | -0.2513 |
109 | 0.638 | -0.5787 | 0.5249 |
6156 | 0.0714 | 0.8084 | -0.1663 |
101 | 0.9484 | -0.3932 | 1.2112 |
结论:限差对计算结果基本没有影响,只影响迭代曲线的形状。
4.立体匹配及编辑
在生成核线影像的基础上,以下图所示方法进行立体匹配;
完成匹配后进行个别区域的匹配点增加,并查看匹配点点云数据。对其中高程异常点进行删除或置平处理,得匹配点图:
生成DEM:
生成DOM:
4)eLen近景摄影测量软件
1 eLen直接线性变换和计算结果
a 河海相片
取1,2,4,6,8,10,12,13,15,18,21,22作为控制点,3,5,7,11,14,19作为检查点进行线性变换计算:
计算结果为
精度成果为
b 文天相片
取3,6,8,10,11,12,13,15,18,19,22作为控制点,1,2,4,5,7,14作为检查点进行线性变换计算:
计算结果
精度成果为
2 eLen生成的建筑物立面图
通过细部点量算并进行里面图绘制,得立面图成果
a 河海
b 文天
5) VirtuoZo数字摄影测量系统实习
1 绝对定向结果
0.99993534790.0113709817-0.0000264764
-0.01137091110.99993355260.0018954787
0.0000480280-0.00189505510.9999982032
0.99999435810.0027695141-0.0019009383
-0.00275294760.99995868710.0086628683
0.0019248517-0.00865758620.9999606698
14920.245611531.89653229.1909
16293.425711523.12713240.5415
0.000026-0.001895-0.011371
0.001901-0.008663-0.002753
No.dXdYdZ
21550.051517-0.062275-0.035079
2156-0.0711450.028086-0.010773
6156-0.060596-0.045068-0.000454
11560.046288-0.0891240.025003
11550.0296690.0565560.000280
61550.0042670.1118260.021023
mx=0.049038 my=0.071116
mxy=0.086384 mz=0.020058
2 测绘的地形矢量及DEM
6)遥感专题制图
1 几何校正成果
选择几何校正模型为多项式,多项式次数为2,共采集12个控制点,4个检核点。
2 拼接镶嵌成果图
3 空间建模
图形模型为:
采用普间相关法提取水体,各模块设置分别如下:
得分类栅格图及矢量图:
由此分类结果可知,分类效果一般,秦淮河未能很好地提取出来。
5 监督和非监督分类
监督分类
非监督分类
7)程序设计
Option Explicit
Dim m#,H#'航摄比例尺、航高
Dim x0, y0,f'内方位元素
Dim Xt#(1 To 4), Yt#(1 To 4), Zt#(1 To4)'控制点地面测量坐标(控制测量得到)
Dim Xtp#(1 To 4), Ytp#(1 To 4), Ztp#(1 To4)'控制点地面摄影测量坐标
Dim Xcl#(1 To 4), Ycl#(1 To 4), Xcr#(1 To 4),Ycr#(1 To4)'控制点左片坐标和右片坐标
Dim n#, Xl#(), Yl#(), Xr#(),Yr#()'待测点像片坐标(立体量测得到)
Dim X#(), Y#(),Z#()'待测点地面测量坐标(前方交会结果)
Dim fai_L#, omg_L#, kap_L#, XsL#, YsL#,ZsL#'左片外方位元素
Dim fai_R#, omg_R#, kap_R#, XsR#, YsR#,ZsR#'右片外方位元素
Dim Bx#, By#,Bz#'基线分量
Dim R_L#(1 To 3, 1 To 3), R_R#(1 To 3, 1 To3)'左右像片的旋转矩阵
Const RU = 206265
'显示“关于”窗体的过程
'Private Sub mnuAbout_Click()
'frmAbout.Show
'End Sub
'输入控制点地面坐标,供空间后方交会使用
Private Sub mnuInputGCP_Click()
DimstrTemp As String, dblTemp As Double
CDg1.Filter = "Text Files(*.TXT)|*.txt|All Files(*.*)|*.*"
CDg1.DialogTitle = "读取已知数据"
CDg1.FileName ="":CDg1.Action = 1
IfCDg1.FileName = "" Then Exit Sub
OpenCDg1.FileName For Input As #1
Line Input #1,strTemp'读第一行题头信息
txtShow.Text = txtShow.Text & vbCrLf& strTemp & vbCrLf
'读入控制点地面坐标
Input #1, Xt(1), Yt(1), Zt(1)
Input #1, Xt(2), Yt(2), Zt(2)
Input #1, Xt(3), Yt(3), Zt(3)
Input #1, Xt(4), Yt(4), Zt(4)
'显示读入的控制点地面坐标
txtShow.Text = txtShow.Text & Xt(1)& " , " & Yt(1) & ", " & Zt(1) & vbCrLf
txtShow.Text = txtShow.Text & Xt(2)& " , " & Yt(2) & ", " & Zt(2) & vbCrLf
txtShow.Text = txtShow.Text & Xt(3)& " , " & Yt(3) & ", " & Zt(3) & vbCrLf
txtShow.Text = txtShow.Text & Xt(4)& " , " & Yt(4) & ", " & Zt(4) & vbCrLf
Close#1
End Sub
'输入像片有关信息,供空间后方交会计算使用
Private Sub mnuInputInfo_Click()
DimstrTemp As String, dblTemp As Double
CDg1.Filter = "Text Files(*.TXT)|*.txt|All Files(*.*)|*.*"
CDg1.DialogTitle = "读取已知数据"
CDg1.FileName ="":CDg1.Action = 1
IfCDg1.FileName = "" Then Exit Sub
OpenCDg1.FileName For Input As #1
Line Input #1,strTemp'读第一行题头信息
txtShow.Text = txtShow.Text & vbCrLf& strTemp
Input #1, m,H'读入航摄比例尺和航高
txtShow.Text = txtShow.Text & vbCrLf& "航摄比例尺1:"& m & " ,航高:"& H & vbCrLf
Input #1, x0, y0,f'读入内定向元素
txtShow.Text = txtShow.Text & vbCrLf& "内方位元素" & x0& y0 & f &vbCrLf
'读入控制点像片坐标:暂存在左片有关数组里
Input #1, Xcl(1), Ycl(1), Xcl(2), Ycl(2), Xcl(3), Ycl(3), Xcl(4),Ycl(4)
txtShow.Text = txtShow.Text & Xcl(1)& " , " & Ycl(1) &vbCrLf
txtShow.Text = txtShow.Text & Xcl(2)& " , " & Ycl(2) &vbCrLf
txtShow.Text = txtShow.Text & Xcl(3)& " , " & Ycl(3) &vbCrLf
txtShow.Text = txtShow.Text & Xcl(4)& " , " & Ycl(4) &vbCrLf
Close#1
End Sub
'输入左片方位元素
Private Sub mnuInputLeft_Click()
DimstrTemp As String, dblTemp As Double
CDg1.Filter = "Text Files(*.TXT)|*.txt|All Files(*.*)|*.*"
CDg1.DialogTitle = "读取已知数据"
CDg1.FileName ="":CDg1.Action = 1
IfCDg1.FileName = "" Then Exit Sub
OpenCDg1.FileName For Input As #1
Line Input #1,strTemp'读第一行题头信息
txtShow.Text = txtShow.Text & vbCrLf& strTemp & vbCrLf
Input #1, x0, y0,f'读入内定向元素
txtShow.Text = txtShow.Text & "内方位元素"& x0 & y0 & f& vbCrLf
Input #1, fai_L, omg_L, kap_L'左片外方位元素的三个角元素
txtShow.Text = txtShow.Text &"左片外方位角元素" & fai_L &" , " & omg_L & " , "& kap_L & vbCrLf
Input #1, XsL, YsL,ZsL'左片外方位元素的三个线元素
txtShow.Text = txtShow.Text &"左片外方位线元素" & XsL & ", " & YsL & " , " &ZsL & vbCrLf
Close#1
End Sub
'输入右片方位元素
Private Sub mnuInputRight_Click()
DimstrTemp As String, dblTemp As Double
CDg1.Filter = "Text Files(*.TXT)|*.txt|All Files(*.*)|*.*"
CDg1.DialogTitle = "读取已知数据"
CDg1.FileName ="":CDg1.Action = 1
IfCDg1.FileName = "" Then Exit Sub
OpenCDg1.FileName For Input As #1
Line Input #1,strTemp'读第一行题头信息
txtShow.Text = txtShow.Text & vbCrLf& strTemp & vbCrLf
Input #1, x0, y0,f'读入内定向元素
txtShow.Text = txtShow.Text &"右片内方位元素" & x0 & y0& f & vbCrLf
Input #1, fai_R, omg_R, kap_R'右片外方位元素的三个角元素
txtShow.Text = txtShow.Text &"右片外方位角元素" & fai_R &" , " & omg_R & " , "& kap_R & vbCrLf
Input #1, XsR, YsR,ZsR'右片外方位元素的三个线元素
txtShow.Text = txtShow.Text &"右片外方位线元素" & XsR & ", " & YsR & " , " &ZsR & vbCrLf
Close#1
End Sub
'保存空间后方交会计算结果,为空间前方交会提供数据:其中内方位元素转录自像片信息文件
Private Sub mnuSaveR_Click()
CDg1.Filter = "Text Files(*.TXT)|*.txt|All Files(*.*)|*.*"
CDg1.DialogTitle = "保存计算结果"
CDg1.FileName ="":CDg1.Action = 2
IfCDg1.FileName = "" Then Exit Sub
OpenCDg1.FileName For Output As #1
Print #1, "像片的方位元素:"
Print #1, x0; ","; y0; ","; f
Print #1, fai_L; ","; omg_L; ","; kap_L; ","
Print #1, XsL; ","; YsL; ","; ZsL
Close#1
End Sub
'空间后方交会的计算过程
Private Sub mnuSpcResec_Click()
Dimi#'循环变量
'地面测量坐标-->地面摄影测量坐标:这里采用最简单的方法,即原点不动,x,y互换
For i = 1To 4
Xtp(i) = Yt(i): Ytp(i) = Xt(i): Ztp(i) = Zt(i)
Nexti
'准备像片片未知数的初值
fai_L =1: omg_L = 0: kap_L = 0
ZsL = m *f: XsL = 0: YsL = 0
For i = 1To 4
XsL = XsL + Xtp(i): YsL = YsL + Ytp(i)
Nexti
XsL = XsL/ 4: YsL = YsL / 4
'调用后方交会过程求解像片片外方位元素
subSpaceResection fai_L, omg_L, kap_L, XsL, YsL, ZsL, Xcl, Ycl,0.0004
'显示计算结果
txtShow.Text = txtShow.Text &"空间后方交会结果:" & vbCrLf
txtShow.Text = txtShow.Text &"三个角元素:" & Str(fai_L)& " , " & Str(omg_L)& " , " & Str(kap_L)& vbCrLf
txtShow.Text = txtShow.Text &"三个线元素:" & Str(XsL) &" , " & Str(YsL) & " , "& Str(ZsL) & vbCrLf
End Sub
'退出程序的过程
Private Sub mnuExit_Click()
End
End Sub
'读取待测点像片坐标
Private Sub mnuInput_Click()
DimstrTemp As String, dblTemp As Double
CDg1.Filter = "Text Files(*.TXT)|*.txt|All Files(*.*)|*.*"
CDg1.DialogTitle = "读取已知数据"
CDg1.FileName = ""
CDg1.Action = 1
IfCDg1.FileName = "" Then Exit Sub
OpenCDg1.FileName For Input As #1
Line Input #1,strTemp'读第一行题头信息
txtShow.Text = txtShow.Text & vbCrLf& strTemp
Input #1,n'读入待测点个数
txtShow.Text = txtShow.Text &"待测点个数:" & n &vbCrLf
Dim i#
For i = 1 To n
Input #1, Xl(i), Yl(i), Xr(i), Yr(i)
txtShow.Text = txtShow.Text & Xl(i)& " , " & Yl(i) &Xr(i) & " , " & Yr(i)& vbCrLf
Next i
Close#1
Dim a0#,a1#, a2#, b0#, b1#, b2#, tempX#, tempY#
CDg1.Filter = "定向参数文件(*.io)|*.io|AllFiles(*.*)|*.*"
'输入第一张像片的定向参数数据++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CDg1.DialogTitle = "读取第一张像片的定向参数"
CDg1.FileName ="":CDg1.Action = 1
GetIOCDg1.FileName, a0, a1, a2, b0, b1, b2
'改化左片像点坐标
For i = 1To n
tempX = Xl(i): tempY = Yl(i)
Xl(i) = a0 + a1 * tempX + a2 * tempY
Yl(i) = b0 + b1 * tempX + b2 * tempY
'txtShow.Text = txtShow.Text & vbCrLf& x1(i) & " "& y1(i) & " "& "x=" & Str(Format(x(i),"0.000000")) & " , y=" &Str(Format(y(i), "0.000000"))
Nexti
'输入第二张像片的定向参数数据++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CDg1.DialogTitle = "读取第二张像片的定向参数"
CDg1.FileName ="":CDg1.Action = 1
GetIOCDg1.FileName, a0, a1, a2, b0, b1, b2
'改化左片像点坐标
For i = 1To n
tempX = Xr(i): tempY = Yr(i)
Xr(i) = a0 + a1 * tempX + a2 * tempY
Yr(i) = b0 + b1 * tempX + b2 * tempY
'txtShow.Text = txtShow.Text & vbCrLf& x1(i) & " "& y1(i) & " "& "x=" & Str(Format(x(i),"0.000000")) & " , y=" &Str(Format(y(i), "0.000000"))
Nexti
End Sub
'保存前方交会计算结果的过程
Private Sub mnuSave_Click()
CDg1.Filter = "Text Files(*.TXT)|*.txt|All Files(*.*)|*.*"
CDg1.DialogTitle = "保存计算结果"
CDg1.FileName = ""
CDg1.Action = 2
IfCDg1.FileName = "" Then Exit Sub
OpenCDg1.FileName For Output As #1
Write #1, txtShow.Text
Close#1
'Shell"C:WINdowsNOTEPAD.EXE " & CDg1.FileName,vbNormalFocus
End Sub
'空间前方交会计算过程spaceintersection
Private Sub mnuSpcIntersec_Click()
'求方向余弦(旋转矩阵)和基线分量
subGetRfai_L, omg_L, kap_L, R_L
subGetRfai_R, omg_R, kap_R, R_R
'求基线分量
Bx = XsR- XsL: By = YsR - YsL: Bz = ZsR - ZsL
'逐点进行空间前方交会
Dim i#,X_L#, Y_L#, Z_L#, X_R#, Y_R#,Z_R#'循环变量,像空辅助坐标
Dim NL#,NR#'点投影系数
ReDim X(1To n), Y(1 To n), Z(1 To n)
txtShow.Text = txtShow.Text &"空间前方交会计算结果:" & vbCrLf
For i = 1To n
'求像空辅助坐标
X_L = R_L(1, 1) * Xl(i) + R_L(1, 2) * Yl(i) - R_L(1, 3) *f '左片
Y_L = R_L(2, 1) * Xl(i) + R_L(2, 2) * Yl(i) - R_L(2, 3) * f
Z_L = R_L(3, 1) * Xl(i) + R_L(3, 2) * Yl(i) - R_L(3, 3) * f
X_R = R_R(1, 1) * Xr(i) + R_R(1, 2) * Yr(i) - R_R(1, 3) *f '右片
Y_R = R_R(2, 1) * Xr(i) + R_R(2, 2) * Yr(i) - R_R(2, 3) * f
Z_R = R_R(3, 1) * Xr(i) + R_R(3, 2) * Yr(i) - R_R(3, 3) * f
'求点投影系数
NL = (Bx * Z_R - Bz * X_R) / (X_L * Z_R - X_R * Z_L)
NR = (Bx * Z_L - Bz * X_L) / (X_L * Z_R - X_R * Z_L)
'求地面摄影测量坐标
X(i) = (NL * X_L + NR * X_R + XsL + XsR) / 2
Y(i) = (NL * Y_L + NR * Y_R + YsL + YsR) / 2
Z(i) = (NL * Z_L + NR * Z_R + ZsL + ZsR) / 2
'求地面测量坐标:把地面摄影测量坐标换回地面测量坐标——把x,y互换回来
Dimtemp#'交换辅助变量
temp = X(i): X(i) = Y(i): Y(i) = temp
'显示计算结果
txtShow.Text = txtShow.Text & "第"& Str(i) &"个待测点的地面坐标:" & X(i) &" , " & Y(i) & " , "& Z(i) & vbCrLf
Nexti
End Sub
'根据输入的旋转角计算旋转矩阵:
'输入旋转角fai、omg、kap
'|a1 a2 a3 | |R11 R12 R13|
'输出旋转矩阵R=|b1 b2 b3 |=|R21 R22R23|
'|c1 c2 c3 | |R31 R32 R33|
Public Sub subGetR(fai#, omg#, kap#, R)
DimcosFai#, sinFai#, cosOmg#, sinOmg#, cosKap#, sinKap#
cosFai =Cos(fai): sinFai = Sin(fai)
cosOmg =Cos(omg): sinOmg = Sin(omg)
cosKap =Cos(kap): sinKap = Sin(kap)
R(1, 1) =cosFai * cosKap - sinFai * sinOmg * sinKap
R(1, 2) =-cosFai * sinKap - sinFai * sinOmg * cosKap
R(1, 3) =-sinFai * cosOmg
R(2, 1) =cosOmg * sinKap
R(2, 2) =cosOmg * cosKap
R(2, 3) =-sinOmg
R(3, 1) =sinFai * cosKap + cosFai * sinOmg * sinKap
R(3, 2) =-sinFai * sinKap + cosFai * sinOmg * cosKap
R(3, 3) =cosFai * cosOmg
End Sub
'空间后方交会的通用过程
Public Sub subSpaceResection(fai#, omg#, kap#,Xs#, Ys#, Zs#, X#(), Y#(), esp#)
Dim dX#(1To6)'空间后方交会中的未知数向量,对应6个外方位元素的改正数
Dim A#(1To 8, 1 To6)'误差方程的系数矩阵
Dim L#(1To8)'误差方程的常数向量
Dim R#(1To 3, 1 To3)'旋转矩阵
Dim i%,bLoop As Boolean
Do
subGetR fai, omg, kap,R'计算旋转矩阵
'组成误差方程的系数矩阵
For i = 1 To 4
'A(2 * i - 1, 1) = -f / H * RU: A(2 * i - 1, 2) = 0: A(2 * i - 1, 3)= -X(i) / H * RU
'A(2 * i - 1, 4) = -f * (1 + X(i) * X(i) / (f * f)): A(2 * i - 1, 5)= -X(i) * Y(i) / f: A(2 * i - 1, 6) = Y(i)
'A(2 * i, 1) = 0: A(2 * i, 2) = -f / H * RU: A(2 * i, 3) = -Y(i) / H* RU
'A(2 * i, 4) = -X(i) * Y(i) / f: A(2 * i, 5) = -f * (1 + Y(i) * Y(i)/ (f * f)): A(2 * i, 6) = -X(i)
A(2 * i - 1, 1) = (R(1, 1) * f + R(1, 3) * X(i)) / H * RU: A(2 * i- 1, 2) = (R(2, 1) * f + R(2, 3) * X(i)) / H * RU: A(2 * i - 1, 3)= (R(3, 1) * f + R(3, 3) * X(i)) / H * RU
A(2 * i - 1, 4) = Y(i) * Sin(omg) - (X(i) * (X(i) * Cos(kap) - Y(i)* Sin(kap)) / f + f * Cos(kap)) * Cos(omg)
A(2 * i - 1, 5) = -f * Sin(kap) - X(i) * (X(i) * Sin(kap) + Y(i) *Cos(kap)) / f
A(2 * i - 1, 6) = Y(i)
A(2 * i, 1) = (R(1, 2) * f + R(1, 3) * Y(i)) / H * RU: A(2 * i, 2)= (R(2, 2) * f + R(2, 3) * Y(i)) / H * RU: A(2 * i, 3) = (R(3, 2) *f + R(3, 3) * Y(i)) / H * RU
A(2 * i, 4) = -X(i) * Sin(omg) - (X(i) * (X(i) * Cos(kap) - Y(i) *Sin(kap)) / f - f * Sin(kap)) * Cos(omg)
A(2 * i, 5) = -f * Cos(kap) - Y(i) * (X(i) * Sin(kap) + Y(i) *Cos(kap)) / f
A(2 * i, 6) = -X(i)
Next i
'计算误差方程的常数项
Dim Tx#, Ty#, Tz#, t#
'Debug.Print "to show the L matrix:"
For i = 1 To 4
Tx = Xtp(i) - Xs: Ty = Ytp(i) - Ys: Tz = Ztp(i) - Zs
t = R(1, 3) * Tx + R(2, 3) * Ty + R(3, 3) * Tz
L(2 * i - 1) = X(i) + f * (R(1, 1) * Tx + R(2, 1) * Ty + R(3, 1) *Tz) / t
L(2 * i) = Y(i) + f * (R(1, 2) * Tx + R(2, 2) * Ty + R(3, 2) * Tz)/ t
'Debug.Print L(2 * i - 1)
'Debug.Print L(2 * i)
Next i
'解算误差方程:调用有关的函数
Dim P#(1 To 8, 1 To 8)
For i = 1 To 8
P(i, i) = 1
Next i
InAdjust A, P, L,dX'调用间接平差通用过程解算
'收敛判断:0.0004对应于0.1秒
bLoop = False
For i = 1 To 3
If Abs(dX(i)) > esp Then bLoop = True
Next i
For i = 4 To 6
If Abs(dX(i)) > esp * 1000 Then bLoop = True
Next i
'计算外方位元素的结果
fai = fai + dX(1): omg = omg + dX(2): kap = kap + dX(3)
Xs = Xs + dX(4): Ys = Ys + dX(5): Zs = Zs + dX(6)
LoopWhile bLoop
End Sub
'空间前方交会的通用过程
Public Sub subSpaceIntersection()
End Sub
'获取定向参数
Public Sub GetIO(strFileName As String, a0#,a1#, a2#, b0#, b1#, b2#)
DimstrTemp As String, iTemp1 As Integer, iTemp2 As Integer
OpenCDg1.FileName For Input As #1
While Not EOF(1)
Line Input #1, strTemp
If InStr(strTemp, "a0=") > 0 Then
iTemp1 = InStr(strTemp, "="): iTemp2 = InStr(strTemp, ",")
a0 = Val(Mid(strTemp, iTemp1 + 1, iTemp2 - iTemp1))
strTemp = Right(strTemp, Len(strTemp) - iTemp2)
'txtShow.Text = txtShow.Text & vbCrLf& "a0=" & Str(sa0)
End If
If InStr(strTemp, "a1=") > 0 Then
iTemp1 = InStr(strTemp, "="): iTemp2 = InStr(strTemp, ",")
a1 = Val(Mid(strTemp, iTemp1 + 1, iTemp2 - iTemp1))
strTemp = Right(strTemp, Len(strTemp) - iTemp2)
'txtShow.Text = txtShow.Text & vbCrLf& "a1=" & Str(sa1)
End If
If InStr(strTemp, "a2=") > 0 Then
iTemp1 = InStr(strTemp, "="): iTemp2 = InStr(strTemp, ",")
a2 = Val(Mid(strTemp, iTemp1 + 1, iTemp2 - iTemp1))
strTemp = Right(strTemp, Len(strTemp) - iTemp2)
'txtShow.Text = txtShow.Text & vbCrLf& "a2=" & Str(sa2)
End If
If InStr(strTemp, "b0=") > 0 Then
iTemp1 = InStr(strTemp, "="): iTemp2 = InStr(strTemp, ",")
b0 = Val(Mid(strTemp, iTemp1 + 1, iTemp2 - iTemp1))
strTemp = Right(strTemp, Len(strTemp) - iTemp2)
'txtShow.Text = txtShow.Text & vbCrLf& "b0=" & Str(sb0)
End If
If InStr(strTemp, "b1=") > 0 Then
iTemp1 = InStr(strTemp, "="): iTemp2 = InStr(strTemp, ",")
b1 = Val(Mid(strTemp, iTemp1 + 1, iTemp2 - iTemp1))
strTemp = Right(strTemp, Len(strTemp) - iTemp2)
'txtShow.Text = txtShow.Text & vbCrLf& "b1=" & Str(sb1)
End If
If InStr(strTemp, "b2=") > 0 Then
iTemp1 = InStr(strTemp, "="):iTemp2 = InStr(strTemp, ",")
b2 = Val(Mid(strTemp, iTemp1 + 1, iTemp2 - iTemp1))
strTemp = Right(strTemp, Len(strTemp) - iTemp2)
'txtShow.Text = txtShow.Text & vbCrLf& "b2=" & Str(sb2)
End If
Wend
Close#1
End Sub
Private Sub txtShow_Change()
End Sub
另附航片调绘图片成果(文天学院航片调绘图20120110)
三、 实习总结
这次持续三周的摄影测量与遥感实习让我对这门学科有了更深一步的认识。通过这么实习,我不仅基本了解了摄影测量的整个生产过程以及遥感图像处理方面的相关手段,学会了VirtuoZo数字摄影测量系统的基本操作,更重要的是加深了对摄影测量与遥感相关知识的理解,学会在用软件进行操作时要沉下心来处理图像。
在进行建筑物立面控制测量时,可能由于很长时间没有进行测量实习,其中的全站仪操作忘了一些操作步骤造成小组测量两次,不过还好,小组人很团结,很快就测量完成。
后面的两周进行的是内业实习,主要是对eLen、VirtuoZo、ERDAS IMAGINE
的使用和程序编程。我们首先进行的是eLen航空摄影测量软件的使用,进行内定向、相对定向、绝对定向、空间后交前交、立体匹配和DEM、DOM的生成。内定向相对比较好操作,只要细心的去找到点便可。空间后交需要手动确定控制点位置,这便增加了难度,加上像片分辨率较低等的外在因素的影响,导致定向误差总是比较大,但是由于前面操作的经验还是比较好的完成了。后面进行立体匹配时,由于选错了一些点导致生成的DEM凸显许多尖突。之后通过删点和适量的增加一些点,消除了尖突并顺利生成了DEM 和 DOM。
接下来进行eLen近景摄影测量软件操作时,我们通过在后面的线性变换计算发现一些点不符合,便去前面把不符的点删除掉。经过数次尝试我们才得到了满意的结果,为后面的绘图打下了基础。我们做了两套,一套是河海的相机拍摄的,另一组是文天的相机拍摄的。由于拍摄的原因,文天的相机拍的相片分辨率不高为绘图带来了很大的麻烦。在进行一定的取舍后顺利完成了立面图的绘制。
相对前面的软件操作来说 VirtuoZo的操作简单,自动化程度很高。半天就完成了。后面主要进行的是遥感专题制图实验。对于几何校正、监督分类等我们在学遥感时就已经大致学过。专家分类和空间建模对我们来说则是新的内容。在实习指导书及网上相关内容指导下,运用谱间相关法建立了空间模型,得到了较好的水体提取结果。当然,贯穿于这三周的还有编程。选择空间后方交会作为方向。
这次实习让我懂得了一个词:耐心。在用软件进行操作时,需要的就是耐心和运用相关的所学的知识,由此知道上课的重要性。以后上课要多听课,对于不懂的问题要仔细探究一下。