对应校正后海水盐度
双向换算
比重 / 盐度转换
在当前输入条件下的对应比重
按样品温度计算的海水密度
说明:比重按“样品密度 ÷ 纯水在校准温度下的密度”计算。
调整方案
盐度调整计算器
向系统补加高盐水以达到目标盐度
直接补加模式下总体积会增加
建议分次调整,尤其当目标盐度变化较大时。
计算依据
热力学模型、数值方法与工程假设
本节给出本页面采用的热力学定义、代码调用链、数值求解方法以及工程近似边界。页面的密度计算由官方 TEOS-10 / GSW-JS 工具箱完成;网页表单层仅负责将用户输入映射为函数参数,并在需要时通过代数守恒或数值迭代完成反算。下列内容按“状态量定义 → 原始公式 → 本页实现 → 适用边界”的顺序组织。
1. 符号定义与单位制
- Sdisp:页面显示的盐度数值。界面仍以
ppt形式展示,便于鱼缸和实验场景录入。 - SP:实用盐度 Practical Salinity,PSS-78 量纲约定下为无量纲数值。在本页换算模块中,代码采用
SP = Sdisp。 - SR:参考盐度 Reference Salinity,单位为
g/kg。 - SA:绝对盐度 Absolute Salinity,单位为
g/kg,是TEOS-10热力学函数的严格盐度输入。 - t:原位温度 in-situ temperature,单位为
°C,按ITS-90温标输入。 - p:海压 sea pressure,单位为
dbar。本页面固定采用p = 0 dbar,即表层常压近似。 - ρw(t):纯水在温度
t下的密度,单位为kg/m³。 - ρsw(SA, t, p):海水密度,单位为
kg/m³。 - SG:比重,为样品密度与参考纯水密度之比,无量纲。
- Vtank、Vadd、Vreplace:体积量,单位可采用
L或gal,推导和输入必须保持一致。 - Msystem、Msalt:质量,单位分别采用
kg与换算后的g或kg。
2. TEOS-10 状态量映射
SPcode = Sdisp
SR = (35.16504 / 35) × SPcode = gsw_sr_from_sp(SPcode)
SA ≈ SR
原始定义:TEOS-10 的热力学性质严格写成 SA、t 与 p 的函数;SP 不是热力学方程的最终盐度变量。
本页实现:本页代码先将用户输入盐度数值记为 Sdisp,再直接令 SPcode = Sdisp。随后通过 referenceSalinityFromDisplay(salinityPpt) 调用 gsw_sr_from_sp(SPcode) 获得 SR。
为何仍需近似:完整的绝对盐度应由 gsw_sa_from_sp(SP, p, lon, lat) 结合经纬度和压力求得。当前网页未采集地理位置,因此采用 SA ≈ SR 的表层常压工程近似。
3. 密度的热力学定义与代码调用
v(SA, t, p) = ∂g(SA, t, p) / ∂p
ρ(SA, t, p) = 1 / v(SA, t, p) = 1 / [∂g(SA, t, p) / ∂p]
ρw(t) = ρ(0, t, 0)
ρsw(Sdisp, t) = ρ(SAcode, t, 0),其中 SAcode ≈ gsw_sr_from_sp(Sdisp)
原始热力学关系:在 TEOS-10 中,海水吉布斯自由能为根本状态函数。比容 v 等于吉布斯函数对压力的偏导,密度则为比容的倒数。
本页代码调用链:teosDensityFromSalinity(salinityPpt, tempC) 先调用 referenceSalinityFromDisplay(salinityPpt),再把得到的 SAcode ≈ SR 传给 gsw_rho_t_exact(SAcode, tempC, 0)。纯水密度函数 teosPureWaterDensity(tempC) 则直接调用 gsw_rho_t_exact(0, tempC, 0)。
物理含义:因此,本页所有密度值均不是经验多项式手写近似,而是通过官方 GSW-JS 对 TEOS-10 状态方程的标准实现直接给出。
4. 盐度至比重的换算
SG = ρsw(Sdisp, tsample) / ρw(tref)
ρsample = ρsw(Sdisp, tsample)
ρref = ρw(tref)
推导过程:比重定义为样品密度与参考纯水密度之比。先由 TEOS-10 计算得到样品在测量温度下的密度 ρsample,再以校准温度下纯水密度 ρref 为基准相除,即得到 SG。
本页实现:sgFromSalinity(salinityPpt, sampleTempC, referenceTempC) 内部先求 teosDensityFromSalinity(salinityPpt, sampleTempC) 与 teosPureWaterDensity(referenceTempC),再返回两者比值。
结果解释:输出为无量纲读数,例如 1.0264。在盐度与样品温度相同的前提下,若校准温度 tref 改变,则参考纯水密度改变,因此比重读数也会相应改变。
5. 比重至盐度的换算
ρtarget = SG × ρw(tref)
求解方程 F(Sdisp) = ρsw(Sdisp, tsample) - ρtarget = 0
推导过程:给定比重 SG 后,先由 ρtarget = SG × ρw(tref) 恢复样品应具有的目标密度。随后需要找到某个页面盐度数值 Sdisp,使得 TEOS-10 计算得到的海水密度恰好等于 ρtarget,即求解 F(Sdisp)=0。
本页实现:salinityFromSg(specificGravity, sampleTempC, referenceTempC) 先计算 ρtarget,再在起始区间 [0, 60] 内进行二分法求根;若上界密度仍不足,则按 10 的步长扩展上界,最多扩展到 120。主循环迭代 50 次。
为何采用数值反算:在当前实现中,密度来自 gsw_rho_t_exact 的热力学函数调用,而不是可直接手工反解的低阶显式多项式,因此采用稳定的单变量根求解比构造近似反函数更稳妥。
6. 仪器校准温度的作用
SGmeasured = ρsample / ρpure-water(tref)
原理:比重不是脱离参考条件独立存在的物性,而是以某一参考纯水密度为基准定义的比值。因此,仪器校准温度 tref 必须直接进入分母 ρpure-water(tref),不能仅作为备注信息。
本页实现:页面在“比重 → 盐度”方向默认采用 17.5°C,在“盐度 → 比重”方向默认采用 25°C;用户也可切换到 20°C 或自定义温度。无论选择何值,代码都会将该温度传入 teosPureWaterDensity(referenceTempC)。
7. 校准报告修正的参与方式
SGcorrected = SGmeasured + Correction(SGmeasured)
若 SG1 ≤ SGmeasured ≤ SG2,则 Correction(SGmeasured) = C1 + (C2 - C1) × (SGmeasured - SG1) / (SG2 - SG1)
推导过程:校准报告通常给出若干离散标称比重点以及各点修正值。若测得值位于相邻两点之间,可将修正函数视为局部线性函数,用一次线性插值得到当前读数的修正量,再叠加到原读数上。
本页实现:interpolateCalibration(sg, table) 对表格按标称比重排序,完成区间判定、端点截取或线性插值;随后由 correctedSg = measuredSg + correction 得到修正后比重,再将其送入 salinityFromSg(...)。
不确定度处理:页面会随插值同步给出不确定度的线性插值显示,但当前版本尚未把该不确定度继续传播为盐度结果的不确定度带。
8. 盐度调整计算
Vadd = Vtank × (Starget - Scurrent) / (Ssource - Starget)
Vreplace = Vtank × (Starget - Scurrent) / (Snew - Scurrent)
Msalt = Msystem × (Starget - Scurrent) / (1000 - Starget)
(Vtank × Scurrent + Vadd × Ssource) / (Vtank + Vadd) = Starget
[(Vtank - Vreplace) × Scurrent + Vreplace × Snew] / Vtank = Starget
(Msystem × Scurrent / 1000 + Msalt) / (Msystem + Msalt) = Starget / 1000
推导过程:直接补加和等体积换水均来自盐质量守恒。第一式把“原系统盐量 + 补加盐量”除以“最终总体积”后等于目标盐度,移项即可得 Vadd。第二式表示先换出一部分原水、再换入等体积新水后的最终盐度,整理后得到 Vreplace。第三式把当前系统内溶解盐质量与新增纯盐质量相加,再除以最终总质量,可解得 Msalt。
本页实现:液态模式直接按代数显式公式求值。固体盐模式先由 Msystem = ρsw(Scurrent, t) × Vtank 估算当前系统总质量,其中密度来自 teosDensityFromSalinity(Scurrent, t),再代入第三式求得 Msalt。
解释边界:该模块是工程守恒计算,不单独求解完整混合热力学平衡;因此未额外考虑混合收缩、温度漂移、盐产品含结晶水或添加剂等细节。
9. 适用范围与假设
- 换算模块的盐度解释:在“比重 / 盐度转换”模块中,输入的页面盐度数值先按
SP数值处理,再映射为SR,并以SA ≈ SR的近似进入TEOS-10。 - 调整模块的盐度解释:在“盐度调整计算器”模块中,页面盐度数值按工程守恒近似参与质量平衡;固体盐模式需要估算系统质量时,会再次把当前盐度数值送入
TEOS-10密度函数。 - 压力条件:当前网页固定取
p = 0 dbar,适用于表层、常压和普通实验/鱼缸场景,不适用于深水或高压环境修正。 - 绝对盐度近似:由于未输入经度、纬度与压力场,当前不调用完整的
gsw_sa_from_sp,而采用SA ≈ SR的工程近似。 - 体积混合假设:液体混合按体积线性相加处理,未额外考虑混合收缩或器壁残留。
- 温度进入方式:温度影响通过样品温度
t与仪器校准温度tref进入密度与比重定义;未额外模拟环境传热、仪器老化或时间漂移。 - 不确定度边界:校准报告中的不确定度目前仅展示,不自动传播到最终盐度结果。
- 使用范围:建议用于约
0 - 60的淡水至海缸常见盐度区间;若需科研级海洋资料处理,应补充位置、压力与完整绝对盐度链路。
参考来源
下列来源按“规范性标准文件”“实现与工具箱来源”“函数级技术文档”分组列示,用于对应本页面所采用的热力学定义、代码实现与具体函数调用依据。
规范性标准文件
实现与工具箱来源
- TEOS-10 / GSW-JS. Official JavaScript implementation of the Gibbs SeaWater Oceanographic Toolbox used by this page for density evaluation. Repository
- McDougall, T. J., & Barker, P. M. (2011). Getting started with TEOS-10 and the Gibbs Seawater (GSW) Oceanographic Toolbox. PDF
函数级技术文档
标准更新关系:根据 TEOS-10 官方站点公开说明,TEOS-10 于 2009年6月 被 IOC 采纳,用以替代 EOS-80 作为海水与海冰性质的官方描述。本页面现已切换到 TEOS-10 / GSW-JS 作为核心计算基础。
实现说明:当前网页对密度的求值直接调用官方 GSW-JS 函数;网页自身只负责表单映射、报告修正、代数守恒和二分法反算。由于当前表单没有经纬度和海压输入,绝对盐度部分仍采用 SA ≈ SR 的工程近似。若未来补充位置与压力字段,可扩展为完整 gsw_sa_from_sp 链路。