
简介这份PDF文献聚焦多波束测深数据的内业处理与潮汐影响改正面向海洋测绘、海底地形调查及数据处理方向的从业者与研究人员帮助解决原始数据采集后如何通过参数校正、声速与潮汐改正、噪声处理等环节获取高精度海底地形成果的问题。资源包内仅含1个PDF文件大小约7.4MB内容为期刊论文全文包含摘要、关键词、数据处理流程与精度评价等完整章节便于直接阅读与引用。文中结合CARIS HIPS and SIPSv8.1软件包与南海某海域实测数据重点分析两种潮汐改正方式对成图效果的影响并给出预报潮汐数据可满足处理精度要求的结论对实际作业中的参数设定与成果精度评估具有参考价值。目前已有253人学习适合作为海洋测绘数据处理流程与潮汐改正方法的专业参考文献。1. 多波束数据处理及潮汐影响改正从原始 ping 到可用海底地形的全链路多波束测深拿到的原始数据本质上是一堆带 GPS 时间戳、姿态、声速和波束角度的 ping 记录它既不是一张图也不是一个可以直接量算的深度值。真正让这批数据变成「可用海底地形」的是两件事一是把每个波束的传播时间换算成瞬时水深并做姿态、声速、吃水等一系列改正二是把瞬时水深归算到统一的深度基准面上——后者就是潮汐影响改正要干的活。很多人第一次做多波束项目卡住的地方不是软件不会点而是不知道哪一步该改什么、改错了会在地形上留下什么痕迹。这篇笔记按 CARIS HIPS and SIPS 的实际作业顺序把多波束数据处理和潮汐改正拆成能照着复现的步骤同时把曲面滤波、精度评价这些容易被糊弄过去的环节讲清楚。适合刚接手多波束内业、或者做过单波束想转多波束的测绘与海洋工程从业者。2. 多波束原始数据里到底有什么先搞懂要改什么2.1 一个 ping 记录包含的字段与改正链路多波束的原始文件常见 .all、.kmall、.s7k、.xtf 等格式里每个 ping 记录大致包含这几类信息发射和接收的时间戳、船位来自 GNSS、姿态横摇 roll、纵摇 pitch、艏摇 heading、升沉 heave、声速剖面或表面声速、每个波束的发射角和接收角、传播时间。软件要做的第一件事是把传播时间乘以声速得到斜距再结合波束角算出波束脚点在船体坐标系下的位置然后经过姿态改正、安装偏差改正、船位改正把脚点归算到地理坐标系。这一整条链路里任何一环参数错了最终地形上都会留下有规律的系统性误差而不是随机噪声。我一般把这条链路分成三层来看第一层是「声学层」管的是声速、传播时间、波束角决定单个波束的斜距和方向准不准第二层是「姿态与安装层」管的是换能器相对船体、船体相对大地坐标系的姿态关系决定波束脚点摆得对不对第三层是「基准层」管的是瞬时水深归算到哪个深度基准面也就是潮汐改正要解决的问题。三层里前两层做不好潮汐改正做得再精细也是白搭因为误差已经被固化进地形了。2.2 声速剖面与表面声速为什么它是第一个要检查的参数声速是深度换算里最敏感的参数。海水声速随温度、盐度、压力变化表层和深层可能差几十米每秒。如果只用表面声速而不做声速剖面改正边缘波束的测深会出现「笑脸」或「哭脸」——也就是测线两侧系统性偏浅或偏深。判断方法很直接看相邻测线重叠区的交叉点如果边缘波束的偏差随波束角呈规律性变化基本就是声速问题。在 CARIS HIPS and SIPS 里声速剖面通过 SVPSound Velocity Profile文件导入每个剖面带一个时间戳软件按时间就近匹配。常见做法是作业期间每隔 2 到 4 小时投放一次声速剖面仪或者在海况和温跃层变化剧烈时加密。导入后一定要在软件里检查剖面曲线是否合理——温度、盐度、深度三条曲线有没有跳变声速值有没有落在 1450 到 1550 m/s 这个正常区间。我见过有人把剖面仪的深度单位搞错整条剖面声速全错地形直接废掉。提示声速剖面文件的时间戳要和测线时间对齐时区搞错会导致剖面匹配到错误的测线段这种错误在地形上表现为某一段测线突然整体偏移。2.3 姿态与安装偏差横摇、纵摇、艏摇、升沉各管什么姿态改正里横摇roll影响的是波束在垂直船体方向上的摆角纵摇pitch影响沿航向的摆角艏摇heading影响测线方向升沉heave直接叠加到水深上。安装偏差vessel offset则是换能器相对参考点通常是 GNSS 天线的三维偏移量包括换能器到天线的杆臂值。这些参数如果标定不准会出现「平坦海底测出来是斜面」「相邻测线对不上」这类问题。标定calibration一般用 Patch Test 做选一块平坦海底跑四条特定方向的测线一条往返测线测纵摇一条测横摇一条测艏摇再结合升沉检查。CARIS 里有专门的 Patch Test 工具会给出各偏差的估计值。我的习惯是标定完把偏差值记下来和上一次标定对比如果横摇偏差突然变了 0.5 度以上先怀疑换能器安装有没有松动而不是直接接受新值。3. 在 CARIS HIPS and SIPS 里跑通一条测线的完整流程3.1 新建项目与导入原始数据的命令级操作CARIS HIPS and SIPS 的项目结构是「Project → Vessel → Line」先建项目再配置船型Vessel参数然后导入测线。船型配置里要填换能器型号、安装偏差、声速来源、姿态来源。这一步填错后面全错所以建议建一个模板船型文件新项目直接复制。导入测线时软件会读取原始文件并生成 HDCSHydrographic Data Cleaning System格式的数据。命令行方式可以用hips2hdcs批量转换适合测线多的时候# 批量把原始多波束文件转成 HDCS 格式 # -p 指定项目路径-v 指定船型名-f 指定输入文件列表 hips2hdcs -p /data/project_2024 -v vessel_a -f line_list.txtline_list.txt里每行一条原始文件的绝对路径。转换完成后在 CARIS 的 Project 窗口里能看到每条测线的 HDCS 数据。参数说明-p后面的项目路径必须已经存在-v的船型名要和项目里配置的一致否则会报「vessel not found」。如果原始文件是 .kmall 格式CARIS 12.0 版本原生支持不需要额外转换工具。3.2 声速改正与潮汐改正的加载顺序这里有个顺序问题很多人搞混声速改正是把传播时间换算成瞬时水深潮汐改正是把瞬时水深归算到深度基准面。所以逻辑上必须先做声速改正再做潮汐改正。在 CARIS 里声速剖面在导入测线时或之后通过Load SVP加载潮汐数据通过Load Tide加载。潮汐文件通常是分潮调和常数或者直接的时间-潮高序列格式要求是 CARIS 支持的 .tid 或 .csv。# 加载声速剖面到指定测线 # -s 指定 SVP 文件-l 指定测线名 load_svp -p /data/project_2024 -s /data/svp/svp_20240501.csv -l line_001 # 加载潮汐改正数据 # -t 指定潮汐文件-z 指定深度基准面名称 load_tide -p /data/project_2024 -t /data/tide/tide_20240501.csv -z chart_datum参数说明-z后面的深度基准面名称要和项目里定义的基准面一致常见的有理论最低潮面、平均海平面等。潮汐文件的时间间隔建议不超过 10 分钟太粗的潮汐采样会在水深上引入台阶状误差。如果测区离潮汐站较远还要考虑潮汐的空间分布必要时做潮汐模型插值而不是直接用单个站的潮高。3.3 曲面滤波怎么在保留地形细节的同时去掉噪声曲面滤波Surface Filter是 CARIS 里做粗差剔除的核心工具。它的原理是先根据测深点云拟合一个平滑曲面然后计算每个点到曲面的残差残差超过阈值的点被标记为可疑。阈值通常用 IHO 标准或者项目精度要求来定比如 IHO S-44 特等要求水深 30 米以内误差不超过 0.3 米。在 CARIS 里曲面滤波通过Surface Filter工具执行关键参数有三个Filter Type选 Combined 或 Depth、Filter Size滤波窗口大小、Standard Deviation标准差倍数。我的经验是先跑一遍宽松的滤波标准差 3 倍把明显飞点去掉再跑一遍严格的标准差 1.5 倍但严格滤波后一定要人工检查边缘波束和地形突变区避免把真实的海底陡坎、沉船、管线当成噪声滤掉。# 用 CARIS 的 Python API 批量设置曲面滤波参数 # 适合多条测线统一处理 import caris project caris.open_project(/data/project_2024) for line in project.lines: line.surface_filter( filter_typeCombined, filter_size3, # 3x3 窗口适合中等密度点云 std_dev2.0, # 2 倍标准差平衡去噪和保细节 min_depth5.0, # 浅于 5 米不滤波避免浅水区误删 max_depth200.0 # 深于 200 米不滤波深水噪声另处理 ) project.save()逻辑说明filter_size越大曲面越平滑但小地形容易被抹掉std_dev越小剔除越激进。min_depth和max_depth用来限定滤波的深度范围因为浅水和深水的噪声特性不同。跑完滤波后一定要在 3D 视图里目视检查尤其是测线边缘和地形起伏大的区域。4. 潮汐影响改正从瞬时水深到深度基准面的关键一步4.1 潮汐改正的三种数据来源与适用场景潮汐改正的数据来源主要有三类验潮站实测潮位、潮汐调和常数预报、以及潮汐模型如全球或区域潮汐模型。验潮站实测最准但要求测区离站近且站点的潮高能代表测区调和常数预报适合有长期观测的站点能预报任意时间的潮高潮汐模型适合远离岸站的开阔海域但精度取决于模型分辨率。选择哪种取决于测区位置和精度要求。近岸工程测量我一般优先用验潮站实测如果测区跨度大就用多个站做空间插值。远海测量没有验潮站只能用潮汐模型这时候要在报告里说明模型来源和精度。CARIS 支持导入多种潮汐格式关键是时间基准要统一——验潮站时间、GNSS 时间、测线记录时间三者必须都是同一时区否则潮汐改正会整体偏移。4.2 潮汐改正的具体操作与参数设置在 CARIS HIPS and SIPS 里潮汐改正通过Tide菜单下的Load Tide和Apply Tide完成。加载潮汐文件后软件会按测线的时间戳插值出每个 ping 的潮高然后从瞬时水深中减去潮高得到相对深度基准面的水深。# 应用潮汐改正到所有测线 # -p 项目路径-t 潮汐文件-m 插值方法linear 或 cubic apply_tide -p /data/project_2024 -t /data/tide/tide_20240501.csv -m linear # 导出改正后的水深点用于后续成图 export_soundings -p /data/project_2024 -o /data/output/soundings_xyz.txt -f xyz参数说明-m linear是线性插值适合潮汐变化平缓的情况如果潮汐变化剧烈如强潮河口建议用cubic三次插值。导出的 xyz 文件包含经度、纬度、水深三列可以直接导入 GIS 或成图软件。注意潮汐改正后要检查水深有没有出现负值即潮高大于瞬时水深如果有说明潮汐数据或测线时间有问题需要排查。4.3 潮汐改正的验证交叉点检查与潮汐残差分析潮汐改正做完不能直接出图要先验证。最直接的方法是交叉点检查相邻测线在重叠区的交点改正后的水深差应该在允许范围内。如果交叉点差值呈现系统性偏差可能是潮汐改正的基准面不一致如果差值随机分布可能是声速或姿态问题。CARIS 里有Crossline Analysis工具能自动计算交叉点差值并生成统计报告。我一般会看三个指标平均差值、标准差、最大差值。平均差值接近零说明没有系统偏差标准差反映随机误差水平。如果标准差超标回到曲面滤波和声速改正去查。另外如果测区有长期验潮站数据可以把改正后的水深和验潮站附近的水深做对比验证潮汐改正的绝对精度。5. 避坑与排查多波束数据处理里最容易翻车的五个地方5.1 声速剖面时间戳错位导致测线整体偏移现象某条测线的水深整体比相邻测线深或浅几十厘米且偏差沿测线方向基本一致。原因声速剖面文件的时间戳和测线记录时间不在同一时区或者剖面投放时间与测线作业时间不匹配软件匹配到了错误的剖面。解决检查 SVP 文件的时间字段和测线原始文件的时间字段确认时区一致在 CARIS 里手动指定每条测线对应的 SVP 剖面而不是依赖自动匹配。5.2 潮汐改正基准面不一致导致交叉点超限现象交叉点检查时所有交叉点的水深差都偏向同一个方向比如后测的测线普遍比先测的浅。原因不同测线用了不同的深度基准面或者潮汐文件本身的基准面和项目定义的基准面不一致。解决统一项目里所有测线的深度基准面设置检查潮汐文件的基准面说明必要时做基准面转换。这个坑血泪经验最多因为基准面问题不会报错只会默默体现在数据里。5.3 曲面滤波参数过激把真实地形滤掉现象滤波后地形变得异常平滑原本明显的海底陡坎、沙波、沉船痕迹消失。原因滤波窗口太大或标准差倍数太小把真实的地形起伏当成噪声剔除了。解决先用宽松参数跑一遍目视检查后再逐步收紧对已知有地形特征的区域单独设置滤波参数或关闭滤波改用人工编辑。记住曲面滤波是辅助工具不是全自动黑匣子。5.4 姿态标定残留偏差导致边缘波束系统性误差现象平坦海底在测线边缘出现「翘边」中间平、两边翘或两边沉。原因横摇或纵摇的安装偏差没有标定准或者标定后换能器发生了微小位移。解决重新做 Patch Test重点检查横摇偏差如果偏差值在两次标定之间变化超过 0.3 度检查换能器安装螺栓和杆臂值。边缘波束的误差在浅水区尤其明显因为同样的角度偏差在浅水产生的水平位移更小但深度误差比例更大。5.5 潮汐数据时间间隔过粗导致水深台阶现象沿测线方向水深呈现规律的台阶状跳变跳变间隔和潮汐数据的时间间隔一致。原因潮汐文件的时间采样太粗比如 1 小时一个点线性插值后潮高变化不连续。解决潮汐数据时间间隔加密到 10 分钟以内或者改用调和常数预报生成更密的潮高序列。如果只有粗间隔的验潮站数据可以用三次样条插值平滑但要在报告里说明插值方法。6. 精度评价与成果输出怎么证明你的数据能用6.1 用 IHO S-44 标准做精度评价的具体指标多波束数据的精度评价国际通行的是 IHO S-44 标准。它按水深分档规定了总垂直不确定度TVU和总水平不确定度THU的限值。比如特等测量水深 30 米以内 TVU 不超过 0.3 米30 到 100 米不超过 0.3 米加 1% 水深。评价时用交叉点差值、与独立检核线的差值、以及和已知水深点的对比计算实际不确定度。在 CARIS 里Uncertainty工具能根据声速、姿态、潮汐等误差源合成每个水深点的不确定度。我一般会导出不确定度栅格和地形图叠加看哪些区域超标。如果某个区域不确定度普遍偏高回到原始数据查该区域的声速和姿态记录。6.2 成果输出的格式选择与元数据填写成果输出常见格式有 XYZ 点云、CSV、GeoTIFF 栅格、以及 CARIS 自己的 HDCS。如果后续要进 GIS 做分析GeoTIFF 最方便如果要给其他测量软件用XYZ 或 CSV 通用性最好。输出时注意坐标系统和深度基准面的元数据要写清楚否则别人拿到数据不知道参考什么。# 导出 GeoTIFF 栅格指定分辨率和坐标系统 export_grid -p /data/project_2024 -o /data/output/dem_1m.tif -r 1.0 -crs EPSG:4326 -z chart_datum参数说明-r 1.0是栅格分辨率 1 米-crs EPSG:4326是 WGS84 地理坐标系-z chart_datum是深度基准面。分辨率选择取决于点云密度一般栅格分辨率不小于平均点间距否则会出现空洞。6.3 一个提高效率的小技巧批处理脚本模板多波束项目往往有几十上百条测线逐条操作效率太低。我的习惯是写一个批处理脚本把声速加载、潮汐改正、曲面滤波、导出串起来一次跑完。CARIS 支持 Python API 和命令行两种方式命令行适合简单批处理Python API 适合需要条件判断的复杂流程。# CARIS Python API 批处理模板加载 SVP、应用潮汐、曲面滤波、导出 import caris project caris.open_project(/data/project_2024) svp_file /data/svp/svp_20240501.csv tide_file /data/tide/tide_20240501.csv for line in project.lines: line.load_svp(svp_file) line.apply_tide(tide_file, methodlinear) line.surface_filter(filter_typeCombined, filter_size3, std_dev2.0) line.export_soundings(f/data/output/{line.name}.xyz, formatxyz) project.save() print(批处理完成共处理, len(project.lines), 条测线)这个模板的关键是把所有测线当成列表遍历参数统一设置。如果某条测线需要特殊处理可以在循环里加条件判断。跑完批处理后一定要抽查几条测线的结果确认没有异常。我自己的习惯是每次批处理完随机抽三条测线在 3D 视图里看一遍这个习惯帮我拦下过好几次参数设错的事故。希望帮到你。本文还有配套的精品资源点击获取