4. 温盐深参数物理定义与单位

CTD数据之所以需要专门讨论“单位”,是因为温度、盐度、压力这三个核心参数各自都有一套历史沿革复杂、彼此不能随意互换的计量体系。同一份CTD原始数据,如果温度按IPTS-68而非ITS-90解读,或盐度把实用盐度当成绝对盐度使用,或压力与深度换算时用错重力加速度,最终得到的密度、声速、热含量等派生量都会系统性偏移。本节围绕四个问题展开:温度用哪个温标、盐度用哪个定义、压力与深度如何换算、以及如何在数据处理中做单位一致性检查。

一、温度:ITS-90温标与历史温标的差异

1990年国际温标(ITS-90)是目前海洋温度数据的法定温标。它用一组定义固定点(如水的三相点273.16 K、镓熔点、水银凝固点等)和规定的内插仪器(标准铂电阻温度计等)来复现热力学温度,海洋观测范围内主要依靠铂电阻温度计分度。CTD的温度传感器出厂标定证书通常直接给出ITS-90下的系数,因此现代CTD数据默认就是ITS-90温标。

问题出在老数据上。1990年以前的大量海洋观测使用IPTS-68温标,两者在海洋温度区间(约-2~35℃)存在约0.001~0.005℃的系统差,且差值随温度变化。这个量级看似很小,但对深层海水密度计算并非无关紧要——海水密度对温度的敏感度在低温低盐区可达约0.1 kg·m⁻³/0.001℃,足以影响位势密度和层结判断。因此处理历史数据时,必须确认温标并做转换,常用近似关系为:

t90 = t68 / 1.00024        (海洋温度范围内的常用近似)
例:t68 = 10.000 ℃  →  t90 ≈ 9.9976 ℃

注意转换方向:由IPTS-68转ITS-90是除以1.00024,数值略微变小。若把方向搞反,误差会翻倍。实际业务中更稳妥的做法是查表或使用TEOS-10官方提供的转换函数,而不是手算近似。

二、盐度:实用盐度SP与绝对盐度SA

实用盐度(Practical Salinity, SP)是无量纲量,PSS-78定义它由电导率比R_t(海水电导率与相同温度压力下质量分数3.2431%的KCl标准溶液电导率之比)经多项式计算得到。它的历史使命是让盐度可以通过电导率快速测定,但严格来说它并不是“每千克海水含多少克盐”的质量分数。

绝对盐度(Absolute Salinity, SA)是TEOS-10引入的量,单位为g·kg⁻¹,表示海水中溶质质量分数的最佳估计。两者关系可近似写为SA = SR·(1+δ),其中SR是由SP换算的参考盐度,δ为绝对盐度异常,与海域、深度有关,大洋中典型量级为±0.01 g·kg⁻¹以内,近岸受陆源径流影响可显著增大。对多数开阔大洋业务应用,SP与SA数值上接近,但单位与物理含义不同:SP无量纲,SA有g·kg⁻¹量纲。在TEOS-10框架下计算密度、声速、热膨胀系数等,必须使用SA而非SP,否则会引入与δ同量级的系统偏差。

判断数据中盐度是SP还是SA,可看变量名与单位:SP通常标注为“PSS-78”或无单位,SA标注为“g/kg”并常伴随“TEOS-10”说明。若数据文件只写“salinity”,必须回溯数据来源与处理软件版本。

三、压力与深度:换算不是简单乘系数

CTD直接测量的是压力p,单位常用dbar(分巴),1 dbar = 10⁴ Pa,海面附近压力约为0 dbar。深度z并不是压力的线性函数,因为海水密度随深度变化,且不同纬度重力加速度不同。常用的换算思路是:由压力经海水状态方程(如TEOS-10的gsw_p_from_z反函数)迭代求深度,或使用近似公式。一个在教学中常用的简化关系是“1 dbar约等于1 m”,但这只在表层、密度接近1030 kg·m⁻³、重力加速度取9.8 m/s²时近似成立,深水或高纬度海域误差可达数十米量级。

更严谨的近似式为z ≈ p/(ρ·g),其中ρ取该压力层的平均密度,g取当地重力加速度(赤道约9.780 m/s²,极地约9.832 m/s²)。例如p=1000 dbar、ρ=1027 kg·m⁻³、g=9.81 m/s²时,z≈1000×10⁴/(1027×9.81)≈992.6 m,与“1 dbar=1 m”相差约7 m。对需要精确深度的应用(如等深面插值、水团分析),必须使用状态方程换算而非固定系数。

CTD三参数:定义、单位与换算链 温度 T ITS-90 温标(现行) 单位:℃ 或 K 历史数据:IPTS-68 t90 = t68 / 1.00024 盐度 S 实用盐度 SP(PSS-78) 无量纲,由电导率比计算 绝对盐度 SA(TEOS-10) 单位:g/kg,SA = SR(1+δ) 压力 p CTD 直接测量量 单位:dbar(1 dbar=10⁴ Pa) 深度 z 需换算 z ≈ p/(ρ·g),非固定系数 TEOS-10 派生量计算 密度 ρ、声速 c、热膨胀系数 α 等 必须使用 SA(g/kg) + t90(℃) + p(dbar) 单位一致性检查:温标版本 → 盐度定义与量纲 → 压力/深度单位 → 派生量输入单位 常见错误:SP 当 SA 用、IPTS-68 未转换、dbar 与 m 混用、℃ 与 K 混用

四、单位一致性检查与常见错误案例

在把CTD数据送入计算流程之前,建议按固定顺序做一次单位体检。第一步查温度:变量单位是℃还是K,温标是ITS-90还是IPTS-68,若是后者先转换。第二步查盐度:是SP还是SA,量纲是无量纲还是g·kg⁻¹,若后续用TEOS-10函数,必须提供SA。第三步查压力与深度:确认p的单位是dbar还是Pa,z是换算得到的还是仪器附带输出,两者不可混用。第四步查派生量输入:TEOS-10的gsw函数对输入单位有明确约定(SA用g/kg、t用℃、p用dbar),传错单位不会报错,只会静默给出错误结果。

几个典型错误案例值得警惕。其一,把PSS-78实用盐度直接当作绝对盐度输入TEOS-10密度函数,在δ较大的近岸海域,密度偏差可达0.01 kg·m⁻³量级,影响层结稳定性判断。其二,历史数据未做IPTS-68到ITS-90转换,温度系统性偏高约0.002~0.004℃,在深层水密度计算中引入可察觉偏差。其三,把压力dbar直接当深度m使用,在1000 m附近产生约7 m的深度误差,等深面插值结果整体偏移。其四,温度单位混用,把K值当℃值代入公式,结果完全失真——这类错误往往因数值量级差异明显而容易被发现,但若数据经过多次格式转换,也可能被掩盖。

单位错误最危险之处在于“不报错”。计算函数只认数值不认单位,错误会一路传递到最终产品。因此每次更换数据源、更换处理软件版本、更换计算库时,都应重新核对单位约定,而不是假定“上次是对的”。

把上述检查固化为流程,可以显著降低出错概率:读取数据后先打印各变量的名称、单位、量纲与数值范围,与预期对照;对盐度做SP/SA判别;对温度做温标判别;对压力与深度做单位判别;确认无误后再进入派生量计算。对批量数据,可编写脚本对每个剖面自动检查数值范围(如温度是否落在-3~40℃、盐度是否落在0~42、压力是否单调不减),异常值往往正是单位错误的信号。