3. 时间序列整理的核心任务与工作流
海洋监测浮标、潜标、岸基雷达和志愿观测船每天都会产生大量原始记录,但这些记录几乎不可能直接用于分析。原始文件往往按“一次投放、一个传感器、一段布放周期”组织,时间戳格式不统一,缺测、重复、跳变、单位混用和仪器漂移交织在一起。时间序列整理的本质,是把这些异构、零散的观测记录,转换为时间基准统一、质量可追溯、结构规整的数据集,使后续的统计、趋势分析和模型同化有可靠输入。
本节围绕五项核心任务展开:数据清洗、时间对齐、插值、质量控制与存储管理,并以一份真实浮标数据的整理流程为例,说明从原始文件到规整时间序列的完整工作流。
五项核心任务的分工
数据清洗处理的是“明显不合理”的记录:重复行、空值占位符(如 -999、9999、NaN 字符串)、单位不一致(水温既有摄氏度也有开尔文)、字段错位、编码乱码。清洗的原则是只做可判定的修正,不做主观猜测,所有被删除或修改的记录都应留下标记。
时间对齐解决的是“同一时刻”的定义问题。浮标传感器采样周期常为 10 分钟或 1 小时,但不同传感器启动时刻不同,GPS 时间与仪器内部时钟也可能存在偏移。对齐通常包括三步:统一时间格式为 ISO 8601 并明确时区(海洋数据一般统一到 UTC)、按固定时间间隔重采样、处理重复时间戳(保留首条或按规则合并)。
插值用于填补短时缺测,但必须谨慎。海洋要素具有明显的自相关性,短缺口(如连续 1~3 个采样点)可用线性插值或前向填充;较长缺口(如超过 6 小时)不宜插值,应保留为空并记录缺口长度。插值不是“补数据”,而是“标记为估计值”,二者在元数据中必须区分。
质量控制是整理工作的核心。常用手段包括:范围检查(水温是否在 -2~40 ℃ 之间)、变化率检查(相邻两点温差是否超过物理可能)、持续性检查(连续多个相同值可能意味着传感器卡死)、交叉一致性检查(气温与水温、盐度与电导率的合理关系)。每条记录应被打上质量标志,如 0=未检验、1=通过、2=可疑、3=错误、4=插值估计。
存储管理决定数据能否被长期复用。推荐采用“原始层—清洗层—成果层”的分层结构:原始文件只读保存,清洗层保留全部中间标记,成果层输出规整的 NetCDF 或 Parquet 文件,并附带元数据(站点、经纬度、传感器型号、时间范围、质量标志说明)。
整理流程设计:先定规则,再动数据
流程设计的关键不是写多少代码,而是先把规则定清楚。建议在动手前明确四件事:时间基准(统一 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=3 的记录突然增多,往往意味着传感器故障或布放异常,需要回溯原始数据。
存储管理上,原始层保持只读,清洗层保留全部中间结果,成果层输出 NetCDF 或 Parquet。成果文件的元数据至少应包含:站点编号、经纬度、传感器型号、时间范围、采样间隔、质量标志定义、处理脚本版本号。这样即使半年后重新使用这批数据,也能清楚知道每个值的来源和可信程度。
最后需要强调,时间序列整理不是一次性任务。浮标数据会持续回收,整理流程应设计为可增量运行:新数据到达后,只处理新增时间段,并与已有成果文件按时间拼接、去重。只有把规则、脚本、日志和元数据固定下来,整理工作才能从“一次性劳动”变成“可复用的数据生产线”。