Usage
The code block below shows the available flags when running e3sm_to_cmip
.
Please be aware that some arguments are required or optional based on how e3sm_to_cmip
.
$ e3sm_to_cmip --help
usage: e3sm_to_cmip [-h]
Convert ESM model output into CMIP compatible format
required arguments (general):
-v [ ...], --var-list [ ...]
Space separated list of variables to convert from
E3SM to CMIP.
required arguments (without --info):
-i , --input-path Path to directory containing e3sm time series data
files. Additionally namelist, restart, and 'region'
files if handling MPAS data. Region files are
available from https://web.lcrc.anl.gov/public/e3sm/i
nputdata/ocn/mpas-o/<mpas_mesh_name>.
required arguments (without --simple):
-o , --output-path Where to store cmorized output.
-t <tables-path>, --tables-path <tables-path>
Path to directory containing CMOR Tables directory,
required unless the `--simple` flag is used.
-u <user_input_json_path>, --user-metadata <user_input_json_path>
Path to user json file for CMIP6 metadata, required
unless the `--simple` flag is used.
required arguments (with --realm [mpasso|mpassi]):
--map <map_mpas_to_std_grid>
The path to an mpas remapping file. Required if realm
is 'mpaso' or 'mpassi'. Available from
https://web.lcrc.anl.gov/public/e3sm/mapping/maps/.
optional arguments (general):
-n <nproc>, --num-proc <nproc>
Optional: number of processes, default = 6. Not used
when -s, --serial specified.
--debug Set output level to debug.
--timeout TIMEOUT Exit with code -1 if execution time exceeds given
time in seconds.
-H <handler_path>, --handlers <handler_path>
Path to cmor handlers directory, default is the
(built-in) 'e3sm_to_cmip/cmor_handlers'.
--precheck PRECHECK Check for each variable if it's already in the output
CMIP6 directory, only run variables that don't have
pre-existing CMIP6 output.
--logdir LOGDIR Where to put the logging output from CMOR.
--custom-metadata CUSTOM_METADATA
The path to a json file with additional custom
metadata to add to the output files.
optional arguments (run mode):
--info Print information about the variables passed in the
--var-list argument and exit without doing any
processing. There are three modes for getting the
info, if you just pass the --info flag with the
--var-list then it will print out the information for
the requested variable. If the --freq <frequency> is
passed along with the --tables-path, then the CMIP6
tables will get checked to see if the requested
variables are present in the CMIP6 table matching the
freq. If the --freq <freq> is passed with the
--tables-path, and the --input-path, and the input-
path points to raw unprocessed E3SM files, then an
additional check will me made for if the required raw
variables are present in the E3SM output.
--simple Perform a simple translation of the E3SM output to
CMIP format, but without the CMIP6 metadata checks.
(WARNING: NOT WORKING AS OF 1.8.2)
-s, --serial Run in serial mode (by default parallel). Useful for
debugging purposes.
optional arguments (run settings):
--realm <realm> The realm to process. Must be atm, lnd, mpaso or
mpassi. Default is atm.
-f FREQ, --freq FREQ The frequency of the data (default is 'mon' for
monthly). Accepted values are 'mon', 'day', '6hrLev',
'6hrPlev', '6hrPlevPt', '3hr', '1hr.
optional arguments (with --info):
--info-out INFO_OUT If passed with the --info flag, will cause the
variable info to be written out to the specified file
path as yaml.
helper arguments:
-h, --help show this help message and exit
--version Print the version number and exit.
Additional descriptions of some of the arguments can be found below.
Required arguments (general):
Variable List
The “–var-list” or “-v” flag is a mandatory option, and should be a list of CMIP6 variable names to be output.
Required arguments (without –info)
Input Path
This mandatory flag should point at a directory containing the data files to be processed.
User Input Metadata
The “–user-metadata” or “-u” flag should be the path to a json formatted metadata file containing CMIP6 metadata for the case being processed. This flag can be avoided for non-official data by using the “–simple” flag. Otherwise, the file should look something like the metadata files that can be found here
Tables Path
The “–tables-path” or “-t” flag should point to the “Tables” directory of the CMIP6 controlled vocabulary repository. The repository can be found here
Required arguments (without –simple)
Output Path
This mandatory flag is the location that all output files will be placed. The main output is a directory named CMIP6, which contains the CMIP6 directory structure, with the output files as leaf nodes. Other output files include a copy of the user metadata (if present), and a directory named cmor_logs containing the per-variable log files generated by CMOR.
Required arguments (with –realm [mpasso|mpassi])
MPAS mapfile
When processing MPAS ocean or sea-ice variables, a mapfile is needed for regridding. Use the “–map” flag to pass the path to this mapfile.
Optional arguments (general)
Numproc
By default, the variable converters are run in parallel using a process pool with 6 worker processes. The “–num-proc” or “-n” flag can be used to control the number of simultaneously executing processes. For example, 3D ocean fields take significantly more RAM then other variables, so the number of converters running at once may be reduced to accommodate the machine being used.
Handler Path
A directory of custom variable handlers can be passed using the “–handlers” or “-H” flag.
Custom Metadata
Additional custom metadata can be added to the global attributes of the output files by using the “–custom-metadata” flag to point to a json formatted file containing the metadata key value pairs.
Optional arguments (run mode)
Info
The “–info” flag can be used in three different ways to determine information about the variables being requested for processing. In the simplest form, passing only the “–info” and “–var-list” flags will return information about the required input and CMIP6 output names of the variables passed in the variable list.
If the –freq <frequency> is passed along with the –tables-path, then the CMIP6 tables will get checked to see if the requested variables are present in the CMIP6 table matching the freq.
If the –freq <freq> is passed with the –tables-path, and the –input-path, and the input-path points to raw unprocessed E3SM files, then an additional check will me made for if the required raw variables are present in the E3SM output. In this last mode, instead of passing a directory of time-series files as the input path, pass the path to raw unprocessed E3SM cam or eam files.
Simple
This optional flag will cause the tool to run without needing or checking for the custom CMIP metadata usually required for processing. Output from this mode use the same converter code as the default mode, but the output doesnt contain the required metadata needed for a CMIP publication. This mode should be used when the output is intended for analysis, but is not suited for publication.
Serial
For debugging purposes, or when running in a resource constrained environment, the “–serial” or “-s” boolean flag can be used to cause the conversion process to be run in serial, using the main process.
Optional arguments (run settings)
Realm
The type of realm being operated on should be specified using the “–realm” flag. Allowed values are “atm”, “lnd”, “mpaso” and “mpassi.” This is needed so that the package can correctly determine what type of input files to look for. By default “atm”.
Frequency
The “–freq” and “-f” flags can be used to process high-frequency datasets. By default the tool assumes its working with monthly data. The following submonthly frequencies are supported: [6hr, 6hrLev, 6hrPlev, 3hr, day]