Tabling
This page describes the tabling capabilities of GCPy, including possible argument values for every tabling function. These functions are primarily used for model benchmarking purposes. All tables are printed to text files.
Emissions tables
def make_benchmark_emis_tables(reflist, refstr, devlist,
devstr, dst="./benchmark", refmet=None, devmet=None,
overwrite=False, ref_interval=[2678400.0], dev_interval=[2678400.0],
spcdb_dir=os.path.dirname(__file__)
):
"""
Creates a text file containing emission totals by species and
category for benchmarking purposes.
"""
Arguments:
- reflist: list of str
List with the path names of the emissions file or files (multiple months) that will constitute the “Ref” (aka “Reference”) data set.
- refstr : str
A string to describe ref (e.g. version number)
- devlist : list of str
List with the path names of the emissions file or files (multiple months) that will constitute the “Dev” (aka “Development”) data set
- devstr : str
A string to describe dev (e.g. version number)
Keyword arguments:
- dst : str
A string denoting the destination folder where the file containing emissions totals will be written.
Default value: ./benchmark
- refmet : str
Path name for ref meteorology
Default value: None
- devmet : str
Path name for dev meteorology
Default value: None
- overwrite : bool
Set this flag to True to overwrite files in the destination folder (specified by the dst argument).
Default value: False
- ref_interval : list of float
The length of the ref data interval in seconds. By default, interval is set to [2678400.0], which is the number of seconds in July (our 1-month benchmarking month).
Default value: [2678400.0]
- dev_interval : list of float
The length of the dev data interval in seconds. By default, interval is set to [2678400.0], which is the number of seconds in July (our 1-month benchmarking month).
Default value: [2678400.0]
- spcdb_dir : str
Directory of species_datbase.yml file
Default value: Directory of GCPy code repository
gcpy.benchmark.make_benchmark_emis_tables()
generates tables of total emissions categorized by species or by inventory.
These tables contain total global emissions over the lengths of the Ref and Dev datasets, as well as the differences between
totals across the two datasets. Passing a list of datasets as Ref or Dev (e.g. multiple months of emissions files) will result
in printing totals emissions summed across all files in the list. Make sure to update the ref_interval
and/or dev_interval
arguments if you pass input that does not correspond with 1 31 day month.
Mass Tables
def make_benchmark_mass_tables(ref, refstr, dev, devstr,
varlist=None, dst="./benchmark", subdst=None, overwrite=False,
verbose=False, label="at end of simulation", spcdb_dir=os.path.dirname(__file__),
ref_met_extra='', dev_met_extra=''
):
"""
Creates a text file containing global mass totals by species and
category for benchmarking purposes.
"""
Arguments:
- reflist : str
Pathname that will constitute the “Ref” (aka “Reference”) data set.
- refstr : str
A string to describe ref (e.g. version number)
- dev : list of str
Pathname that will constitute the “Dev” (aka “Development”) data set. The “Dev” data set will be compared against the “Ref” data set.
- devstr : str
A string to describe dev (e.g. version number)
Keyword arguments:
- varlist : list of str
List of variables to include in the list of totals. If omitted, then all variables that are found in either “Ref” or “Dev” will be included. The varlist argument can be a useful way of reducing the number of variables during debugging and testing.
Default value: None
- dst : str
A string denoting the destination folder where the file containing emissions totals will be written.
Default value: ./benchmark
- subdst : str
A string denoting the sub-directory of dst where PDF files containing plots will be written. In practice, subdst is only needed for the 1-year benchmark output, and denotes a date string (such as “Jan2016”) that corresponds to the month that is being plotted.
Default value: None
- overwrite : bool
Set this flag to True to overwrite files in the destination folder (specified by the dst argument).
Default value: False
- verbose : bool
Set this flag to True to print extra informational output.
Default value: False.
- spcdb_dir : str
Directory of species_datbase.yml file
Default value: Directory of GCPy code repository
- ref_met_extra : str
Path to ref Met file containing area data for use with restart files which do not contain the Area variable. Default value : ‘’
- dev_met_extra : str
Path to dev Met file containing area data for use with restart files which do not contain the Area variable.
Default value: ‘’
gcpy.benchmark.make_benchmark_mass_tables
is used to create global mass tables of GEOS-Chem species from a Restart
file.
This function will create one table of total mass by species from the earth’s surface to the top of the stratosphere and one table for only the troposphere.
The tables contain total mass for each of the ref and dev datasets in Gg, as well as absolute and percentage difference between the two datasets.
If your restart files do not contain an Area variable ("AREA
for GEOS-Chem Classic or "Met_AREAM2
for GCHP) then you will need to use the
ref_met_extra
and/or dev_met_extra
arguments to pass the paths of NetCDF files containing the corresponding area variables
(usually contained in meteorology diagnostic output).
Operations Budget Tables
def make_benchmark_operations_budget(refstr, reffiles, devstr,
devfiles, ref_interval, dev_interval, benchmark_type=None,
label=None, col_sections=["Full", "Trop", "PBL", "Strat"],
operations=["Chemistry","Convection","EmisDryDep","Mixing",
"Transport","WetDep"], compute_accum=True,
require_overlap=False, dst='.', species=None, overwrite=True
):
"""
Prints the "operations budget" (i.e. change in mass after
each operation) from a GEOS-Chem benchmark simulation.
"""
Arguments:
- refstr : str
Labels denoting the “Ref” versions
- reffiles : list of str
Lists of files to read from the “Ref” version.
- devstr : str
Labels denoting the “Dev” versions
- devfiles : list of str
Lists of files to read from “Dev” version.
- interval : float
Number of seconds in the diagnostic interval.
Keyword arguments:
- benchmark_type : str
“TransportTracersBenchmark” or “FullChemBenchmark”.
Default value: None
- label : str
Contains the date or date range for each dataframe title.
Default value: None
- col_sections : list of str
List of column sections to calculate global budgets for. May include Strat eventhough not calculated in GEOS-Chem, but Full and Trop must also be present to calculate Strat.
Default value: [“Full”, “Trop”, “PBL”, “Strat”]
- operations : list of str
List of operations to calculate global budgets for. Accumulation should not be included. It will automatically be calculated if all GEOS-Chem budget operations are passed and optional arg compute_accum is True.
- Default value: [“Chemistry”,”Convection”,”EmisDryDep”,
“Mixing”,”Transport”,”WetDep”]
- compute_accum : bool
Optionally turn on/off accumulation calculation. If True, will only compute accumulation if all six GEOS-Chem operations budgets are computed. Otherwise a message will be printed warning that accumulation will not be calculated.
Default value: True
- require_overlap : bool
Whether to calculate budgets for only species that are present in both Ref or Dev.
Default value: False
- dst : str
Directory where plots & tables will be created.
Default value: ‘.’ (directory in which function is called)
- species : list of str
List of species for which budgets will be created.
Default value: None (all species)
- overwrite : bool
Denotes whether to overwrite existing budget file.
Default value: True
gcpy.benchmark.make_benchmark_operations_budget()
creates tables of budgets for species separated by model operation.
The tables show budgets for each of the ref and dev datasets in Gg, as well as absolute and percentage difference between the two datasets.
Note that total accumulation across all operations will only be printed if you set compute_accum==True
and
all operations are included in operations
. Note also that when using the non-local mixing scheme (default), 'Mixing'
includes emissions and dry deposition applied below the PBL. 'EmisDryDep'
therefore only captures fluxes above the PBL.
When using full mixing, 'Mixing'
and 'EmisDryDep'
are fully separated.
Aerosol Budgets and Burdens
def make_benchmark_aerosol_tables(devdir, devlist_aero, devlist_spc,
devlist_met, devstr, year, days_per_mon, dst='./benchmark',
overwrite=False, is_gchp=False, spcdb_dir=os.path.dirname(__file__)
):
"""
Compute FullChemBenchmark aerosol budgets & burdens
"""
Arguments:
- devdir: str
Path to development (“Dev”) data directory
- devlist_aero : list of str
List of Aerosols collection files (different months)
- devlist_spc : list of str
List of SpeciesConc collection files (different months)
- devlist_met : list of str
List of meteorology collection files (different months)
- devstr : str
Descriptive string for datasets (e.g. version number)
- year : str
The year of the benchmark simulation (e.g. ‘2016’).
- days_per_mon : list of int
List of number of days per month for all months
Keyword arguments:
- dst : str
Directory where budget tables will be created.
Default value: ‘./benchmark’
- overwrite : bool
Overwrite burden & budget tables? (default=True)
Default value: False
- is_gchp : bool
Whether datasets are for GCHP
Default value: False
- spcdb_dir : str
Directory of species_datbase.yml file
Default value: Directory of GCPy code repository
gcpy.benchmark.make_benchmark_aerosol_tables()
generates two different tables using output from a single dataset. One contains annual mean aerosol burdens in Tg in the stratosphere,
troposphere, and combined stratosphere and troposphere. The other table shows annual global mean AOD in the stratosphere, troposphere, and combined
stratosphere and troposphere. Aerosol species used are pre-defined in aod_species.yml
: BCPI, OCPI, SO4, DST1, SALA, and SALC.