为简单气候模型进行校准
项目描述
scmcallib 是一个工具,用于简化简单气候模型(SCMs)参数集的推导。目前,两个主要用例是
“模拟”其他模型,通常是更复杂且计算成本更高的模型
“校准”到观测数据,即推导出参数集,使得SCM的响应能够涵盖历史观测的不确定性范围
这个包符合更广泛的工具生态系统,旨在为多种SCMs、观测数据和气候模型输出创建透明且可重复的参数集生成方式。scmcallib 使用 scmdata 和 netcdf-scm,以便轻松地与各种SCMs和气候模型输出进行接口,隐藏运行这些“简单”气候模型和处理复杂模型输出的复杂性。
入门指南
在《scmcallib》中使用的许多库需要编译后的库和其他系统依赖。为了更方便地开始此项目,建议设置一个新的Conda环境来隔离这些库。由于该软件包目前无法通过pypi安装,您必须从源代码安装它。
$ git clone git://gitlab.com/magicc/scmcallib
$ cd scmcallib
$ conda env create --name scmcallib --file environment.yml
$ conda activate scmcallib
$ pip install -e .
安装完成后,scmcallib软件包即可生成参数集。
仿真
仿真是指找到一组参数,这些参数最能拟合另一个模型的结果。一旦找到了参数空间中这个最佳拟合点,SCM提供了一种计算成本低的探索方法,以了解这些较大的模型在各种场景下的响应。
TODO:添加有关提取的文档
在开始仿真模型之前,我们必须定义约束参数的参数分布的初始猜测(即先验),对于正在约束的参数。
[TODO:决定是否将此示例放入笔记本中,以便在CI下运行]
from scmcallib import ParameterSet
best_guess_c1 = 0.631
best_guess_c2 = 0.429
best_guess_a1 = 0.2240
param_set = ParameterSet()
param_set.set_tune('c1', Bound(Normal(mu=best_guess_c1, sd=1.), lower=0.1))
param_set.set_tune('c2', Bound(Normal(mu=best_guess_c2, sd=0.1), lower=0.1))
param_set.set_tune('a1', Bound(Normal(mu=best_guess_a1, sd=0.1), lower=0.0, upper=0.4))
一旦我们有了描述模型如何被约束的数据和参数,我们就可以实例化PointEstimateFinder。在此示例中,我们使用A5IR SCM [TODO:填写AR5IR SCM以使其真正完整],这是一个基本但非常快的模型,用于加速仿真过程。仿真的第一步是找到优化的初始起点。然后,这个起点被优化器用来找到参数空间中使SCM输出与目标时间序列(通常来自更复杂的模型)之间的差异最小化的点。
from scmcallib import PointEstimateFinder
from scmcallib.scm import AR5IR_SCM
emulator = PointEstimateFinder(param_set, reference_period=(2000, 2010))
emulator.set_target(observed=observed_gmt)
with AR5IR_SCM() as scm:
results = emulator.find_best_fit(scm, optimiser_name='bayesopt')
results.plot_summary()
results.plot_fit()
scmcallib提供了一种读取tuningcore文件的方法,这些文件由simcap使用来描述如何调整magicc。
校准
运行简单的校准示例
编辑calibration.py和run_calibration.py以适应您的个人设置
然后运行python run_calibration.py
使用notebooks/show_calibration.ipynb可视化
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。
源分发
构建分发
scmcallib-0.5.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4bc36c400723b2c96e9ea16572ccf49572305c4aed22e319a7943fa8f3c90bd9 |
|
MD5 | 9ecd460c89abbcfcdefcee146359e369 |
|
BLAKE2b-256 | fb98d56776e798216daec3d6330406cc7b658a83a492f2304279350dc942933d |
scmcallib-0.5.1-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 83be80e827ee73bcab79b9e15f8be4bf226de5ba76399397142423c2da37ebd9 |
|
MD5 | 1adfc8b1b473a0e1331eb6f6d5d1931d |
|
BLAKE2b-256 | 011d40d340006f44bed4cb0976e70c2bde3daaee602f7e7c70f3efd507b6e439 |