3. 时间序列整理的核心任务与工作流

海洋监测浮标、潜标、岸基雷达和志愿观测船每天都会产生大量原始记录,但这些记录几乎不可能直接用于分析。原始文件往往按“一次投放、一个传感器、一段布放周期”组织,时间戳格式不统一,缺测、重复、跳变、单位混用和仪器漂移交织在一起。时间序列整理的本质,是把这些异构、零散的观测记录,转换为时间基准统一、质量可追溯、结构规整的数据集,使后续的统计、趋势分析和模型同化有可靠输入。

本节围绕五项核心任务展开:数据清洗、时间对齐、插值、质量控制与存储管理,并以一份真实浮标数据的整理流程为例,说明从原始文件到规整时间序列的完整工作流。

五项核心任务的分工

数据清洗处理的是“明显不合理”的记录:重复行、空值占位符(如 -999、9999、NaN 字符串)、单位不一致(水温既有摄氏度也有开尔文)、字段错位、编码乱码。清洗的原则是只做可判定的修正,不做主观猜测,所有被删除或修改的记录都应留下标记。

时间对齐解决的是“同一时刻”的定义问题。浮标传感器采样周期常为 10 分钟或 1 小时,但不同传感器启动时刻不同,GPS 时间与仪器内部时钟也可能存在偏移。对齐通常包括三步:统一时间格式为 ISO 8601 并明确时区(海洋数据一般统一到 UTC)、按固定时间间隔重采样、处理重复时间戳(保留首条或按规则合并)。

插值用于填补短时缺测,但必须谨慎。海洋要素具有明显的自相关性,短缺口(如连续 1~3 个采样点)可用线性插值或前向填充;较长缺口(如超过 6 小时)不宜插值,应保留为空并记录缺口长度。插值不是“补数据”,而是“标记为估计值”,二者在元数据中必须区分。

质量控制是整理工作的核心。常用手段包括:范围检查(水温是否在 -2~40 ℃ 之间)、变化率检查(相邻两点温差是否超过物理可能)、持续性检查(连续多个相同值可能意味着传感器卡死)、交叉一致性检查(气温与水温、盐度与电导率的合理关系)。每条记录应被打上质量标志,如 0=未检验、1=通过、2=可疑、3=错误、4=插值估计。

存储管理决定数据能否被长期复用。推荐采用“原始层—清洗层—成果层”的分层结构:原始文件只读保存,清洗层保留全部中间标记,成果层输出规整的 NetCDF 或 Parquet 文件,并附带元数据(站点、经纬度、传感器型号、时间范围、质量标志说明)。

浮标原始文件 → 规整时间序列:五阶段整理工作流 ① 原始层(只读) 浮标 .raw / .csv 多传感器分文件 时间戳格式混杂 含 -999 占位符 ② 数据清洗 去重、空值替换 单位统一(℃、PSU) 字段错位修正 保留修改日志 ③ 时间对齐 统一 UTC / ISO 8601 重采样为 10 min 重复时间戳合并 时钟偏移校正 ④ 插值 + 质控 短缺口线性插值 范围/变化率检查 持续性/交叉检查 写入质量标志 0–4 ⑤ 存储 NetCDF Parquet 元数据 版本号 示例:某浮标 2024-06-01 水温记录在各阶段的变化 原始记录(节选) 2024/6/1 08:00, 18.2 2024/6/1 08:00, 18.2 2024/6/1 08:10, -999 清洗后 2024-06-01T08:00Z, 18.2 2024-06-01T08:10Z, NaN 2024-06-01T08:20Z, 18.4 对齐 + 插值 08:00Z, 18.2, Q=1 08:10Z, 18.3, Q=4 08:20Z, 18.4, Q=1 质控判定 范围检查:通过 变化率:0.1℃/10min 通过 插值点标记 Q=4 质量标志约定(贯穿全流程,写入成果文件) Q=1 通过检验 可直接使用 Q=2 可疑 需人工复核 Q=3 错误 剔除或置空 Q=4 插值估计 非实测值 Q=0 未检验 原始层默认状态

整理流程设计:先定规则,再动数据

流程设计的关键不是写多少代码,而是先把规则定清楚。建议在动手前明确四件事:时间基准(统一 UTC,采样间隔 10 分钟)、缺测表示(统一用 NaN,禁止 -999 混入计算)、质量标志体系(0~4 五级)、成果文件结构(一行一个时间点,一列一个要素,附质量标志列)。规则一旦确定,就应写入配置或文档,保证同一批数据可重复处理。

以某浮标 2024 年 6 月布放数据为例,原始文件包含水温、盐度、气温三个传感器文件,采样间隔均为 10 分钟,但时间戳分别写作“2024/6/1 08:00”“2024-06-01 08:00:00”和“20240601T080000”。整理时先统一解析为 UTC 时间,再按 10 分钟网格重采样。清洗阶段发现水温文件存在连续重复行和 -999 占位符,盐度文件有 3 条记录字段错位,均按规则修正并记录日志。

对齐后进入插值与质控。示例中 08:10 的水温缺测,前后两点为 18.2 ℃ 和 18.4 ℃,缺口仅 1 个采样点,采用线性插值得到 18.3 ℃,并标记 Q=4。随后执行范围检查(-2~40 ℃)、变化率检查(相邻 10 分钟温差不超过 1 ℃)、持续性检查(连续 6 个相同值判为可疑)。最终成果文件按时间升序排列,每行包含时间、水温、盐度、气温及各自质量标志。

插值只用于短缺口,且必须打上 Q=4 标志。若后续分析对实测值要求严格,可在读取时按质量标志过滤,只保留 Q=1 的记录,这样既不丢失信息,也不污染统计结果。

从原始文件到成果文件的落地要点

实际执行时,建议把整理过程写成可重复运行的脚本,而不是手工改表。脚本应包含:读取原始文件、解析时间、清洗、重采样、插值、质控、写出成果文件七个环节,每个环节输出一份处理日志(处理了多少行、删除了多少条、插值了多少点、各质量标志的计数)。日志是判断整理是否成功的重要依据——如果某天 Q=3 的记录突然增多,往往意味着传感器故障或布放异常,需要回溯原始数据。

存储管理上,原始层保持只读,清洗层保留全部中间结果,成果层输出 NetCDF 或 Parquet。成果文件的元数据至少应包含:站点编号、经纬度、传感器型号、时间范围、采样间隔、质量标志定义、处理脚本版本号。这样即使半年后重新使用这批数据,也能清楚知道每个值的来源和可信程度。

最后需要强调,时间序列整理不是一次性任务。浮标数据会持续回收,整理流程应设计为可增量运行:新数据到达后,只处理新增时间段,并与已有成果文件按时间拼接、去重。只有把规则、脚本、日志和元数据固定下来,整理工作才能从“一次性劳动”变成“可复用的数据生产线”。