简单气候模型magicc的python包装器

pymagicc的Python项目详细描述


PyMagicc

Build StatusAppVeyor
CodecovLaunch Binder
PyPIPyPI
statusZenodo

PyMaGICC是一个围绕复杂气候模型的Python包装器 MAGICC6。它包装了CC-BY-NC-SA许可证 MAGICC6 binary。pymagicc本身就是agpl许可的。

温室气体引起的气候变化评估模型 广泛应用于气候政策分析中未来排放途径的评估, 例如,在 政府间气候变化专门委员会或在综合评估模型中模拟气候变化的物理方面。

pymagicc使magicc模型易于从python安装和使用,并允许直接从python轻松修改所有magicc模型参数和排放场景。 例如,在气候研究中,它可用于缓解情景分析、综合评估模型、复杂气候模型仿真、不确定性分析以及气候科学教育和传播。

有关详细信息,请参见www.magicc.orgMeinshausen et al. 2011

基本用法

importpymagiccfrompymagiccimportscenariosimportmatplotlib.pyplotaspltforname,sceninscenarios.items():results,params=pymagicc.run(scen,return_config=True)temp=(results["SURFACE_TEMP"].GLOBAL.loc[1850:]-results["SURFACE_TEMP"].GLOBAL.loc[1850:1900].mean())temp.plot(label=name)plt.legend()plt.title("Global Mean Temperature Projection")plt.ylabel(u"°C over pre-industrial (1850-1900 mean)")# Run `plt.show()` to display the plot when running this example# interactively or add `%matplotlib inline` on top when in a Jupyter Notebook.

有关更多示例用法,请参见Jupyter Notebook。 由于有了Binder projectNotebook可以运行和修改,而无需在本地安装任何东西。使用jupyter笔记本的小型交互式demo app 也可以使用。

安装

pip install pymagicc

在Linux和OS X上,可在 http://www.magicc.org/并包含在pymagicc中 可以使用Wine运行。

在现代64位系统中,需要使用32位版本的Wine

sudo dpkg --add-architecture i386
sudo apt-get install wine32

在32位系统上,基于debian/ubuntu的系统wine可以用

sudo apt-get install wine

在OS X上,wine可在自制包管理器中找到:

brew install wine

它也应该可以在其他包管理器中使用,也可以直接从Wine project获得。

注意,在第一次安装之后,pymagicc的第一次运行可能会很慢,因为 设置wine配置并伴随弹出窗口或 调试输出。

要使用jupyter notebook和python 3运行示例会话,可以运行 以下命令创建虚拟环境并安装 本地开发的可编辑版本:

git clone https://github.com/openclimatedata/pymagicc.git

cd pymagicc
make venv
./venv/bin/pip install --editable .
./venv/bin/jupyter-notebook notebooks/Example.ipynb

开发

对于本地开发,请从pymagicc存储库的克隆或下载中安装依赖项和pymagicc的可编辑版本,方法是

make venv
./venv/bin/pip install --editable .

要运行测试,请运行

./venv/bin/pytest tests --verbose

要跳过运行magicc并花费更长时间的测试,请使用

./venv/bin/pytest tests --skip-slow

要获取测试覆盖率报告,请运行

./venv/bin/pytest --cov

为了统一编码风格,使用了black

要格式化pymagicctests以及setup.py中的文件,请运行

make black

更多用法示例

使用包含的场景

frompymagiccimportrcp26rcp26["WORLD"].head()

阅读magicc场景文件

frompymagiccimportread_scen_filescenario=read_scen_file("PATHWAY.SCEN")

创建新方案

pymagicc使用pandas数据帧来表示场景。字典是 用于具有多个区域的方案。

importpandasaspdscenario=pd.DataFrame({"FossilCO2":[8,10,9],"OtherCO2":[1.2,1.1,1.2],"CH4":[300,250,200]},index=[2010,2020,2030])

为场景运行magicc

output=pymagicc.run(scenario)# Projected temperature adjusted to pre-industrial meantemp=(output["SURFACE_TEMP"].GLOBAL-output["SURFACE_TEMP"].loc[1850:2100].GLOBAL.mean())

使用不同的magicc版本

magicc的自定义版本可以与使用 MAGICC_EXECUTABLE_6MAGICC_EXECUTABLE_7magicc6的环境变量 和magicc7。这些环境变量应设置为 magicc可执行文件的位置(对于linux/mac,可以是magicc),或者 magicc.exe对于windows)。 例如,位于/tmp/magicc的自定义magicc7文件夹可以用于 在Linux下,通过将MAGICC_EXECUTABLE_7设置为/tmp/magicc/run/magicc

bash中的示例用法:

MAGICC_EXECUTABLE_7=/tmp/magicc/run/magicc.exe python run_tests.py

或者在脚本中:

#!/bin/bashexportMAGICC_EXECUTABLE_7=tmp/magicc/run/magicc.exe
python run_tests.py
python generate_plots.py

贡献

请报告问题或讨论PyMagicc的功能请求 issue tracker

您也可以通过电子邮件联系pymagicc作者 robert.gieseke@pik-potsdam.de

许可证

汤姆·维格利的compiled MAGICC binary, Sarah Raper和Malte Meinshausen包含在这个包中,是根据Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License授权的。

包装器是GNU Affero General Public下的免费软件 许可证v3,请参见LICENSE

如果你做的话使用magicc,请引用:

M. Meinshausen, S. C. B. Raper and T. M. L. Wigley (2011). "Emulating coupled atmosphere-ocean and carbon cycle models with a simpler model, MAGICC6: Part I "Model Description and Calibration." Atmospheric Chemistry and Physics 11: 1417-1456. doi:10.5194/acp-11-1417-2011

另请参见MAGICC websiteWiki 了解更多信息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何获取元素的文本值   javascript多websockets java   java无法在solaris中为非root用户打开选择器   SwingJava。如何使Jtable特定单元格不可选择?   java Android Studio从drawable中的文件夹获取图像   数组for循环中需要的Java变量   在Java中打印数组的索引   java HystrixCommand在Glassfish中运行时未通过JMX暴露   java Spring boot如何配置多个数据源   多线程Java threadsafe集合,在移除/获取时进行排序   java从ItemStack获取项目槽   eclipse中的java Access弹出菜单是用菜单(控件父级)构造函数创建的   java从POJO调用基于Spring的web应用程序类   使用文件集时,java Ant javadoc不会产生任何结果   java Jetty多个接受程序被阻止,等待锁定,对象被其他接受程序锁定   我不断得到的java在使用Comparable时找不到符号错误   java如何从<a href标记中提取特定url?   java如何在运行时向ScrollView添加文本?   java如何以波浪模式移动对象?   JavaSpring:如何使用注释注入字段