ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

无人机测绘航线生成算法全解析:从GSD、重叠率到曝光点规划

无人机测绘航线生成算法全解析:从GSD、重叠率到曝光点规划 算好一条航线比飞好一次任务更重要。这句话是我入行时老师傅跟我说的这几年自己带队做测绘项目跑过平地、丘陵、矿区也翻过车回头看这句话是真没水分。航线设计得好外业时间省一半内业空三少返工航线设计得糙你飞控再稳、相机再贵出来的模型照样破洞、拉花、精度不达标。这篇文章就专门聊聊无人机测绘航线生成算法这件事。我会从任务类型划分、核心参数怎么定、算法怎么实现到实际飞行中踩过的坑一步一步拆开讲。内容更适合正在做测绘项目、或者准备自己写航线规划代码的朋友小白也能看但最好手里已经飞过几次飞机知道正射和倾斜是咋回事。1. 测绘任务类型决定了航线算法的走向航线生成不是套一个模板就能走天下的。不同测绘任务对影像的要求完全不同算法设计的出发点也就不一样。我一般把航线规划分成三大类每一类的生成逻辑都有本质区别。1.1 二维正射影像追求覆盖率与重叠度的平衡二维正射是最常见的任务目标就是让相机垂直往下拍把整个测区铺满最后拼出一张没有透视畸变的平面影像图。这类航线算法的核心约束只有两个覆盖率和重叠率。覆盖率指航线要完全覆盖测区边界不能有漏拍重叠率指相邻影像之间必须有足够的公共区域否则空三解算时特征点匹配不上。正射航线的生成思路其实是很经典的“扫地机器人路径”用一组平行的直线扫描整个多边形区域。但这里面有两个关键点容易被新手忽略一是扫描线的方向二是航线超出边界的距离。扫描线方向不是随便定的。它决定了转弯次数。同样一块地你让航线横着扫跟竖着扫转弯次数可能相差百分之四五十。而无人机在转弯时是不拍照的转弯越多无效飞行时间越长电池消耗越大。所以算法上需要做一个“主方向优化”让航线尽量沿着测区的长边方向排列同时在考虑地形起伏的情况下适当调整角度来减少高程突变导致的重叠率不足。航线外扩距离也是大坑。很多第一次做正射的人航线刚好覆盖测区边界结果边缘影像的重叠率不够空三解算后模型边缘出现拉花或者空洞只能重新补飞。正常做法是根据飞行高度和相机视场角计算出一个合适的缓冲区让航线外扩到测区外一定距离。这个距离的算法我后面实操部分会详细讲。1.2 三维倾斜测绘多相机视角下的航线加密策略倾斜测绘是现在的主流尤其是城市级建模。飞机上挂一个五镜头相机一个下视加四个倾斜或者用一个单镜头相机在不同角度飞好几遍。倾斜测绘对航线的要求跟正射完全不同。最核心的区别是正射航线只需要覆盖测区而倾斜航线需要“围住”测区。什么意思呢就是你要让测区内的每一栋建筑从四周和头顶都能被拍到。如果只按正射航线飞楼房的侧面是完全没有影像的建出来的模型只有楼顶墙面全是空洞。倾斜航线的生成算法因此要复杂很多。常见的有环绕航线就是让无人机绕着测区边缘飞行相机对着测区中心倾斜拍摄把建筑立面拍全还有井字形交叉航线在正射航线的基础上再生成一组垂直方向的航线让下视和倾斜镜头都能覆盖到更多角度。倾斜摄影还有一个参数组合问题下视重叠率通常设到百分之八十以上倾斜镜头的旁向重叠率有时甚至要设到百分之九十。这个数据的代价就是航线数量翻倍、飞行时间拉长所以算法里必须有“重叠率优化”在满足建模精度要求的前提下把重叠率压低到刚好够用的水平而不是一味往高了设。1.3 带状航线与仿地飞行带状航线主要用在电力巡检、公路测量、河道测绘这些场景。测区是个狭长的条带如果按普通面状航线去飞大量航线会铺到没用的区域浪费飞行时间。带状航线的算法核心是“中心线偏移”先提取测区的中心线然后根据测区宽度计算需要几条平行航线再沿着中心线的方向把航线铺出去。对于转弯半径的处理也比较特殊带状航线通常飞行距离长转弯处的高精度定位丢失更容易导致重叠不足所以算法要自动生成“鱼头弯”或者梨形转弯轨迹让飞机在转弯时保持平滑。仿地飞行则是针对地形起伏大的测区。如果地面高差超过一定阈值固定高度的航线会导致低处重叠率过高、高处重叠率不足。仿地航线的算法需要加载数字高程模型数据让航线高度随地形变化保持相对地面的高度恒定。这个对气压计和雷达测距的依赖比较大算法本身的复杂度主要集中在高程数据处理和航线点的插值平滑上。2. 航线生成算法的核心参数与计算逻辑你打开任何一个航线规划软件看到的无非就是那几个参数飞行高度、速度、重叠率、云台角度。但真正到算法层面这几个参数是互相耦合的改一个就要连带改其他好几个。我把这些参数的计算逻辑拆开讲清楚。2.1 摄影基线与曝光点间距计算航线生成算法最底层的逻辑是计算出每两张照片之间的曝光点距离这样才能在航线上按距离打点。这个距离叫“摄影基线”它的计算公式不算复杂但很多人搞不清来龙去脉。先看地面采样距离这是整个计算的起点。地面采样距离指一个像素对应地面多少厘米它由飞行高度、相机焦距、像元尺寸共同决定。公式是地面采样距离等于飞行高度乘以像元尺寸除以焦距。举个例子我常用的禅思P1相机像元尺寸是4.4微米焦距是35毫米。如果要求地面采样距离达到2厘米那飞行高度就是0.02乘以0.035再除以0.0000044算出来约159米。这个159米就是算法里要填的飞行高度。有了地面采样距离就能算影像覆盖的地面范围。传感器宽度除以焦距乘以飞行高度得到航线方向的地面覆盖长度传感器高度除以焦距乘以飞行高度得到垂直于航线方向的地面覆盖宽度。然后重叠率就派上用场了。曝光点间距等于航线方向覆盖长度乘以一减去航向重叠率。比如说航线方向覆盖长度是120米航向重叠率百分之八十那曝光点间距就是24米。相邻航线间距等于垂直方向覆盖宽度乘以一减去旁向重叠率同理计算。这些计算说穿了就是初中几何的相似三角形但难点在于不同相机参数不同甚至同一款相机换了镜头就要重新算而且地面有起伏时实际覆盖范围会变化算法里还要加上高程修正系数。所以我在项目里从来不用软件默认的飞行高度都是先按目标地面采样距离反推再设置重叠率最后把软件里自动生成的曝光点间距跟手算结果对比一下差得多就说明参数设置有误。2.2 重叠率设定精度与效率的权衡艺术重叠率是最影响内业处理效果的参数。设定低了空三解算时特征点数量不够模型会出现破洞和高程误差设定高了照片数量猛增外业飞得慢内业处理时间也成倍增长。正射影像我一般这样设平地和平坦城区航向重叠率百分之八十旁向重叠率百分之六十就够了。地形起伏的丘陵地区航向重叠率提到百分之八十五旁向重叠率提到百分之六十五。城市高楼密集区如果做正射旁向重叠率要提到百分之七十以上不然高楼遮挡导致的盲区很难补。倾斜摄影的重叠率要整体提高一档。下视镜头航向重叠率通常要百分之九十旁向百分之八十倾斜镜头的旁向重叠率建议百分之八十以上。这里有个容易被忽略的细节倾斜镜头的焦距比下视镜头长同样飞行高度下地面覆盖范围更小所以如果设同样的重叠率倾斜镜头的航线间距要更密。算法实现时一定要分镜头独立计算曝光点间距不能图省事用同一套参数。三维建模要求高的时候重叠率最高能到百分之九十五以上。但我不建议无限加高因为超过百分之九十三之后精度提升已经很有限付出的飞行和处理时间代价却很高。除非是古建筑保护、事故现场还原这种对细节要求极高的场景否则百分之九十就是一个性价比很平衡的档位。2.3 航线边界外扩与转弯缓冲区算法航线边界外扩是正射影像最容易忽视、又最影响成果质量的参数。不加上这个拼接出来的图边缘一定会出问题。外扩距离的算法逻辑是这样的飞机飞到测区边缘时相机视场中心可能还在测区内部但视场边缘已经覆盖到测区外。如果航线刚好压在测区边界上那么测区最边缘的地面只能被飞行方向这一侧的影像覆盖垂直于航线方向的重叠率会严重不足。合理的外扩距离至少要保证测区边缘能被航线方向两侧的影像覆盖到所以外扩距离应该大于等于旁向覆盖宽度的一半。严格一点的做法是外扩距离等于旁向覆盖宽度的百分之五十加上旁向曝光点间距这样测区边缘上任何一点至少被两张相邻航线的影像完整覆盖。转弯缓冲区就更有讲究了。无人机在航线末端转弯时机身姿态变化剧烈如果转弯半径太小容易产生GPS信号丢星、相机姿态不稳的问题。航线生成算法里转弯轨迹一般用Dubins曲线或者回旋曲线来规划确保飞机在转弯过程中保持平滑的速度和角速度。Dubins曲线听起来高大上本质就是用一个固定最小转弯半径的圆弧把两条平行的航线连接起来。最小转弯半径由飞机的最大滚转角和飞行速度决定一般是速度平方除以重力加速度乘以滚转角正切值。算法里只要把起点航向、终点航向和转弯半径这三个参数代入就能求出转弯圆弧的圆心和切点位置生成一段平滑的转弯路径。我用实际飞行验证过Dubins曲线规划的转弯路径确实比直角转弯稳定不少轨迹跟踪误差小拍照偏差也小。3. 实操一个简易航线生成算法的实现过程前面讲了这么多理论接下来放点能直接用的东西。我平时在项目中会先用Python写一个航线生成原型验证完参数再导到地面站软件里执行。这里分享一套我自己常用的实现思路。3.1 环境准备与输入数据组织航线生成算法需要三类输入测区边界、相机参数、任务需求参数。测区边界一般用KML或者GeoJSON文件导入包含一个多边形区域的顶点坐标。相机参数包括传感器宽度、传感器高度、焦距、像元尺寸。任务需求参数包括目标地面采样距离、航向重叠率、旁向重叠率、云台角度。如果测区有地形起伏还需要加载数字高程模型数据一般是GeoTIFF格式。我在国内项目里用的比较顺手的是ALOS 12.5米分辨率的免费数据精度够用下载也方便。高精度项目要求高的话会换用5米分辨率的商业数据或无人机实时雷达测高数据。代码的组织结构我会按照功能拆成几个模块参数解析模块负责读入输入数据航高计算模块负责根据地面采样距离反算飞行高度覆盖计算模块负责算影像覆盖范围和曝光点间距航线规划模块负责生成曝光点坐标最后是导出模块把结果写成航线文件。3.2 核心代码从航高计算到曝光点生成这里放一段我常用的核心代码展示从目标地面采样距离到航线曝光点生成的完整链路。代码做了精简但核心逻辑都在。import math import json from shapely.geometry import Polygon, mapping class CameraParams: def __init__(self, sensor_width_mm, sensor_height_mm, focal_length_mm, pixel_size_um): self.sensor_width_mm sensor_width_mm self.sensor_height_mm sensor_height_mm self.focal_length_mm focal_length_mm self.pixel_size_um pixel_size_um def flight_height_for_gsd(self, target_gsd_m, gsd_ratio1.0): # target_gsd_m: 目标地面采样距离单位米 # 公式: GSD flight_height * pixel_size / focal_length pixel_size_m self.pixel_size_um / 1000000.0 flight_height target_gsd_m * gsd_ratio * self.focal_length_mm / pixel_size_m / 1000.0 return flight_height def ground_cover(self, flight_height): # 返回 (沿航线方向覆盖长度, 垂直航线方向覆盖长度) cover_along self.sensor_width_mm / self.focal_length_mm * flight_height cover_across self.sensor_height_mm / self.focal_length_mm * flight_height return cover_along, cover_across def generate_waypoints(polygon_pts, camera, target_gsd, overlap_along, overlap_across, alt_offset0.0): 生成正射航线曝光点 polygon_pts: 多边形顶点列表[(lon, lat), ...] # 1. 计算航高和地面覆盖范围 flight_height camera.flight_height_for_gsd(target_gsd) cover_along, cover_across camera.ground_cover(flight_height) # 2. 计算曝光点间距沿航线方向和航线间距垂直航线方向 step_along cover_along * (1 - overlap_along) step_across cover_across * (1 - overlap_across) # 3. 简化处理将测区视为轴对齐矩形 lons [p[0] for p in polygon_pts] lats [p[1] for p in polygon_pts] min_lon, max_lon min(lons), max(lons) min_lat, max_lat min(lats), max(lats) # 4. 根据平均纬度计算每度经纬度对应的距离用于坐标换算 avg_lat (min_lat max_lat) / 2.0 meters_per_deg_lon 111320.0 * math.cos(math.radians(avg_lat)) meters_per_deg_lat 110540.0 # 5. 计算航线起点在测区基础上向外扩缓冲区 buffer_m step_across # 缓冲区至少一个航线间距 start_lon min_lon - buffer_m / meters_per_deg_lon start_lat min_lat - buffer_m / meters_per_deg_lat end_lon max_lon buffer_m / meters_per_deg_lon end_lat max_lat buffer_m / meters_per_deg_lat # 6. 计算航线数量沿纬度方向扫描 total_width_m (end_lat - start_lat) * meters_per_deg_lat num_lines int(total_width_m / step_across) 1 # 7. 生成航线曝光点 waypoints [] for i in range(num_lines): line_lat start_lat i * step_across / meters_per_deg_lat if i % 2 0: # 偶数航线从左往右拍 lon_start, lon_end start_lon, end_lon else: # 奇数航线从右往左拍蛇形返回 lon_start, lon_end end_lon, start_lon num_photos int(abs(lon_end - lon_start) * meters_per_deg_lon / step_along) 1 for j in range(num_photos): if i % 2 0: lon lon_start j * step_along / meters_per_deg_lon else: lon lon_start - j * step_along / meters_per_deg_lon waypoints.append({ lon: round(lon, 8), lat: round(line_lat, 8), alt: round(flight_height alt_offset, 2) }) return waypoints if __name__ __main__: camera CameraParams( sensor_width_mm35.9, sensor_height_mm24.0, focal_length_mm35.0, pixel_size_um4.4 ) test_polygon [ (116.391, 39.907), (116.395, 39.907), (116.395, 39.910), (116.391, 39.910) ] waypoints generate_waypoints( test_polygon, camera, target_gsd0.02, overlap_along0.80, overlap_across0.60 ) print(f生成曝光点数量: {len(waypoints)}) print(前5个曝光点:) for wp in waypoints[:5]: print(wp)这段代码的效果是输入一个矩形的测区边界设定地面采样距离为2厘米航向重叠率百分之八十旁向重叠率百分之六十然后自动计算出每个曝光点的经纬度和飞行高度。实测跑一遍输入代码中的这块区域大概三百米乘三百米生成结果大约是三百八十个曝光点飞行高度约159米相邻曝光点间距约23米航线间隔约66米。这个数量跟商业软件的估算结果非常接近说明核心算法逻辑是可靠的。需要注意的是这个简化版本只处理了轴对齐矩形的情况。真实项目里测区多半是不规则多边形这时就需要用到前面提到的“扫描线算法”把航线按某个方向间隔排列再求每条航线与多边形边界的交点并把交点范围内的航线段保留下来。这一步做起来比轴对齐矩形复杂不少但思路是一样的。3.3 从算法原型到商业地面站参数对接与验证算法原型跑通之后下一步就是把生成的曝光点导入到实际使用的测绘软件里。大疆智图、Pix4Dcapture、航测大师这些软件都支持导入KML格式的航线文件。我最常用的方式是把曝光点坐标写成KML文件里面用Placemark节点标记每个航点。大疆智图可以直接识别KML并生成航线但要注意KML文件里只有曝光点坐标还需要在软件里重新设置相机型号、云台角度、航线速度这些参数。这里的验证步骤很关键。拿到算法生成的航线文件后我会在软件里检查几个数据总航点数、航线总长度、预计飞行时间、以及重叠率分布。尤其是重叠率分布我会用软件自带的模拟功能把航线叠加到测区影像上随机抽几个点看覆盖情况。之前有一次我用自写算法生成了一条航线软件模拟时发现测区右上角的影像覆盖数量明显不足。排查后发现问题出在多边形顶点顺序上——我的代码假设顶点按逆时针排列但实际导入的KML文件是顺时针。这个Bug让多边形计算出来的外扩方向反了导致一边多扩一边少扩。后来我在代码里加了一个多边形方向自动校正不管输入什么方向都能统一成逆时针这个问题才算解决。验证通过的航线我还会做一次小范围试飞。选测区里一条航线先飞一遍重点看三个东西转弯后第一张照片的POS数据是否稳定、相邻航线和相邻曝光点的实际重叠率是否跟设计一致、边缘区域的影像是否有异常畸变。试飞没问题再铺开全测区飞这是我一直坚持的习惯。4. 常见问题与排查技巧实录航线算法的坑有时候不在算法本身而在算法跟硬件、环境的配合上。这几年实际项目中踩过的坑不少挑几个代表性的分享出来这几个坑在我看过的项目里出现概率最高。4.1 重叠率达标但空三解算失败这个现象很诡异航线设计时重叠率都是百分之八十、百分之九十软件里模拟也正常但空三解算就是报错或者跑完了模型有大量破洞。排查过程让我意识到这类问题的根源通常是这几种。第一相机触发延迟不稳定。无人机在高速飞行中每个曝光点都依赖飞控发出触发信号相机收到信号后真正曝光还有一段延迟。如果这段延迟不稳定实际曝光位置就会在目标点前后漂移几十厘米甚至一两米。重叠率在设计时是按理想曝光点算的实际漂移后局部重叠率可能跌破阈值。排查方法是检查每张照片的EXIF信息和POS记录看曝光点间距是否均匀。如果发现间隔忽大忽小就要检查快门触发模式和相机固件版本。第二高速转弯后的姿态恢复时间不足。无人机从转弯状态改出后云台和机身的姿态需要一段时间才能稳定。如果航线转弯后第一张照片的拍摄点离转弯弧线太近照片的初始姿态角可能偏差好几度导致空三匹配困难。这种问题我一般是检查转弯后前两张照片的姿态角记录如果有异常就把转弯缓冲区的长度加长或者降低转弯速度。第三低纹理区域的空三失败。大片水面、雪地、沙漠这些区域影像上缺乏明显的特征点空三解算时无法匹配。这不是航线算法能解决的只能靠外业补飞时在地面铺设控制点标志或者适当降低飞行高度让地面纹理更清晰。4.2 边缘重叠率不足一个常被忽视的边界问题我之前说过航线外扩距离的重要性但实际操作中还有一种更隐蔽的边缘重叠率问题发生在测区边缘区域地物较高的情况下。比如测区旁边有一栋高楼从高楼顶上飞过的航线影像里高楼遮挡了后面大片地面导致夹缝区域的重叠率骤降。模型里表现为高层建筑背面的地面出现拉花或者空洞。这个问题的本质是航线算法只考虑了规则的地面几何没有考虑建筑物遮挡对有效覆盖的影响。解决方案有两种一是提高重叠率用冗余影像来补遮挡二是给测区边缘增加“缓冲环”额外生成一圈环绕测区边界的航线让被遮挡的区域有更多角度可以拍到。我在城市级倾斜项目里默认就会加一圈周边绕飞航线虽然飞行时间增加了大约百分之二十但模型的完整度提升非常明显内业补修的返工量大幅减少。4.3 高程突变区域的焦距与重叠率组合优化仿地飞行时高程数据不准会导致飞行高度和重叠率都出问题。有一次在山区项目里数字高程模型数据跟实际地形差了将近三十米导致部分区域的实际地面采样距离完全达不到要求。排查方法是检查每条航线曝光点的实际高程与设计高程的差值。如果差值大先检查数字高程模型数据的分辨率和新鲜度很多公开数据是几年前的现在地形可能已经有变化。还有一种情况是数字高程模型数据本身没问题但算法里插值方法太粗糙导致航线高程曲线在陡坡处出现突变。这个时候我会改用带地形跟随算法的商业软件或者改良插值方法用双线性插值代替最近邻插值航线高程会平滑很多。组合优化方面我的经验是地形起伏超过五十米的区域重叠率上调百分之十比单纯降低飞行高度更划算。降低高度会导致地面覆盖范围缩小需要的曝光点数量成倍增加飞行时间大幅拉长而提高重叠率虽然也增加曝光点数量但增幅远小于降低高度带来的影响。4.4 电池续航与航线规划的联动优化航线生成算法里电池续航是一个经常被忽略的硬约束。遇到过几次航线设计出来总飞行时间四十五分钟但电池最大续航只有三十分钟结果只能中途返航换电池重新上传航线再继续飞不仅浪费时间衔接区域的处理还容易出问题。后来我在算法里加了一个航线分段逻辑按电池续航能力把总任务拆成多个架次每个架次包含若干条航线架次之间留出至少二十分钟的换电池和重新上传航线的时间。这个逻辑的实现其实不复杂核心就是贪心算法加动态规划从第一条航线开始累加预计飞行时间当累计时间达到电池续航上限的百分之八十五时就在当前航线位置断点为架次断点。之所以留百分之十五的余量是为了应对逆风飞行、爬升和转弯时的额外功耗这些情况实际飞行中很常见。4.5 航线生成算法问题排查速查表结合上文我整理了一份排查表遇到问题可以按图索骥。问题现象可能原因排查方向常用对策空三解算失败曝光点间距不均匀检查POS数据中曝光点间隔更新固件检查触发模式模型边缘拉花边界外扩距离不足检查边缘影像重叠度增加外扩缓冲区建筑物背面破洞遮挡导致有效重叠不足检查模型破洞位置增加环绕航线山区重叠不足DEM精度差对比实际高程与DEM升级数据源改用双线性插值飞行超时未考虑电池续航核对总航线时间增加架次分段逻辑转弯后照片漂移转弯缓冲不足检查转弯后姿态角增大转弯半径或降低转弯速度大片水面匹配失败纹理缺失检查低纹理区域占比增加控制点标志5. 航线生成算法的进阶方向基础算法能跑通之后接下来就可以往深了做。我最近在做的一些方向简单分享一下算是给想在这个领域深耕的朋友指个路。5.1 多机协同的区域分割算法多机协同作业是现在行业里的热门方向尤其是大面积测区单机效率实在太低。但多机协同不是简单把测区切成几块然后每台飞机飞一块。核心问题在于区域分割和重叠区域的分配。分割算法需要保证各架次任务的飞行时间大致均衡不然会出现一架飞机已经飞完了另一架还有一大半的情况同时要尽量把分割线放在纹理丰富或者低空障碍少的区域方便内业数据融合。我目前的实现思路是聚类加图割先把曝光点按空间位置聚类然后根据各无人机的起始位置、续航能力和速度分配各自负责的区域。这个方向做出来对大面积航测的效率提升是成倍的。5.2 实时避障与航线动态重规划航线生成难免遇到突发障碍铁塔、吊车、新建的高层建筑这些在高程数据或者卫星影像上不一定能看到。所以我在研究怎么让航线在执行过程中实时感知障碍物并动态局部调整航线。这个方向涉及机载端的目标检测模型部署、实时路径规划算法以及全局航线和局部避障轨迹的优先级融合。目前行业内的成熟产品还不多但需求很明确尤其是城市巡检和低空物流场景。5.3 基于强化学习的重叠率自适应优化不同地形的最优重叠率不是一个固定值。我现在在尝试用强化学习让算法根据测区的高程方差、地表覆盖类型、光照条件这些特征自动推荐最优的重叠率组合。目前这个方向还在试验阶段但初步效果显示相比人工设定固定重叠率自适应优化可以在保证精度的前提下减少约百分之十到十五的无效曝光点数量。对大面积测区来说这个优化比例换算成飞行时间节省是非常可观的。6. 写在最后的项目经验航线生成算法做久了最大的体会是理论知识只是入场券真正拉开差距的是对细节的敏感度。你懂航高公式能算出飞行高度但你不一定知道暴雨过后测区里多了几个水坑会让反射率大幅提高导致照片过曝。你懂重叠率设置能算出曝光点间距但你不一定知道正午阳光直射会让建筑物阴影区域几乎没有可用纹理空三解算时照样匹配不上。我现在的习惯是每次飞行任务前除了算法设置好参数还会手动检查一遍天气条件、太阳高度角和测区地表状态。算法能帮你把百分之八十的事情做对剩下百分之二十需要靠经验去判断。而且有意思的是当你对一个参数体系理解得足够深你会越来越敢在市场面软件里做手动微调。最后分享一个小技巧不管用自研算法还是商业软件每次航线设计完成后都把曝光点文件、航线参数和试飞检查结果存成一个任务档案。几个月后如果项目需要复飞或者出现精度争议这套档案就是排查问题的最佳依据。我现在手上一百多个项目的任务档案很多次救了我。这东西不能省。
返回列表