Templates#
The crocodash template command writes a ready-to-use starter file sourced from the gallery tutorial notebook. Use it as a starting point instead of writing from scratch. The --kind flag picks what you’re generating:
--kind case(default) — a case definition: config, notebook, or script--kind pbs— a PBS batch script for submitting forcing extraction to an HPC queue
Case templates (--kind case)#
# Jupyter notebook with <KEY> placeholders for manual editing
crocodash template --output my_case.ipynb
# Jupyter notebook with Derecho/GLADE paths pre-filled
crocodash template --output my_case.ipynb --machine derecho
# Python script with Derecho paths pre-filled
crocodash template --output my_case.py --machine derecho
# YAML config with Derecho paths pre-filled
crocodash template --output my_case.yaml --machine derecho
For --kind case, the output format is picked by --output’s suffix: .yaml/.yml for a config, .ipynb for a notebook, anything else for a .py script.
The .py output extracts code cells directly from the gallery tutorial notebook — no separate template file to maintain. Cell boundaries are marked with # %%, making the file compatible with Jupytext and VS Code interactive Python.
PBS submission script (--kind pbs)#
crocodash template --output submit_forcings.pbs
A .pbs output suffix selects the PBS template on its own, the same way .yaml/.ipynb do for --kind case — --kind pbs is only needed if you want a different output filename. This writes a batch submission script that runs crocodash process --caseroot <caseroot> --all on an HPC queue (e.g. Derecho) instead of interactively — useful for long-running forcing extraction. Edit the #PBS -A <PROJECT_CODE> and caseroot placeholders, then submit with qsub submit_forcings.pbs.
--machine#
The --machine flag replaces <KEY> placeholders (e.g. <GEBCO>, <TPXO_H>) with real dataset paths for the given machine. Omit it to leave placeholders and fill them in manually. It only applies to --kind case — the pbs template’s placeholders (<PROJECT_CODE>, caseroot) aren’t dataset paths, so --machine has no effect on --kind pbs output.
A few known_paths.json keys (CESM, inputdir, casedir) are also placeholder tokens rather than real paths, so they’re always left as <KEY> for manual editing regardless of --machine.
Available machines#
Machine path registries are defined in crocogallery/known_paths.json inside the CrocoGallery repo. To add a new environment (e.g. "casper", "local", "manish"), add a new top-level key with the relevant path mappings — no Python changes needed.
Passing an unknown machine name prints the available options:
KeyError: Unknown machine 'bogus'. Available: derecho
What gets filled in#
Placeholder |
Description |
|---|---|
|
GEBCO bathymetry file |
|
TPXO tidal constituent files |
|
Chlorophyll data file |
|
MARBL BGC initial condition |
… |
Other dataset paths in known_paths.json |
<CESM>, <inputdir>, and <casedir> are never filled in — always edit those manually.