作者:小猛子
博客:www.wangmeng.info
文章总目录
https://bbs.dji.com/thread-152365-1-1.html
【请从头开始阅读,千万不要半路插队,会看懵逼的。】
在前言里我做过假设,希望读者是具备测绘基础和飞行经验的,因此,我不在重复谈具体怎么去飞。
在这篇里,我讲一下Altizure和Pix4D两个地面站的使用心得。
一、地面站小心得
1、平板系统
iOS是唯一的选择。虽然,这个板子夏天过热冬天怕冷,但是,它对航线控制的颗粒度比安卓的要精细,功能、细节上也更为完善。因此,在安卓地面站没有赶上iOS以前,iPAD是唯一的选择。
2、手工暂停拍照
现阶段精灵系列的飞控有99个航点的限制,为了大面积拍照,一般地面站都是以定时模式去拍摄。不知道具体原因,有时暂停任务返航时,飞机人仍旧继续拍照,产生很多任务外废片。
3、fanqiang
谷歌的卫星图片做的比其他几家要细致的多,如果你个人飞行时喜欢依赖地图拖拉航线,那么fanqiang也是没得选的。
4、火星坐标/偏移
一般地面站的地图是没有偏移或者带有纠正开关,建议飞行前去比较一下飞机的位置是否正确,以免手托航线画错位置。因为火星坐标下的经纬度是错误的,最终拍摄的图片和你在地图里看到的根本不是一个东西。可靠的基准参考就是PC版本谷歌官方的Google Earth Pro。
5、计算坐标
如果有能力计算坐标尽量去算,计算出来的坐标我的个人经验是可以极大减少成本,以实战项目为例我是省30%。【我个人计算航线与某专业无人机产商的地面站自动计算的航线做比较】
6、Altizure、Pix4Dcapture、GS Pro地面站规划特点
Altizure地面站只支持矩形规划航线,也因此大家看到之前我贴图的航线都是方方正正的。
Pix4Dcapture支持任何多边形,但是,倾斜摄影需要自己调整航线方可实现。
DJI GS Pro 需要支持320元方可导入Kml文件,且不支持iOS上的文件管理器读取文稿,故而,我只是用来飞构架航线。
上述三款地面站,只有DJI GS Pro有保修,使用Altizure和Pix4Dcapture出了问题得自己扛。
7、返航高度略高过航高。一般航高是安全的,返航高度设置高一些更主要目的是为挑废片做准备。
二、飞后内业处理
飞行完毕后要对飞行质量进行检查,一般是计算照片的重叠率和倾角弯曲度剔除坏片。用大疆精灵没必要这么复杂,先挑废片再挑坏片,之后把好片的exif提取出来制作成一个kml,在谷歌地球中配合测区范围线kml看一下有没有漏的即可。
挑坏片的方法如下:
1、提取DJI POS
2、借助Excel分析数据
基本思路是找出高度和yaw等轴变化异常的片子,结合照片挑出废片。
这一步的要点是使用金山WPS ET表格而不要用微软Office Excel。文件本身我还是喜欢叫Excel表格,但是这个步骤的软件是金山ET、金山ET、金山ET!
正确的度分秒是:° ' " 【请复制保存备用】
将挑好片的Excel表格文件另存一下。
3、剔除废片
别着急,我刚才是没有剔除废片,因为来回切换窗口文件多人就太累,我有个更好的方法。
这个步骤需要在Excel中操作,或者,你的ET有VBA编程功能也可以在ET里做,我是用的Excel。
将元数据编辑器导出的excel文件的A列文件名复制到刚刚挑好片的Excel文件的A列末尾,而后选中A列过滤重复值【数据 - 删除重复值】,剩下的就是刚刚被删除的文件名。
为了安心你可以比较一下抛开标题行不计, 剩下的文件行数 + 挑片exel文件行数 是否等于 原始导出csv文件行数。如果相等肯定没错,如果不等查查看哪里出错了。
确认正确之后,运行下面的VBA脚本:
[code]
Sub 挑片()
' 适合源文件夹及其子文件夹(多层文件夹)
Dim a$(), b$(), n&, i%, j&, fso1 As Object, fol1 As Object, fol2 As Object, arr, pa1$, pa2$
Set fol1 = CreateObject("Shell.Application").BrowseForFolder(0, "航片文件夹", 0)
If Not fol1 Is Nothing Then pa1 = fol1.Items.Item.Path + "\" Else MsgBox "航片文件夹": Exit Sub
Set fol2 = CreateObject("Shell.Application").BrowseForFolder(0, "废片文件夹", 0)
If Not fol2 Is Nothing Then pa2 = fol2.Items.Item.Path + "\" Else MsgBox "废片文件夹": Exit Sub
Set fso1 = CreateObject("Scripting.FileSystemObject")
Call Fso(pa1, a, b, n)
arr = Range("a2:a" & Range("a" & Rows.Count).End(xlUp).Row)
For i = 1 To UBound(arr)
For j = 1 To n
If b(j) Like arr(i, 1) & "*" Then
If Not fso1.FileExists(pa2 & "" & b(j)) Then
fso1.moveFile a(j), pa2 & ""
Exit For
End If
End If
Next
Next
MsgBox "挑片完毕!"
End Sub
Sub Fso(myPath$, arr$(), brr$(), n&, Optional ef$ = "*.*")
Dim fld As Object, f As Object, fd As Object
Set fld = CreateObject("Scripting.FileSystemObject").GetFolder(myPath)
For Each f In fld.Files
If f.Name Like ef Then
n = n + 1
ReDim Preserve arr(1 To n)
ReDim Preserve brr(1 To n)
arr(n) = f.Path: brr(n) = f.Name
End If
Next
For Each fd In fld.SubFolders
Call Fso(fd.Path, arr, brr, n, ef)
Next
End Sub
[/code]
这样可以轻松将所有挑出的片子,移动到一个单独的文件夹中。
【这种不计算挑片的方法存在一个缺点,暨定时拍照时拐弯处产生的废片没有剔除。
如果有耐心挑,可以在ET里分析下照片的航向。一般遇到好内业,这种片子的影响不大。】
4、批量改名
为避免个别后处理软件挑重复文件名,因此,需要将文件统一命名,方法如下:
如果是多镜头拍摄的片子,建议重命名时,带着相机位置,可以这样操作。
重命名好了,效果如下:
我在这里介绍的2个小程序和VBA均支持嵌套目录,工作效率和准确率会大大提高。
挑坏片、照片转kml、补飞就不谈了,都是最基本的东西。
以上步骤处理完成之后,可以打包发给数据处理内业,正式进入内业处理流程。