新闻详情

新闻详情

首页 / 资讯中心 / 详情

走航ADCP数据处理实战:从底跟踪选型到质控规则的完整指南

发布时间:2026/10/2 17:46:03来源:尧图网络
走航ADCP数据处理实战:从底跟踪选型到质控规则的完整指南
简介声学多普勒流速剖面仪ADCP是国际通用的多层海流剖面观测手段自20世纪70年代以来技术发展迅速但数据处理与质量控制至今缺乏统一标准给实际资料应用带来困难。这是一份源自《海洋通报》的PDF文献针对走航ADCP应用场景面向海洋观测数据处理人员与相关专业研究者系统梳理了ADCP测流原理、WinADCP导出原始数据的关键参数设置、数据标准化处理方法及质量控制流程内容覆盖底跟踪与GPS跟踪模式下船速观测的特点并围绕回波强度、相关系数、Percent Good等参数说明质量控制要点以VM DAS实测数据验证了方法效果。资源包为单个PDF文件大小331KB体量紧凑但理论体系完整既适合新手建立ADCP数据处理框架也可结合文中公式与参数设置说明直接对照自身数据开展处理与质量控制。目前已有316人学习下载是海洋数据处理领域值得收藏的专业指导资料。1. 走航ADCP数据处理为什么这份2009年的方法至今还能扛活做物理海洋的人十有八九被走航ADCP的数据折磨过WinADCP导出来的MAT文件看着整齐水听器也一切正常然一旦拿去做断面图表层和底层的流速总有几个深度单元像被针扎过一样突兀地跳出来有时甚至整条剖面都带着莫名其妙的正北偏转。这份研究方法是国家海洋信息中心在2009年发布的核心解决的就是两件事把ADCP原始数据标准化成统一格式以及用一套可落地的质控规则把可疑和错误数据挑出去。当时我用150kHz的VM DAS底跟踪数据和38kHz的GPS跟踪数据各跑了100个剖面验证错情检出率分别落在18.98%和2.44%——错情高度集中在表层和底层而中间的稳定水层几乎不出问题。这个结论十多年后依然是出海作业和室内后处理的基本判断依据。不管你是刚接触ADCP的学生还是经常跑航次的老手这套参数和方法都能直接抄进工作流。2. 先看测流原理与测速选型底跟踪和GPS跟踪的数据质量差在哪2.1 多普勒频移公式背后的两个“跟踪”逻辑ADCP测流的物理基础是声波打到水体中微颗粒后的后向散射产生多普勒频移频移公式写作f_d 2 * F * v / C其中f_d是声学多普勒频移F是ADCP发射频率v是颗粒物沿声束方向的水流速度C是声波在水中的传播速度。公式里的“2”表示ADCP发射后又接收回波频移量是单程的两倍。但这里有个关键问题ADCP测到的速度是水流相对于仪器的速度而仪器装在船上船本身在动。要得到水流相对于地球坐标系的绝对速度必须扣除船速。船速怎么来两种方式——底跟踪和GPS跟踪。底跟踪的原理是ADCP发射声波到底通过跟踪水底这个“参照物”的移动来测船速。GPS跟踪则是用两个相邻定位点的距离除以时间得到船速。两种方式得到的船速测量方法完全不同这直接决定了后续数据处理时你要不要做系统误差订正。2.2 底跟踪和GPS跟踪的误差来源对比底跟踪模式下船速和水流速度都通过跟踪水底测得两者的测量方式、方法相同所以系统误差来源一致船速测量误差在数据处理过程中已经被抵消水流的速率误差接近于零只剩余一个非常小的方向误差——这个方向误差来自仪器安装角度偏差和船艏向误差。GPS跟踪模式则麻烦得多。即使GPS精度足够高、能在充分长的时间段内平均船速利用GPS船速处理得到的流速结果中仍然增加了两种跟踪模式下的船速测量之差。也就是说GPS跟踪比底跟踪多引入了一重误差源。这就是论文里反复强调“条件满足时底跟踪是首选观测方式”的根本原因。什么条件下必须切换到GPS跟踪水深超过ADCP底跟踪的探测极限或者水底存在明显的“动床效应”——也就是河床或海底的泥沙在移动此时底跟踪的结果不可信。这个判断要在出海前就做不能等数据采完了才发现整条剖面的底跟踪数据全是废的。2.3 系统误差的校正逻辑系统误差包含两部分速率误差和方向误差。速率误差主要来自测量环境变化导致的仪器变形或者仪器制造不够精密——比如波束与四个换能器中心所在平面的夹角存在误差。方向误差则多来自观测数据由仪器坐标系转换到地球坐标系时引入的旋转角度误差主要来源是ADCP安装角度偏差和船艏向误差。误差类型来源底跟踪模式GPS跟踪模式速率误差仪器变形、波束夹角偏差接近零无需校正必须校正方向误差安装角度偏差、艏向误差很小的残余误差必须校正船速测量误差测速方式本身已被抵消存在且为独立误差源底跟踪模式下流速的速率误差接近于零只保留一个很小的方向误差可以忽略GPS跟踪模式下则必须同时做系统误差订正和GPS船速订正。论文中给出的实测数据显示GPS跟踪剖面相比底跟踪剖面存在更明显的脉动现象这个脉动就是GPS定位误差的直接体现。3. WinADCP导出参数设置公共参数与导出项的细节清单3.1 公共参数设置Scale与Velocity Reference是核心ADCP原始二进制文件要转成可供后处理读取的TXT或MAT文件用自带软件WinADCP是最方便的方式。打开软件后公共参数在WinADCP Chart Options菜单下的Profile、Series、Ancillary和Processing四个模块里设置。Profile、Series和Ancillary模块下的Scale用于设置质量控制参数的范围我直接给出一组参考值参数取值范围说明Echo Intensity50-200 counts回波强度范围Correlation50-200 counts相关系数范围Velocity-2000-2000 mm/s流速范围Magnitude0-2000 mm/s流速大小范围Direction0-360 Deg流速方向范围这组范围值比较宽松目的是框定正常的物理量区间而不是做精确质控。精确判断要靠后面的标准化处理和常规检验。其他选项如Appearance、Data type、Statistics等主要设置图形和表格的显示方式一般用默认就好。Processing模块下的Velocity Reference根据仪器类型和测量方式决定底跟踪模式选择BTM Track选项GPS跟踪模式选择NavigationVM DAS或GPS(GGA)、GPS(VTG)WinRiver选项固定ADCP搭载平台选择None选项3.2 导出参数设置MAT文件与All Bins的搭配原始数据导出通过Export菜单实现。选Series/Ancillary选项可以导出整个断面所有剖面的全部数据集合。关键参数设置如下File Type选择MAT便于后处理程序直接读取Bins选择All导出所有观测深度单元Series Data Types的Velocity选项全选用于计算海流数据Percent Good选择PG4——良好四波束测量的百分比用于数据后处理时的质量控制Anc Data Types选择Temperature和Depth用于计算ADCP探头处水温和仪器入水深度船速、航向和航迹经纬度数据的导出参数需要根据仪器类型和观测方式做区分底跟踪模式Bottom Track选Mag和DirNavigation选Lat/Lon。GPS跟踪模式VM DAS观测数据在Navigation里选Mag、Dir和Lat/LonWinRiver观测数据需要同时选中WinRiver选项。这里有个实际经验很多时候用户只导出了Velocity和Percent Good漏掉了Bottom Track或Navigation数据结果做误差订正时发现船速序列缺失整个处理流程卡住。导出之前把上面两类选项逐一勾掉再重新勾一遍确认和你的观测模式一致再点Export。3.3 导出后的快速自检导出完成后在MAT文件里做一次快速自检检查经纬度列是否有30000这种数值——这是缺测标记检查航速或航向列是否有-32768这种数值——这是失效标记。如果这两类标记大量出现说明原始观测本身就有问题不要急着做标准化先回头检查原始数据的采集质量。4. MAT转标准ASCII标准化处理步骤与初步质控规则4.1 为什么需要标准化处理不同ADCP厂商、不同软件导出的MAT文件结构不统一——VM DAS和WinRiver导出的字段名、排列顺序、单位都可能有差异而且WinADCP导出的MAT文件里包含了不少无效剖面。如果直接写处理脚本每个航次的格式都要单独适配。标准化处理的核心目标是把MAT文件转换成具有统一数据格式的ASCII标准数据格式文件这样后续的质量控制方法和业务化运行的质控软件就可以用同一套逻辑处理所有航次的数据。标准数据格式由国家海洋信息中心制定内容包括两类信息。数据信息水平流速、水平流向、垂直流速、误差速度、良好百分比、对应质控符。元数据信息调查海区、调查船、航次号、调查项目、ADCP仪器名称及型号、导航定位仪器名称及型号、时区等。4.2 标准化处理流程与初步质控规则MAT文件转标准数据格式文件时涉及的要素都要做初步质量控制。下面给出一个我用MATLAB做转换的示例脚本处理逻辑可直接套用到论文数据。% 加载WinADCP导出的MAT文件 load(ADCP_raw.mat); % 初始化标准数据结构 std_data struct(); std_data.lon []; std_data.lat []; std_data.u []; std_data.v []; std_data.w []; std_data.error_vel []; std_data.pg4 []; std_data.flag []; for i 1:length(ADCP_data) % 判断剖面有效性经纬度缺测值为30000航速/航向失效值为-32768 if ADCP_data(i).lon 30000 || ADCP_data(i).lat 30000 continue; % 剔除经纬度缺测的剖面 end if ADCP_data(i).speed -32768 || ADCP_data(i).heading -32768 continue; % 剔除航速或航向失效的剖面 end % 逐深度单元判断有效性 n_bins length(ADCP_data(i).u); for j 1:n_bins % 流速、流向、垂直流速至少一个缺测或错误或良好百分比小于30不导入 if ADCP_data(i).u(j) -32768 || ADCP_data(i).v(j) -32768 ... || ADCP_data(i).w(j) -32768 || ADCP_data(i).pg4(j) 30 continue; end % 写入标准化数据 std_data.lon(end1, 1) ADCP_data(i).lon; std_data.lat(end1, 1) ADCP_data(i).lat; std_data.u(end1, 1) ADCP_data(i).u(j); std_data.v(end1, 1) ADCP_data(i).v(j); std_data.w(end1, 1) ADCP_data(i).w(j); std_data.error_vel(end1, 1) ADCP_data(i).error_vel(j); std_data.pg4(end1, 1) ADCP_data(i).pg4(j); std_data.flag(end1, 1) 0; % 质控符初始化为0 end end % 写入ASCII标准格式文件 fid fopen(ADCP_standard.txt, w); fprintf(fid, Lon Lat U V W ErrorVel PG4 Flag\n); for i 1:length(std_data.lon) fprintf(fid, %.6f %.6f %.2f %.2f %.2f %.2f %.1f %d\n, ... std_data.lon(i), std_data.lat(i), ... std_data.u(i), std_data.v(i), std_data.w(i), ... std_data.error_vel(i), std_data.pg4(i), std_data.flag(i)); end fclose(fid);代码逻辑分三步第一步按剖面过滤剔除经纬度缺测和航速航向失效的剖面第二步按深度单元过滤剔除流速要素缺测或PG4小于30的深度单元第三步写入标准ASCII格式文件。初步质控的两个阈值——缺测值标记-32768和良好百分比30——是论文给定的标准平滑后导出结果不计入错误数据。PG4阈值可以按需调整如果你需要更严格的控制可以把它提到40甚至50但要注意PG4大于50的深度单元在底跟踪模式下通常会损失较多近底层的有效数据。这个脚本仅演示了最基本的字段映射和规则判定。实际业务运行中还会把后续六个常规检验的质控符写入Flag列形成完整的数据处理链路。4.3 标准化后的文件组织方式我处理过几十个航次的ADCP数据标准化文件建议按“航次号仪器型号观测模式”命名比如DH_2023_08_RDI150k_BT.txt和DH_2023_08_RDI38k_GPS.txt。文件名里带观测模式非常重要——底跟踪和GPS跟踪的后处理逻辑不同混在一起写脚本时会额外增加判断分支还容易出错。5. 六类常规检验的判据与参数边界避开五个常见坑5.1 六类检验的具体规则常规检验是质量控制的核心模块共六类非法码检验、合理性检验、范围检验、尖峰检验、梯度检验和良好百分比检验。前两轮标准化处理做的是粗筛六类检验负责精判每条规则都对应一类典型的观测异常。非法码检验标准数据格式中每一位编码都定义了特定属性规定了允许出现的符号、字符和数字包括空格。处理结果文件中的编码与属性不符时该深度单元判为可疑。这个检验的实际价值是拦截数据格式层面的脏数据比如文件里混入了非ASCII字符或字段错位。合理性检验经纬度范围超过测区合理范围该剖面判为可疑底跟踪失效且无GPS船速该剖面判为可疑。合理性检验针对的是剖面级别的异常比如设备切换模式导致某段时间的定位数据漂移到了测区外。范围检验是最常用的判据参数边界如下检验目标判定范围判定结果备注经度超过0-180剖面错误合理经纬度范围之外为错误纬度超过0-90剖面错误合理经纬度范围之外为错误测站水深小于0或大于3000m剖面错误超过ADCP底跟踪极限船速超过1.54-9.26 m/s3-18 kts剖面可疑超出正常走航速度罗经超过0-360剖面可疑超出罗经量程水温超过-4到40°C剖面可疑海洋水温物理极限水平流速超过0-200 cm/s深度单元可疑超过海洋流的上限水平流向超过0-360°深度单元可疑超出流向量程垂直流速超过-150-150 cm/s深度单元可疑垂直流速物理极限误差速度超过-50-50 cm/s深度单元可疑误差速度应在零附近尖峰检验相邻两层流速突变大于50 cm/s或垂直流速突变大于40 cm/s或东、北分量速度突变大于40 cm/s该深度单元判为错误。尖峰检验的重点在于“突变”——正常海洋环境中流速剖面是连续变化的出现超过上述界限的突变一般都是仪器或处理层面的问题。梯度检验垂直流速梯度大于15 cm/s时该深度单元判为错误。垂直流速本身量值很小梯度超过15 cm/s已经非常异常基本都是虚假信号。良好百分比检验良好百分比小于50%时该深度单元判为可疑。注意这里和标准化处理时的30%阈值不一样——标准化时的30只是最低导入门槛而50%是真正进入质控判定的标准。5.2 实测数据揭示的规律错情集中在表层和底层论文用两组实测数据验证了这套质控方法一组是150kHz、深度单元间隔1m、数据平均时间10s的底跟踪数据共100个剖面、2392个深度单元检出454个可疑或错误深度单元占比18.98%另一组是38kHz、深度单元间隔8m、数据平均时间10s的GPS跟踪数据共100个剖面、2999个深度单元检出73个可疑或错误深度单元占比2.44%。两组数据的错情分布有一个共性底跟踪模式下水平流速错情主要集中在表层和底层表层多是水平流速超出200 cm/s的范围界限底层多是东或北分量突变超过尖峰检验的40 cm/s界限垂直流速错情集中在表层多为梯度超出15 cm/s误差速度错情也在表层多为超出-50-50 cm/s范围。为什么表层和底层是错情高发区表层流速受到测船船速、船噪声、海区和海况等因素的干扰底层流速受到仪器观测盲区、底跟踪接近探测极限、底层水体浑浊以及可能存在的动床效应影响。这条规律的实际意义在于——看到错误标记集中在表层和底层时不用惊慌这是走航ADCP的固有属性但如果中间水层出现大量错情就需要认真排查仪器和处理流程了。5.3 避坑记录我从实际数据处理中踩过的五个坑坑一GPS跟踪数据直接套用底跟踪的处理流程。现象GPS模式的流速剖面完全没有平滑性水平流向在正北方向东西10度范围内剧烈脉动比如第N层流向350度第N1层流向5度。原因GPS定位精度有限且深度单元间隔较大8m相邻两层的实际流向差可能只有15度但判断程序却把它当成了跨越0度线的假突变。解决GPS数据不要和底跟踪数据混在一个脚本里处理流向突变需要结合深度单元间隔来判断论文里明确说GPS数据要增加系统误差和定位误差的校正。坑二GPS跟踪模式下用底跟踪的完满百分比阈值。现象某些GPS剖面的PG4值普遍较低按标准化流程的30%阈值筛完整条剖面几乎全被剔除。原因GPS跟踪模式下四波束的完满百分比受定位精度影响天然低于底跟踪模式。解决先把PG4的分布统计出来再决定阈值——先跑一次不做任何剔除的完整导出直方图观察PG4分布再根据分布的拐点确定阈值。坑三WinADCP导出时漏掉Navigation数据。现象做GPS误差订正时发现船速序列全是缺测。原因导出参数设置时只勾了Velocity和Percent GoodNavigation选的是Lat/Lon而非Mag和Dir船速方向数据缺失。解决导出前对照论文第二部分的逐项清单逐项勾选——底跟踪模式需要Bottom Track的Mag/Dir加Navigation的Lat/LonGPS跟踪模式在VM DAS中要选Navigation的Mag/Dir/Lat/Lon在WinRiver中要加选WinRiver选项。坑四范围检验的200 cm/s硬性上限误杀强流数据。现象一个湾口航次踢掉的深度单元里有相当一部分验潮表明流速确实超过了200 cm/s。原因范围检验的双边界是全局统一的没有考虑观测海区的实际流况。解决在测区内布设至少一个定点观测站做同步校验有实测依据时可以把这个海区的水平流速上限调到250甚至300 cm/s但必须写进航次报告并在质控记录里注明。坑五尖峰检验在强层化海区误报。现象温跃层所在深度附近连续出现尖峰错误标记。原因层化强的深度面上流速剪切本身就大相邻两层的突变可能正好卡在40 cm/s边界。解决对尖峰检验加一个前置条件——只有在东、北分量同时突变且方向相反时才判为错误如果只有一个分量突变大概率是真实剪切。6. 把质控流程做成可复用的脚本从剖面判读到野外操作的闭环6.1 用脚本把六类检验串成流水线六类检验规则是明确的但手动在Excel或MATLAB里逐条判断效率太低。我一般会写一个处理脚本把标准化输出的标准格式文件读进来对每一个深度单元的每一个字段依次执行六类检验最后输出一个带质控符的完整文件。质控符的编码逻辑0代表良好1代表可疑2代表错误一个深度单元被多条规则命中时取最严重的等级。处理完成后做一步自动汇总统计每个剖面的可疑和错误数量按表层前三个深度单元、底层最后三个深度单元、中间层分别归类。如果中间层错情占比超过总错情的10%脚本会输出一个警告——这个规则基于论文的实测结论中间层异常往往意味着仪器或处理流程有问题。6.2 剖面判读的实操技巧处理完质控后每个剖面的可视化判读依然不可省。我习惯画五张图水平流速、水平流向、垂直流速、误差速度和PG4的深度-时间剖面。判读顺序固定先看PG4剖面确定哪些区域的观测“不自信”再看误差速度剖面误差速度持续偏大的区域即使流速本身没超范围也要标记为可疑最后看流速剖面重点观察是否有跨越多个深度单元的连续异常带与尖峰检验的单点异常区分开。GPS跟踪模式下流向剖面的脉动会比底跟踪明显得多。论文的实测数据给出了一个具体的参考特征GPS模式的流向脉动通常收敛于正北方向东西10度的范围内。看到这种量级的脉动时不要急着判定为错误先检查相邻两层的实际角度差——如果是在0度线两侧的正常摆动保留如果是单向连续漂移就需要检查罗经或GPS是否出现了系统性问题。6.3 一个值得养成的习惯论文的结论部分有一句话让我印象很深数据质量控制应从野外观测做起条件满足时底跟踪应作为首选观测方式。这句话听起来像常识但实际操作中经常被忽略——我曾经接过一个航次的GPS跟踪数据处理了一个星期也没能消除流向脉动后来才发现那天出海时海况超过六级ADCP换能器被船体摇晃带得不断改变姿态再好的后处理方法也救不了这种数据。从那以后我每次出海前都会强制走一遍检查流程确认水深和底质条件是否适合底跟踪确认ADCP的安装角度是否做了校准确认WinADCP导出的参数与观测模式匹配然后才开始正式采集。后处理里的所有质控规则本质上都在为野外操作的不完美做补偿把这一步做到位内业数据处理的返工量能减少一半以上。希望这些参数和流程能帮你的航次数据处理得顺利一些。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

多机训练Loss不一致?算子级一致性验证快速定位分歧源头 2026/10/2 18:35:44

多机训练Loss不一致?算子级一致性验证快速定位分歧源头

上个月有一天凌晨两点,我被微信群里的报警声吵醒:一台跑了二十多个小时的三机PyTorch训练任务,Loss曲线在两百步之后开始跟单机结果明显分叉,而且连跑两次的结果也不完全一致。一开始大家都觉得是数据shuffle、学习率没调或者batc…

阅读更多 →
Java变量底层原理:存储、初始化、类型锁定与作用域边界 2026/10/2 18:35:38

Java变量底层原理:存储、初始化、类型锁定与作用域边界

1. 一次存一个:变量容量的底层真相 1.1 变量到底是个什么物件 很多人学 Java 的第一天就开始写 int number 10; 这种代码,但真要问一句“变量是什么”,能答清楚的人并不多。我见过不少工作一两年的初级工程师,张嘴就是“变量就…

阅读更多 →
Vue 性能优化:Forced reflow 排查与读写分离实战 2026/10/2 18:35:38

Vue 性能优化:Forced reflow 排查与读写分离实战

控制台里突然刷出一屏[Violation] Forced reflow while executing JavaScript took 87ms,然后页面滚一下来一条、点一下来一条,开发机上还没什么感觉,一上真机就开始"滑动粘手""打字掉帧"——这个场景做 Vue 的同学基本都…

阅读更多 →
OpenShell 终端增强全攻略:从安装到高效工作流搭建 2026/10/2 18:35:38

OpenShell 终端增强全攻略:从安装到高效工作流搭建

1. OpenShell 到底是什么,它解决了什么痛点先说结论:OpenShell 不是一个花哨的"美化终端"小工具,而是一套把命令行操作体验整体重做的开源方案。它的核心思路很直接——把现代 IDE 里那些让人上瘾的交互习惯,比如智能提…

阅读更多 →
MySQL 8.0实战:从安装部署到建库建表与权限管理全攻略 2026/10/2 18:35:38

MySQL 8.0实战:从安装部署到建库建表与权限管理全攻略

1. 为什么"建库建表"这种基础活反而最容易翻车先聊个真实场景。我见过不少开发同学,项目代码写得挺利索,一到自己动手在服务器上装MySQL、建库建表就开始出幺蛾子:刚装好的MySQL 8.0死活连不上,好不容易连上了&#xff…

阅读更多 →
自动化测试核心实战:从pytest框架到接口与UI稳定性排查 2026/10/2 18:35:37

自动化测试核心实战:从pytest框架到接口与UI稳定性排查

自动化测试这事儿,我做了十来年,从最开始一个人闷头写脚本,到后来带团队搭框架、定规范、跑CI,中间踩过的坑比写过的用例都多。每次有新同事问我"自动化到底该怎么搞",我都能聊一下午,但聊完对方…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉