用途:把两组独立的海水碳酸盐体系测量值(如总碱度 TA、溶解无机碳 DIC、总标度 pH、pCO2/fCO2 等)求解为物种分布结果,计算总标度 pH、海水 pCO2/fCO2、碳酸根离子、文石/方解石饱和度以及 Revelle 因子,并将实验室条件下测得的体系换算到指定海洋条件,同时量化测量不确定度对结果的影响。适用于瓶样、船载碳酸盐测量与酸化实验。
主要能力:以参考文件规范输入模式与单位约定(TA/DIC/营养盐用微摩尔每千克海水,盐度用实用盐度,温度用现场摄氏度,压力用 dbar 海压,pH 需声明标度,pCO2 与 fCO2 为不同量);提供平衡常数选择指引(pH 标度、碳酸常数、硼酸盐、饱和度解释与不确定度限值),辅助脚本支持碳酸选项 10 和 15,其他体系需另行验证的直接 PyCO2SYS 调用;通过 scripts/solve_carbonate.py 校验整张输入表、求解测量对、检查输出有限性与 DIC 物种平衡,并输出 carbonate.csv 与 provenance.json。需使用两组独立参数,pCO2 加 fCO2 不属独立组合;三组及以上可做超定检验。
安装: uv venv --python 3.13 .venv uv pip install --python .venv/bin/python "PyCO2SYS==1.8.3.4" "numpy==2.5.3" Windows 下解释器路径为 .venv/Scripts/python.exe。目标版本 PyCO2SYS 1.8.3.4,测试于 Python 3.13 与 NumPy 2.5.3;v2 文档为含破坏性变更的测试版,此固定版本应使用 v1 文档。
用法示例:
.venv/bin/python "$SKILL_DIR/scripts/solve_carbonate.py" samples.csv
--par1-type alkalinity --par2-type dic --k-carbonic 10
--output-dir carbonate-results
文档给出合成示例:TA 2300、DIC 2000、盐度 35、25 摄氏度、0 dbar,输出条件 10 摄氏度、1000 dbar 时,总 pH 由 8.045886 变为 8.241241,文石饱和度由 3.386201 变为 2.605691;仅计入 TA 与 DIC 各 2 微摩尔每千克的独立不确定度时,u_pH_total 约为 0.004580。这些为回归校验值,非通用海水基准。
限制:仅涉及海水碳酸盐平衡;淡水、含大量未表征碱度的孔隙水、超出所选校准范围的卤水以及反应/输运模型需要额外化学与验证。不得仅凭碳酸盐平衡推断海气通量或大气碳移除。闭合样品在温度/压力换算中 TA 与 DIC 保持不变,pH 与气体参数会变;不同条件下测得的两个输入不能共用一个温度值,且温度校正无法修复气体交换、生物、蒸发或矿物溶解/沉淀造成的样品变化。结果中带 _out 后缀者对应所给输出温压,无后缀者对应输入条件;气体结果保留未做静水压修正的约定,不宜直接与经压力校正的次表层传感器测量比较。Omega < 1 仅表示相对该矿物的热力学不饱和,不给出溶解速率或生物响应。不确定度传播假设误差独立、未列出的输入与常数为精确值。输入输出的其他细节、上游验证与历史示例请参见随附参考资料。