为Hector简单气候模型提供的Python封装
项目描述
pyhector 是简单全球气候碳循环模型 Hector 的Python接口。
pyhector 使得简单气候模型Hector可以从Python轻松安装和使用,例如,它可以用于缓解情景的分析、综合评估模型、复杂气候模型仿真和不确定性分析。
Hector 使用C++编写,并由 太平洋西北国家实验室 开发。
Python接口 pyhector 由 Sven Willner 和 Robert Gieseke 开发。
Pyhector 使用 pybind11 来封装 Hector 的 API。所使用的 Hector 版本可以通过 Pyhector 的 __hector_version__ 字段读取。
安装
先决条件
Hector 需要 Boost,因此要安装和使用 pyhector,您需要安装 Boost 的文件系统模块和系统模块(也请参阅 Hector 构建说明)。
在 Ubuntu/Debian 上,可以通过调用以下命令安装这些模块:
sudo apt-get install libboost-filesystem-dev libboost-system-dev
在 macOS 上,Boost 通过 Homebrew 软件包管理器提供,建议使用通过 Homebrew 安装的 Python 来安装 pyhector。
brew install boost
Windows 在原则上支持(与 Hector 一样),但尚未对 pyhector 进行测试。欢迎提供关于 Windows 的安装说明的拉取请求。
使用 pip 安装
您可以通过调用以下命令从 PyPI 安装 pyhector:
pip install pyhector
用法
此存储库还包含一个您可以在 Jupyter Notebook 中运行和实验的 实时版本,由 Binder 项目提供。您可以使用 nbviewer 将笔记本视为 静态版本。
基本示例
import pyhector
output = pyhector.run(pyhector.ssp126)
高级示例
import pyhector
import matplotlib.pyplot as plt
from pyhector import ssp119, ssp126, ssp245, ssp370, ssp434, ssp460, ssp534_over, ssp585
for ssp in [ssp119, ssp126, ssp245, ssp370, ssp434, ssp460, ssp534_over, ssp585]:
output = pyhector.run(ssp, {"core": {"endDate": 2100}})
temp = output["temperature.global_tas"]
temp = temp.loc[1850:] - temp.loc[1850:1900].mean()
temp.plot(label=ssp.name)
plt.title("Global mean temperature")
plt.ylabel("°C over pre-industrial (1850-1900 mean)")
plt.legend(loc="best")
plt.show()
开发
对于本地开发,您可以克隆存储库,更新依赖关系,并使用 pip 在虚拟环境中安装。
git clone https://github.com/openclimatedata/pyhector.git --recursive
cd pyhector
python3 -m venv venv
./venv/bin/pip install --editable --verbose .
要更新 pyhector 和所有子模块,您可以运行:
git pull --recurse-submodules
git submodule update --init --recursive
./venv/bin/pip install --editable .
可以通过以下方式在本地运行测试:
python setup.py test