gcamextractor
is a package to extract GCAM data into
standardized data tables which can be used downstream in other models.
gcamextractor
uses rgcam
to connect to GCAM
databases and then processes the data into more commonly used units as
well as re-organizes the data into tables with common column names. This
allows all the data to be saved in combined tables. Additionally,
gcamextractor
aggregates data by parameter, class 1 and
class 2. This allows users to quickly plot and analyze data at different
degrees of detail.
gcamextractor::readgcam
will return a list as csv files
as well directly as a list of R tables containing:
The figure below shows the workflow of how gcamextractor
connects to a GCAM database and its outputs.
library(gcamextractor)
path_to_gcam_database <- "E:/gcamfolder/output/database_ref" # Change the path based on your GCAM database location
gcamextractor::params # view available parameters
dataGCAM <- gcamextractor::readgcam(gcamdatabase = path_to_gcam_database,
regionsSelect = c("Colombia"), # Set to "All" to read in all available regions
paramsSelect = "pop",
folder = "my_output_folder") # Set to "All" to read in all available params
# View your data
df <- dataGCAM$data; df
dfParam <- dataGCAM$dataAggParam; dfParam
dfClass1 <- dataGCAM$dataAggClass1; dfClass1
dfClass2 <- dataGCAM$dataAggClass1; dfClass2
Initial extraction of GCAM data can take a while and so
gcamextractor
also includes the option to save the raw
extracted outputs as .Proj
files which can be shared and
read in as well. A default example .Proj
file
gcamextractor::exmapleGCAMproj
is included with the
package. The following script shows how this can be read into
gcamextractor
.
library(gcamextractor)
dataGCAM <- gcamextractor::readgcam(dataProjFile = gcamextractor::example_gcamv54_argentina_colombia_2025_proj, # Or provide path to .proj file
folder = "my_output_folder")
The following figure shows the column headers of the
dataAll
outputs from gcamextractor. Other tables have a
subset of these columns, such as in the case of data
which
only keeps relevant columns and drops columns such as
origScen
and origQuery
which refer to the
original data in GCAM. Other tables such as dataAggClass1
removes the class 2
columns and then aggregates the data
over class 1
variables.
Users can get a list of all available params and queries as shown
below. The parameters
page lists details on each parameter, how it was calculated and cites
any sources when available. gcamextractor::map_param_query
gives a list of all parameters and the corresponding queries used to
extract that data from GCAM. Additionally,
gcamextractor::map_param_query
also groups the various
parameters into higher level groups which can then be called in the
paramSelect
argument of gcamextractor
to
extractor all the params in those groups. The groups also include
curated parameters for particular models such as CERF
and
GO
.
library(gcamextractor)
gcamextractor::params # Get all params
gcamextractor::queries # Get all queries used
gcamextractor::map_param_query # Get a table of params and the relevants queries used to extract and calculate them.