4. 盐度与密度剖面联合可视化
在海洋水文分析中,温度、盐度与密度三者并不是彼此独立的观测量。海水密度主要由温度和盐度共同决定,而密度又是判断水团层结稳定性、垂向混合与环流结构的关键参数。本节要完成的任务,是把同一组温盐剖面数据同时呈现为两种互补的视图:一张以盐度为横轴、温度为纵轴的 T-S 点聚图,用来识别水团及其混合关系;一张以位密为横轴的垂向剖面图,用来观察密度随深度的层结变化。两者结合,才能既看清"水团是什么",又看清"水团如何分层"。
为什么必须用 gsw 而不是手算密度
很多初学者会直接用经验公式从温度、盐度估算密度,但在现代海洋观测中,更规范的做法是使用 TEOS-10 标准下的 gsw(Gibbs SeaWater)库。原因在于:现场测得的电导率对应的是实用盐度 SP,而密度计算需要的是绝对盐度 SA;同时,位密(potential density)需要指定参考压力,以消除压缩性对密度的影响。gsw 提供了从电导率到实用盐度、再到绝对盐度、最后到不同参考压力下位密度的完整链条,避免了单位与定义混用带来的系统偏差。
典型的数据准备与计算流程如下(示例参数为合理假设,非实测结果):
import numpy as np
import gsw
import matplotlib.pyplot as plt
# 假设已有剖面数组:depth(m), t90(℃), sp(实用盐度), lon, lat
depth = np.array([0, 10, 25, 50, 75, 100, 150, 200])
t90 = np.array([18.2, 17.9, 17.1, 15.6, 13.8, 11.9, 9.4, 8.1])
sp = np.array([34.10, 34.15, 34.28, 34.45, 34.62, 34.71, 34.78, 34.80])
lon, lat = 118.5, 22.0
# 1) 由实用盐度换算绝对盐度
sa = gsw.SA_from_SP(sp, depth, lon, lat)
# 2) 由温度、绝对盐度、压力计算位密(参考压力 0 dbar)
p = gsw.p_from_z(-depth, lat) # 深度转压力
ct = gsw.CT_from_t(sa, t90, p) # 保守温度
sigma0 = gsw.sigma0(sa, ct) # 位密异常 kg/m³
# 3) 计算 T-S 图上的等密线背景
sp_grid = np.linspace(33.5, 35.2, 120)
t_grid = np.linspace(5, 20, 120)
SP, T = np.meshgrid(sp_grid, t_grid)
SA_g = gsw.SA_from_SP(SP, 0, lon, lat)
CT_g = gsw.CT_from_t(SA_g, T, 0)
SIG = gsw.sigma0(SA_g, CT_g)
这里有几个容易出错的细节。第一,gsw.p_from_z 的输入深度应为负值(海面为 0,向下为负),这是 TEOS-10 的符号约定,全文与图示都遵循"深度向下为正、压力随深度增大"的展示习惯,但调用函数时深度取负。第二,位密应使用保守温度 CT 而非现场温度 t90 计算,否则在深层会引入偏差。第三,等密线背景要用同一套 gsw 函数生成,保证与散点处于同一坐标系。
T-S 点聚图:让水团"站队"
T-S 图的价值在于:同一水团在温盐关系上往往表现为一条较紧凑的曲线或点簇,不同水团则占据不同区域;两个水团混合时,混合点大致落在连接两者的直线上。因此,把剖面点按深度着色画在 T-S 平面上,再叠加等密线,就能同时读出三件事:水团的位置、混合的趋势、以及密度沿温盐变化的梯度方向。
绘制时,用 plt.contour 画等密线并标注 sigma0 值,用 scatter 画剖面点并以深度作为颜色映射,最后用 colorbar 说明颜色含义。观察要点是:若散点沿某条等密线密集排列,说明该段水体接近中性层结;若散点跨越等密线,则意味着存在密度变化,可能对应跃层。下图展示了这一联合视图的结构关系。
密度剖面的读法与常见判读
位密剖面通常把深度画在纵轴并向下增大,位密画在横轴。曲线随深度向右偏移,说明密度随深度增大,水体稳定层结;若某一段曲线近乎竖直,说明该段密度变化很小,接近均匀层;若曲线在某深度区间快速右移,则对应密度跃层,往往是温跃层或盐跃层的综合反映。把 T-S 图与密度剖面并置后,可以交叉验证:T-S 图上散点跨越等密线的区段,应当与密度剖面上曲线快速偏移的深度区间大致对应。如果两者对不上,就要回头检查深度、压力、盐度单位或参考压力是否一致。
实际绘图时,建议把两张子图放在同一画布上,用 plt.subplots(1, 2) 布局,并让 T-S 图的颜色映射与剖面图的深度刻度使用同一色标,便于读者把点与层对应起来。等密线标签用 clabel 自动标注,避免手工摆放。若剖面点较多,可对散点做轻微透明处理(alpha=0.7),防止重叠遮挡。
完成上述两张图后,一份可复用的成果是"联合剖面图 + 关键判读记录"。记录中至少应包含:数据来源与经纬度、使用的参考压力、位密范围、疑似跃层深度区间,以及 T-S 图上识别出的主要水团或混合趋势。这样,图形就不只是好看,而是能支撑后续的水团划分与层结分析。