2. 波浪观测数据获取与预处理实战
波浪谱分析的质量上限,在数据进入频谱计算之前就已经被决定了。无论后续的谱估计方法多么精细,如果输入序列中存在未识别的缺测段、缓慢漂移或个别极端野值,谱形都会出现虚假的能量峰、低频抬升或高频噪声底抬高。本节围绕三类主流波浪观测手段的数据特点,讲清楚从原始记录到可用于谱分析的干净序列之间,需要完成哪些判断与操作。
三类数据源的特性差异
浮标是最常见的波浪观测平台,通常以加速度计或倾斜仪测量浮体运动,再通过传递函数反演得到水面高程。其数据为定点时间序列,采样频率常见为 1~4 Hz,记录长度多为 17~34 分钟的原始段,再统计为逐半小时或逐小时的波要素与谱。浮标数据的优势是时间连续、谱形完整,缺点是存在锚系失效、通信中断、传感器漂移导致的整段缺失或缓慢基线偏移。
雷达(如 X 波段导航雷达、高频地波雷达)通过海面后向散射成像反演波浪场,输出的是空间上的波数—频率信息或二维图像序列。其数据为面状分布,能反映波场空间不均匀性,但受降雨、海面浮油、低风速等因素影响,信噪比波动大,且反演算法本身引入系统性偏差。
卫星高度计是沿轨观测,单点采样间隔约 1 秒,沿轨空间分辨率约 7 km,返回有效波高、风速和后向散射系数。它的优势是全球覆盖、长期一致性好,缺点是时间上稀疏(重访周期数天至数十天)、无法给出方向谱,且近岸浅水与降雨条件下有效波高会被污染。
缺失值处理:先判断缺测类型,再决定填补策略
缺测不能一概而论。浮标数据中常见的缺测有三类:单点或短时尖峰丢失(传感器瞬时饱和)、整段连续缺失(通信中断或供电故障)、以及周期性缺测(如每小时的校准窗口)。对第一类,若缺失点数少于总点数的 1% 且不连续,可直接线性插值;对第二类,若连续缺失超过记录长度的 10%,插值会引入虚假的低频能量,正确做法是将该段标记为无效并整段剔除,而不是强行补齐。
一个可操作的判断流程是:先统计缺失比例与最长连续缺失长度,再决定处理方式。以 2048 点、采样间隔 0.5 s 的浮标段为例,若缺失 12 点且分散,线性插值后对谱的影响可忽略;若中间连续缺失 300 点(约 150 s),则相当于在序列中挖去一个低频周期,插值会人为制造一个缓变趋势,谱在 0.01 Hz 附近出现虚假抬升。此时应将该段判为无效,或改用相邻有效段拼接并记录拼接位置。
import numpy as np
def fill_gaps(x, max_gap=5):
"""线性插值填补短缺口,长缺口保留 NaN 并返回掩膜"""
x = x.astype(float).copy()
nan_idx = np.isnan(x)
if not nan_idx.any():
return x, np.ones_like(x, dtype=bool)
# 标记连续缺口长度
valid_mask = ~nan_idx
idx = np.arange(len(x))
x_filled = np.interp(idx, idx[valid_mask], x[valid_mask])
# 找出连续缺口超过 max_gap 的区间
gap_id = np.cumsum(nan_idx & ~np.r_[False, nan_idx[:-1]])
for g in np.unique(gap_id[nan_idx]):
seg = np.where(gap_id == g)[0]
if len(seg) > max_gap:
valid_mask[seg] = False
x_filled[~valid_mask] = np.nan
return x_filled, valid_mask
去趋势:消除非波浪因素的缓慢漂移
浮标记录中常含有仪器基线漂移、潮位变化或长周期涌浪叠加造成的缓慢趋势。若不去除,这部分能量会在谱的低频端形成一个大峰,掩盖真实的风浪谱形。常用做法是对整段序列拟合一次线性趋势并减去,或采用高通滤波保留 0.03 Hz 以上的成分。需要注意,去趋势会同时削弱真实的长周期涌浪能量,因此对以涌浪为主的观测段,应慎用线性去趋势,改为仅去除均值或使用更长的记录段。
实际操作中,可先计算序列的线性拟合斜率,若斜率对应的整段漂移量超过有效波高统计量的 10%,则说明趋势不可忽略。例如一段 34 分钟记录,有效波高约 1.2 m,若线性拟合显示整段抬升 0.15 m,则漂移占比约 12%,应执行去趋势;若仅抬升 0.03 m,则可只去均值。
异常值剔除:区分野值与真实大浪
异常值剔除最容易犯的错误,是把真实的大浪当成野值剔除。合理的做法是基于局部统计而非全局阈值。常用判据是:对序列做滑动中值滤波得到基线,计算残差,若某点残差超过局部标准差(如 5 倍)且该点前后变化率异常,则判为野值。对于浮标加速度数据,还可结合物理上限判断,例如有效波高 3 m 的海况下,单点水面高程超过 8 m 基本可判为异常。
剔除后的处理不是简单置零,而是将该点标记为缺测,再按缺测策略处理。置零会在谱的高频端引入宽带噪声,这是初学者常犯的错误。
数据质量评估:给每段数据一个可信度标签
预处理完成后,应为每段数据生成质量标记,供后续谱分析筛选。建议至少记录以下指标:有效数据比例、最长连续缺失长度、去趋势前后方差变化、剔除野值数量、以及谱计算后的高频噪声底水平。可据此将数据分为三级:A 级(有效比例大于 95%、无长缺口、野值少于 0.5%)可直接用于谱分析;B 级(有效比例 80%~95%)可用于统计但需在结果中注明;C 级(有效比例低于 80% 或存在长缺口)不进入谱分析。
完成上述四步后,进入谱估计的序列应满足:等间隔采样、零均值、无未标记缺测、无野值、并附带质量等级。这一步做扎实,后续的谱形解读才有意义。