本文主要介绍全球综合评估模型(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 中国
配置可参考:
二、模型安装包目录解读
本部分用于介绍标准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模型的安装与模型的选择。