设想一次海底测量,相邻测线测得的地形对不上:同一处岩坎出现两遍,或是测深条带的两侧边缘向上翘起。测量团队若要绘出更平顺的地图,得先查清问题来自哪里:某个错误的测深值、定位偏差,还是将回波换算为水深时采用的模型。处理声呐数据的开源软件包 MB-System,将这些判断分别记录在各自的文件中。[1][4][5][6]
这套以文件为基础的工作流程,引出了一个值得考察的架构问题:如果日后还要修订这项测量,哪些内容必须留下来?答案要从原始数据、旁边的修正文件,以及将两者汇合起来的程序说起。
给每种修正一个存放之处
MB-System 的底层是输入输出库 MBIO,处理程序借助它读写多种受支持的声呐格式。文件表示方式的差异由这个库处理,上层工具因此可以处理来自不同仪器的数据。[1] 在这层通用接口之上,工作被拆成一项项具体的小任务。
以一个可疑的水深测量值为例。交互式编辑器 mbedit 会连续显示声呐剖面,供操作人员逐个检查测深点。在常规编辑模式下,它把测深点有效或无效标记的改动存入单独的文件,扩展名为 .esf。同时,它还会创建或更新对应的 .par 参数文件,让后续处理应用这些编辑记录。[4]
这种拆分有其实际缘由。手册解释,早期版本会将整份条带数据集装入内存,并直接写出新的条带文件。后来的设计只保留编辑所需的水深数据,输出标记变更,编辑器需要容纳的数据随之减少。[4] 职责收窄之后,内存需求和工作结果的保存形式都发生了变化。
这些保存下来的工作结果需要妥善照管。重新打开已有编辑记录的测量数据时,如果选择忽略已保存的编辑,原有记录就有被新编辑文件替换的风险。[4] 要保留长时间清理数据时作出的判断,原始声呐文件与编辑文件都要保存。团队将一项测量从一位分析人员交接给另一位时,编辑文件应当和原始观测一样,得到认真备份。
定位是另一个问题
mbnavedit 负责航行器的导航数据。修订后的导航数据可以存入后缀为 .nve 的配套文件,再由 mbprocess 将其与条带数据合并。[5] 操作人员由此可以调整观测结果对应的位置,让位置修正有自己的记录形式,与深度测量值的剔除记录分开保存。
界面之下,还有采样时刻的区别。有些格式将导航值与每次声呐脉冲(ping)的数据存放在一起;另一些格式则含有独立的导航记录,各自带有时间戳。读取后一类测量记录时,MBIO 必须对导航数据作插值或外推。因此,编辑器中呈现的导航序列取决于输入格式。[5]
回到前面那处出现两遍的岩坎,这一区别直接关系到排查方式。我希望复核先弄清楚:定位问题涉及的是随声呐脉冲记录的数值,还是单独采样的导航数据流。在屏幕上选出看起来合理的点,只完成了部分工作。分析人员还需要理解,这些点究竟代表哪些已记录的观测。
水体模型需要观测依据
重新计算水深需要声速剖面,也就是不同深度上的声速。分析人员可以用 mbvelocitytool 调整剖面、查看调整效果,再将剖面连同某份条带数据的处理设置一起保存。[6]
有了声波传播时间和波束角度,软件便能在这个模型中追踪声线,重新计算水深。测深条带的边缘翘曲,有时就源于错误的声速剖面。不过,残差检查也有前提:海床必须足够平滑,拟合直线才有意义。[6] 即使屏幕上的结果整齐,仍需从物理过程上作出解释。
观测量缺失时,问题也随之改变。工具可以用简化的恒定声速模型,估算缺失的传播时间和角度;手册同时提醒,由此开展的建模通常缺乏有效性。[6] 成功读取一种文件格式之后,仍要面对文件中从未留存的观测量缺口。
从处理方案到输出文件
.par 文件将这些决定串在一起,其中包含处理模式、设置,以及对配套数据的引用。mbset 可以为单个条带文件创建或修改参数文件,也可以对数据列表(datalist)选定的文件批量操作。NAVFILE、EDITSAVEFILE 和 SVPFILE 等具名参数,分别指向相关输入。[7]
检查处理目录时,分清这一点很有帮助:参数文件相当于一张操作说明,引用的文件才是处理所需的材料。只复制操作说明,遗漏导航修正或声速剖面,处理方案就缺了内容。而当多个文件共用一份修正数据,修改这份数据时,还要核对数据列表实际选中了哪些文件。
mbprocess 读取这份配置,生成处理后的条带文件。按通常的命名约定,survey.mb71 会变成 surveyp.mb71。默认情况下,程序处理输出缺失或已过时的文件,判断依据是输出文件与输入文件及相关依赖文件的修改时间。-P 选项强制重新处理;-S 则报告状态,以及作出判断所用的修改时间。[2]
从工程角度看,我认为这类似于增量构建。评价这种便利性时,也要限定在相应范围内:文件是否过时的判断,只能告诉操作人员哪些工作需要重跑。所选修正能否准确描述海洋,仍是另一个问题。
下一位读者会收到什么
美国国家海洋和大气管理局(NOAA)下属的国家环境信息中心(NCEI),从独立机构的角度说明了数据流转到后续环节时需要考虑什么。其提交指南指出,多波束档案主要保存厂商原始格式的数据,也接收声速剖面、船舶偏移量等补充信息,管理流程则大量依靠 MB-System。指南要求为文件和测量工作都备有说明文档。[8]
对于有经验丰富的声呐分析人员参与的小型研究团队,我会把能够复现处理过程的交接资料看作一个完整资料包:采集到的数据、处理所需的输入、软件版本,以及解释重要修正为何如此选择的笔记。一张成图所能传递的推理终究有限。参数文件记录了设置,而剔除某个测深点时的判断依据,有时还要用文字交代。
再回到那处出现两遍的岩坎。日后的读者应当能分辨,哪些变化来自位置修订,哪些来自测量值剔除,哪些来自水体模型调整。MB-System 的架构为这些解释安排了可辨认的文件。将它们保存下来,这项测量就保留了接受更好解释的余地。
资料来源
- MBARI,《MB-System 常见问题》——开源宗旨、支持的运行环境与 MBIO 输入输出库。
- MB-System,
mbprocess手册——处理输出、命名约定、依赖文件修改时间、强制处理与状态报告。 - MBARI,《MBARI 的先进水下技术揭示太平洋西北地区地震史》,2026 年 1 月 14 日——测绘航行器布放照片,摄影署名 Dave Caress,© 2021 MBARI。
- MB-System,
mbedit手册——测深点标记、编辑保存文件、参数更新、内存架构与已有编辑记录的处理。 - MB-System,
mbnavedit手册——编辑后的导航文件,以及同步导航与异步导航的区别。 - MB-System,
mbvelocitytool手册——声速剖面、声线追踪、残差解读,以及传播时间与波束角度缺失时的限制。 - MB-System,
mbset手册——参数文件编辑、具名处理输入,以及借助数据列表应用设置。 - NOAA NCEI/国际海道测量组织(IHO)数字水深数据中心,《提交海洋地球物理数据》——独立机构对原始数据、补充记录、文档,以及 MB-System 在档案管理中所起作用的指导。