全球综合评估模型-GCAM模型的安装与参数解读

本文主要介绍全球综合评估模型(GCAM)模型的安装过程。

一、模型安装

模型说明文档:GCAM v8.2 Documentation: Global Change Analysis Model (GCAM),在这里,你能看到关于GCAM模型的介绍,包含哪些模块,怎么获取安装文件,以及适合初学者学习的用户指南,高级开发用户的指南等。

模型安装地址:https://github.com/JGCRI/gcam-core/releases。在官方的GitHub网站中能看到最新的模型版本,目前发布为GCAM 8.2版本,最早能找到GCAM version 4.2.0版。

模型安装包选择:如果你是Window操作系统,选择第二个Windows Release版本下载即可。如果是Mac用户,则选择第一个就行。还有两个版本是模型的源代码版本,适合开发者使用,一般用于模型的更新与修改,初学者可以不用管。

点击,下载压缩包,将安装包存在目录类似于:D:\GCAM\gcam-v8.2下,注意,安装路径最好是全英文路径,不然模型运行过程可能出现路径访问问题。将下载的Zip包解压后即可使用,目前本人的路径为:D:\GCAM\gcam-v8.2\gcam-v8.2-Windows-Release-Package。

模型的运行需要配置相应的Java环境:Java Downloads | Oracle 中国

配置可参考:

https://blog.csdn.net/Trong_/article/details/126077438?fromshare=blogdetail&sharetype=blogdetail&sharerId=126077438&sharerefer=PC&sharesource=Promising_GEO&sharefrom=from_link

二、模型安装包目录解读

本部分用于介绍标准GCAM模型安装包的目录文件含义。

一般打开解压后的安装包,基本包括下面内容:

每个文件夹或文件的含义为:

1 Additional Licenses------模型的许可证信息,初学者不用管。

2 exe------模型运行程序和配置文件都在这里,这个文件夹非常重要,后续运行模型,修改文件的一些配置参数,基本上都在这个文件夹里面。

3 input------GCAM 输入数据,主要是 XML 文件,如果需要做一些情景对比,参数的设置需要通过在这里添加XML的形式进行。

4 libs------模型运行依赖库,不用手动改;

5 Modellnterface------查看模型输出结果的图形界面工具,需要通过命令行运行,打开后是一个交互式图形界面,用于绘图和查看每次模型运行的结果。

6 output------模型运行后输出结果的位置,请做好模型输出结果的备份。

7 CONTRIBUTION.md------开发贡献说明,不用管。

8 LICENSE.md------许可证。

9 README------模型说明文件,如果想详细了解模型的背景和运行,可以打开仔细阅读。

对于初学者来说,最重要是我加粗的文件。

三、exe文件目录信息解读

本部分用于介绍标准GCAM模型exe运行程序的目录文件含义。

打开exe文件,会发现有比较多的文件,要学会初次运行这些文件,首先要认识这些文件的意思。为了方便大家了解这些文件是什么意思,我们将这些文件分成如下的组别:

第一组 负责把模型跑起来

1 run-gcam.bat------最常用的文件,它是 Windows 批处理文件,也就是一个自动运行脚本。你双击它,它会帮你调用 gcam.exe,并告诉 GCAM 去读取哪个配置文件。

2 gcam.exe------这是 GCAM 的模型主程序,也是真正执行模拟计算的程序,最好通过 run-gcam.bat 启动。这两个文件一般不需要修改。

第二组 决定跑什么情景

1 configuration.xml------这是当前实际运行时默认读取的配置文件,在有些版本中,这个文件需要我们把 configuration_ref.xml 复制一份,并重命名为 configuration.xml,最新版本已经默认配置好了,以后做情景时可能会改,但初次运行前不建议乱改。

2 configuration_ref.xml------一般代表Reference scenario,也就是基准情景配置文件,可以作为没有额外政策干预的默认情景 / 对照组,用于第一次跑通模型、后续作为政策情景对照。

3 configuration_policy.xml------政策情景配置模板,它会额外读取某些 policy XML 文件,比如加入碳价格政策,排放约束政策,气候目标政策等,以后可能会修改它。

4 configuration_ssp.xml------用于SSP情景的配置文件,SSP1:可持续发展路径,SSP2:中间道路,SSP3:区域竞争,SSP4:不平等,SSP5:化石燃料发展。这个可作为情景推演。

5 configuration_usa.xml------针对 USA 区域或美国相关情景的配置文件,感兴趣可以自用。

6 batch_SSP_*.xml------SSP 体系里的参考情景批处理文件

第三组 记录模型运行情况,记录模型哪里运行成功,哪里出错?

1 logs------模型运行时,GCAM 会把运行过程、报错信息、求解信息写到这里,运行模型后可以查看,以后判断模型是否成功,主要看logs\main_log.txt,成功后一般会出现Model run completed. Model exiting successfully.

2 log_conf.xml------控制 GCAM 的日志输出方式,哪些信息写入 main_log?哪些信息写入 warning_log?日志详细程度是多少?一般不用管。

3 Restart------模型中途存档或重启相关文件夹。

第四组 负责把运行结果写成数据库,供 ModelInterface 查看

1 .basexhome------数据库环境配置文件,和BaseX数据库有关,GCAM 的输出结果常用XML database 存储,BaseX 是其中的数据库工具之一。

2 XMLDBDriver.jar------这是 Java 的数据库驱动文件,.jar 是 Java 程序包。这个文件帮助 GCAM 把输出结果写入 XML 数据库。如果它缺失,模型可能可以计算,但结果数据库可能无法正常写入。

3 XMLDBDriver.properties------数据库驱动的属性配置文件,它会告诉数据库驱动一些路径、连接方式或运行参数,一般不用管。

第五组 模型运行需要的底层库

1 tbb12.dll------Windows 动态链接库文件,也就是 GCAM 运行所依赖的底层库。

2 tbbmalloc.dll------Windows 动态链接库文件,也就是 GCAM 运行所依赖的底层库。

3 tbbmalloc_proxy.dll------Windows 动态链接库文件,也就是 GCAM 运行所依赖的底层库。如果这些 .dll 缺失,可能会出现模型无法启动的情况。

四、初始文件解读

本部分用于介绍标准GCAM模型运行前配置的初始文件内容含义。

如果没有意外的话,一般模型运行的文件是configuration.xml,这是用户配置相关参数的主要文件,也就是说,每次运行模型前,大家都要准备好configuration.xml。该文件告诉模型读哪些输入文件、跑哪个情景、输出到哪里、是否开启政策目标、是否开启批量运行、从哪一年算到哪一年等。

我们用记事本,打开文件,了解里面的详细含义:

第一,从<Files>到</Files>:GCAM 运行时最基础的路径设置。

包含模型时间设置文件,批量运行相关文件设置,政策目标文件配置(尚未开启),温室气体与气候模块输入,模型运行后的主要结果数据库输出的位置,模型重启文件等。

第二,从<ScenarioComponents>到</ScenarioComponents>:加载系统模块和数据文件。

1气候模块:climate,负责连接排放、浓度、辐射强迫、温度等气候响应。

2社会经济模块:socioeconomics,提供人口、GDP、劳动生产率等宏观社会经济假设。

3资源模块:resources,描述化石能源、非化石能源等资源供给基础。

4能源供应模块:energy supply,描述化石,能源、非化石能源等资源供给基础,比如煤炭生产,石油生产,天然气生产等。

5能源转换模块:energy transformation------描述能源从一种形式转为另一种形式,比如煤炭或石油变成电力,看电力结构变化,主要和这类模块有关。

6电力与水模块:elec_water_base,描述电力系统和水资源系统之间的联系。发电不仅消耗能源,也可能消耗水资源。不同发电技术的水资源需求不同,因此能源转型会影响水资源压力。

7氢能模块:hydrogen,模型中包含氢能相关技术,初学者不用细看,但需知深度脱碳情景下,氢能可能成为重要的能源载体。

8工业部门模块:other industry,iron_steel...,fertilizer_energy等,GCAM 不是只粗略模拟能源,而是区分了多个高耗能工业部门。

9交通模块:transportation,影响石油需求,电力需求,空气污染物排放等。

10建筑部门模块:building,建筑部门涉及居民用电,供暖和制冷等。

11碳含量和碳存储模块:carbon content,carbon storage,和排放核算、碳捕集封存等有关。

第三 农业、土地利用与生物能源模块

1农业基础数据:ag_base,包括作物、牧场、生物能源等基础设定。

2农业生产成本:ag_cost,它会影响不同土地利用类型之间的竞争。

3农业生产率变化:ag_prodchange,例如未来单位面积产量提高,会影响农田需求、粮食价格、土地扩张压力。

4农业残余物生物能源:residue_bio,比如秸秆等农业残余物能否作为能源来源。

5畜牧业模块:animal,影响肉类需求、饲料需求、牧场面积、甲烷排放等。

6化肥模块:fertilizer,与农业生产、能源消费、N₂O 排放有关。

7土地系统输入模块:land1-land5,模型会在不同土地类型之间分配土地,例如农田、森林、草地等,它们共同描述不同土地类型、土地分配、土地收益和土地竞争关系。

8保护地模块:protected land2- protected land3,和保护地有关。

9农产品需求、贸易、储存:demand- ag_storage,负责农业需求,农产品贸易,生物能源贸易,农业储存。

第四,水资源模块

基本逻辑:农业生产需要水,电力生产需要水,工业生产需要水,城市生活需要水,一次能源开采需要水,海水淡化也可以提供水,但有成本等。

第五,非CO2温室气体模块

基本内容:负责非 CO₂ 温室气体排放,包含CH₄,N₂O,含氟气体,农业与土地利用非 CO₂ 排放,能源部门非 CO₂ 排放等。

第六,MAC文件

这里不是指Mac操作系统哦,一般指Marginal Abatement Cost:边际减排成本,也就是说,模型可以表示非 CO₂ 温室气体的减排成本曲线。

第七,宏观经济与约束模块

Macro,与宏观经济系统有关,用于控制一些资源、能源、生物能源、天然气贸易或农业计算上的约束与清理。

第八,求解器配置

GCAM 是一个复杂的市场均衡模型,需要求解价格、供需、技术选择等结果。这里的 cal_broyden_config.xml 说明它使用某种 Broyden 相关的数值求解配置。

第九,<Strings>→</Strings>字符串参数

1 scenarioName:说明当前的情景名称是基准情景。

2 debug-region:调试输出时使用的区域设置。

3 MAGICC-input-dir 和 MAGICC-output-dir:MAGICC 气候模块相关输入和输出路径。

4 AbatedGasForCostCurves:说明成本曲线相关输出关注的减排气体是 CO₂。

第十,<Bools>→</Bools>字符串参数

1 CalibrationActive:校准功能是否开启,模型会在历史期或校准期对一些参数进行校准,使模型与基础数据保持一致。

2 FixGDPPath:表示 GDP 路径固定,这对情景分析很重要。

3 BatchMode:表示批量运行关闭。

4 find-path:表示目标路径搜索关闭,如果 find-path=1,模型可能会尝试寻找满足某个气候目标的碳价格路径。

5 createCostCurve:表示不创建成本曲线。

6 debugChecking:表示关闭调试检查。

7 simulActive:表示模拟运行开启,保持1。

8 PrintPrices:表示输出价格相关结果。

9 QuitFirstFailure:表示模型遇到第一个失败时不一定立刻退出,可能继续尝试后续求解。

这里面用1表示开启,0表示关闭。

第十一,从<Ints>到</Ints>:整数参数设置

1 carbon-output-start-year:表示碳循环或碳输出相关内容从较早年份开始。

2 stop-period 和 stop-year:-1 通常表示不提前停止,按照模型默认时间完整运行。也就是说,当前配置会让 GCAM 按默认时间序列完整运行,而不是只跑到某一年。

3 restart-period 和 restart-year:-1表示不从某个中间时期重启,而是正常从头运行。

4 max-parallelism表示并行设置使用默认或自动方式。

第十二,从<Doubles>到</Doubles>:小数参数设置

这里是空的,说明当前没有额外的小数型参数设置。

了解参数的设置,有助于帮助我们后续修改。

以上是针对于GCAM模型的安装与模型的选择。

相关推荐
XS0301063 小时前
并发编程二
java·开发语言
HMS工业网络4 小时前
STP、RSTP到N-Ring的演进之路
服务器·开发语言·php
历程里程碑4 小时前
54 深入解析poll多路复用技术
java·linux·服务器·开发语言·前端·数据结构·c++
.千余4 小时前
【Linux 】网络基础1
linux·运维·服务器·开发语言·网络·学习
小短腿的代码世界4 小时前
Qt低级网络编程与零拷贝技术在高频交易中的应用:从QTcpSocket到共享内存的全链路优化
开发语言·网络·qt
计算机安禾5 小时前
【c++面向对象编程】第28篇:new/delete vs malloc/free:C++中正确动态内存管理
开发语言·c++·算法
TechWayfarer5 小时前
IP归属地API实战指南:用IP数据云解析日志挖掘用户地域分布
大数据·开发语言·网络·python·tcp/ip
Cloud_Shy6185 小时前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十一章 Python 包跟踪器 中篇)
数据库·python·sql·数据分析·excel·web
之歆5 小时前
DAY_13DOM操作完全指南DOM基础API与节点操作(上)
开发语言·前端·javascript·ecmascript