This guide adapts the README for fre.cmor in NOAA-GFDL/fre-cli for the
standalone fremorizer package. The fremor CLI rewrites climate model output
with CMIP-compliant metadata ("CMORization") and supports both CMIP6 and CMIP7
workflows.
Comprehensive API and CLI reference material lives in :ref:`usage` and :ref:`commands`. Use this page when you want a concise, end-to-end reminder of what configuration is required and how to invoke each subcommand.
Before CMORizing data, use fremor init to set up required resources:
# Generate a CMIP6 config template and fetch CMIP6 tables
fremor init -m cmip6 -e exp_config.json -t cmip6-tables
# Generate a CMIP7 config template and fetch CMIP7 tables (fast mode)
fremor init -m cmip7 -e exp_config.json -t cmip7-tables --fast
# Only generate a config template (skip table fetching)
fremor init -m cmip6 -e exp_config.json
# Only fetch tables (skip config template)
fremor init -m cmip6 -t cmip6-tables
# Fetch a specific release tag
fremor init -m cmip6 -t cmip6-tables --tag 6.9.33The init command:
- Generates experiment configuration JSON templates with required CMIP metadata fields
- Fetches official MIP tables from trusted GitHub repositories:
- CMIP6: pcmdi/cmip6-cmor-tables
- CMIP7: WCRP-CMIP/cmip7-cmor-tables
- Supports both git clone (default) and tarball download (
--fast) methods
fremor relies on external CMIP metadata:
- MIP tables (for example the cmip6-cmor-tables)
- Controlled vocabularies (for example CMIP6_CVs)
- Variable list (JSON) that maps local variable names to MIP names. A small
example lives in the repository at
fremorizer/tests/test_files/CMORbite_var_list.json. - Experiment configuration (JSON) supplying metadata such as
calendar,grid, and the desired output directory structure. Seefremorizer/tests/test_files/CMOR_input_example.jsonfor CMIP6 orfremorizer/tests/test_files/CMOR_CMIP7_input_example.jsonfor CMIP7. - Optional CMOR YAML if you want to batch multiple
runcalls viafremor yaml. These YAML files are part of the larger FRE workflow and are not shipped here; point-y/--yamlfileat your project-specific YAMLs.
The entry point to all subcommands is fremor:
fremor --helpInitialize CMOR resources by generating experiment configuration templates and/or fetching MIP tables from trusted sources.
# Generate config template and fetch tables
fremor init -m cmip6 -e exp_config.json -t cmip6-tables
# Use fast mode (tarball download instead of git clone)
fremor init -m cmip7 -e exp_config.json -t cmip7-tables --fast
# Fetch a specific release tag
fremor init -m cmip6 -t cmip6-tables --tag 6.9.33Rewrite NetCDF files in a directory using a specific MIP table and experiment configuration.
fremor run --run_one --grid_label gr --grid_desc FOO_BAR_PLACEHOLD --nom_res "10000 km" \
-d /path/to/input/netcdf/dir \
-l fremorizer/tests/test_files/CMORbite_var_list.json \
-r fremorizer/tests/test_files/cmip6-cmor-tables/Tables/CMIP6_Omon.json \
-p fremorizer/tests/test_files/CMOR_input_example.json \
-o /tmp/cmorized_outputProcess multiple directories/tables using FRE-flavored YAML configuration. This is most useful inside a full FRE workflow.
fremor -v yaml --run_one --dry_run --output combined.yaml \
--yamlfile /path/to/cmor.yaml \
--experiment c96L65_am5f7b12r1_amip \
--platform ncrc5.intel \
--target prod-openmpSearch MIP tables for variable definitions.
fremor -v find --table_config_dir fremorizer/tests/test_files/cmip6-cmor-tables/Tables/ \
--opt_var_name sosGenerate a variable list from a directory of NetCDF files. Optionally filter against a MIP table.
fremor varlist --dir_targ /path/to/data_dir \
--output_variable_list simple_varlist.json \
--mip_table fremorizer/tests/test_files/cmip6-cmor-tables/Tables/CMIP6_Omon.jsonScan a post-processing directory tree and emit the CMOR YAML plus per-component
variable lists that fremor yaml consumes.
fremor config --pp_dir /path/to/pp \
--mip_tables_dir /path/to/cmip7-cmor-tables/tables \
--mip_era cmip7 \
--exp_config /path/to/CMOR_CMIP7_input_example.json \
--output_yaml cmor_config.yaml \
--output_dir /path/to/cmor_output \
--varlist_dir /path/to/varlists \
--freq monthly --chunk 5yr --grid gn \
--calendar noleapIn --dry_run mode, fremor yaml prints the generated fremor run calls
without executing them. Pass --no-print_cli_call to print the equivalent
Python cmor_run_subtool(...) invocation instead of the CLI command.