-
Notifications
You must be signed in to change notification settings - Fork 21
cmor tool improvements #205
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
28 commits
Select commit
Hold shift + click to select a range
944eb07
fix datetime array built from files targeted
ilaflott c69b307
refactor filename loop/routines in cmor_mixer a little bit. slightly …
ilaflott d6fce9c
angling to modularize the success check in test_cmor_run_subtool. in …
ilaflott 0926ccd
new test cases, another test text file
ilaflott 797417a
adjust pylint calls to be a little more kind on the max number of arg…
ilaflott 52b6729
updates to variable names and some print statements. argument names,…
ilaflott ebebae9
fix readme to display content as markdown correctly.
ilaflott 5cfdcd3
tweak readme to display markdown correctly. cmor mixer refactorings i…
ilaflott e9b73d7
Merge branch 'main' into 204-improve-fre-cmor-run-functionality
ilaflott 933dd6b
more detailed doc strings iwth argument descriptions
ilaflott 55f6137
more detailed doc strings iwth argument descriptions
ilaflott b2c3d89
adjust click-based call to _cmor_run_subtool entrypoint function. kee…
ilaflott e00e90c
adjust cli test calls, in particular the full_outputdir. put comment …
ilaflott 242f13a
make case2 checks as detailed. clean up best i can (nfs mount error w…
ilaflott 9bde9cd
some whitespace changes. different way of opening files so they close…
ilaflott 4478d51
pylint feedback
ilaflott 6c75e95
if i write the doc other people will maybe run it and then maybe they…
ilaflott 0eb9d7a
la little more doc into the fre/cmor/README.md. working example call …
ilaflott 75e9054
markdown treatment of command examples/output/surrounding discussion …
ilaflott 78148ff
indentation of commands changed slightly
ilaflott 644b431
language tweak
ilaflott 5c6d3c7
whitespace/indentation
ilaflott c0a4098
whitespace/indentation
ilaflott 0c04d79
cleanup from self review feedback
ilaflott 78997f6
cleanup self-feedback
ilaflott 6ae3507
remove oldoldold details
ilaflott f190f50
some last clean up and pylint feedback
ilaflott b84ac63
Merge branch 'main' into 204-improve-fre-cmor-run-functionality
ilaflott File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,83 +1,81 @@ | ||
| old usage notes at the top of `cmor_mixer.py` | ||
|
|
||
| # Before start this script in common way run these 2 command in terminal where you are going to execute this script: | ||
| # module load python/3.9 | ||
| # conda activate cmor | ||
|
|
||
| # another possible runs without any preparation in terminal: | ||
| # /home/san/anaconda/envs/cmor_dev/bin/python | ||
| # /app/spack/v0.15/linux-rhel7-x86_64/gcc-4.8.5/python/3.7.7-d6cyi6ophaei6arnmzya2kn6yumye2yl/bin/python | ||
|
|
||
|
|
||
| # How to run it (simple examples): | ||
| # ~/fms_yaml_tools/CMOR_3/cmor_mixer.py | ||
| # -d /archive/oar.gfdl.cmip6/CM4/warsaw_201710_om4_v1.0.1/CM4_1pctCO2_C/gfdl.ncrc4-intel16-prod-openmp/pp/atmos/ts/monthly/5yr | ||
| # -l /home/san/CMOR_3/GFDL-CM4_1pctCO2_C_CMOR-Amon.lst | ||
| # -r /home/san/CMOR/cmor/cmip6-cmor-tables/Tables/CMIP6_Amon.json | ||
| # -p /home/san/CMOR/cmor/Test/CMOR_input_CM4_1pctCO2_C.json | ||
|
|
||
| # ~/fms_yaml_tools/cmor_mixer.py | ||
| # -d /archive/Fabien.Paulot/ESM4/H2/ESM4_amip_D1_soilC_adj/gfdl.ncrc3-intel16-prod-openmp/pp/land/ts/monthly/5yr | ||
| # -l /home/san/CMOR_3/GFDL-ESM4_amip_CMOR-landCML.lst | ||
| # -r /home/san/CMOR/cmor/cmip6-cmor-tables/Tables/CMIP6_Lmon.json | ||
| # -p /home/san/CMOR/cmor/Test/CMOR_input_ESM4_amip.json | ||
|
|
||
| # ~/fms_yaml_tools/cmor_mixer.py | ||
| # -d /archive/oar.gfdl.cmip6/CM4/warsaw_201710_om4_v1.0.1/CM4_historical/gfdl.ncrc4-intel16-prod-openmp/pp/atmos/ts/monthly/5yr | ||
| # -l /home/san/CMOR_3/GFDL-CM4_historical_CMOR-Amon.lst | ||
| # -r /home/san/CMOR/cmor/cmip6-cmor-tables/Tables/Atmos_Monthly.json | ||
| # -p /home/san/CMOR/cmor/Test/CMOR_input_CM4_historical.json | ||
|
|
||
| # ~/fms_yaml_tools/cmor_mixer.py | ||
| # -d /archive/oar.gfdl.cmip6/ESM4/DECK/ESM4_historical_D1/gfdl.ncrc4-intel16-prod-openmp/pp/atmos_cmip/ts/daily/5yr | ||
| # -l /home/san/CMOR_3/GFDL-ESM4_CMOR-day_historical.lst | ||
| # -r /home/san/CMOR/cmor/cmip6-cmor-tables/Tables/CMIP6_day.json | ||
| # -p /home/san/CMOR/cmor/Test/CMOR_input_ESM4_historical.json | ||
| # -o /net2/san | ||
|
|
||
| # ~/fms_yaml_tools/cmor_mixer.py | ||
| # -d /archive/oar.gfdl.cmip6/ESM4/DECK/ESM4_historical_D1/gfdl.ncrc4-intel16-prod-openmp/pp/atmos/ts/6hr/5yr | ||
| # -l /home/san/CMOR_3/GFDL-ESM4_CMOR-6hr.lst | ||
| # -r /home/san/CMOR/cmor/cmip6-cmor-tables/Tables/CMIP6_6hrPlev.json | ||
| # -p /home/san/CMOR/cmor/Test/CMOR_input_ESM4_historical.json | ||
|
|
||
| # ~/fms_yaml_tools/cmor_mixer.py | ||
| # -d /archive/oar.gfdl.cmip6/ESM4/DECK/ESM4_historical_D1/gfdl.ncrc4-intel16-prod-openmp/pp/atmos_cmip/ts/3hr/5yr | ||
| # -l /home/san/CMOR_3/GFDL_ESM4_historical_CMOR-3hr.lst | ||
| # -r /home/san/CMOR/cmor/cmip6-cmor-tables/Tables/CMIP6_3hr.json | ||
| # -p /home/san/CMOR/cmor/Test/CMOR_input_ESM4_historical.json | ||
| # -o /net2/san | ||
|
|
||
| # Additional tables containing in /home/san/CMIP6_work/cmor/cmip6-cmor-tables/Tables: | ||
| # CMIP6_CV.json | ||
| # CMIP6_formula_terms.json | ||
| # CMIP6_grids.json | ||
| # CMIP6_coordinate.json | ||
|
|
||
| # Detailed description of program is placed at | ||
| # https://docs.google.com/document/d/1HPetcUyrVXDwCBIyWheZ_2JzOz7ZHi1y3vmIlcErYeA/edit?pli=1 | ||
|
|
||
| # Keep in mind rule for input ../cmor/cmip6-cmor-tables/Tables/*.json: | ||
| # output variables can not contain "_" in out_name, though name (and standard_name) itself can have it; example: | ||
| # "alb_sfc": { | ||
| # "frequency": "mon", | ||
| # "modeling_realm": "atmos", | ||
| # "standard_name": "alb_sfc", | ||
| # "units": "percent", | ||
| # "cell_methods": "area: time: mean", | ||
| # "long_name": "surface albedo", | ||
| # "comment": "", | ||
| # "dimensions": "longitude latitude time", | ||
| # "out_name": "albsfc", | ||
| # "type": "real", | ||
| # "positive": "", | ||
| # "valid_min": "", | ||
| # "valid_max": "", | ||
| # "ok_min_mean_abs": "", | ||
| # "ok_max_mean_abs": "" | ||
| # } | ||
|
|
||
| # Problems with standard CMOR library: | ||
| # - monthly variable "enth_conv_col" produces error - CMOR expects 4 dimensions but it has only 3; | ||
| # - variable /archive/oar.gfdl.cmip6/CM4/warsaw_201710_om4_v1.0.1/CM4_historical/gfdl.ncrc4-intel16-prod-openmp/pp/atmos_cmip/ts/3hr/5yr/atmos_cmip.1965010100-1969123123.clt.nc | ||
| # is not readable. | ||
| UNDER CONSTRUCTION: old usage notes at the top of `cmor_mixer.py`, re-rigged for markdown and CMIP7. | ||
|
|
||
| at PP/AN, module load the latest `fre-cli` that's been pushed to the main branch: | ||
| ``` | ||
| > module load fre/canopy | ||
| > which fre | ||
| /home/fms/local/opt/fre-commands/canopy/bin/fre | ||
| ``` | ||
|
|
||
| alternatively, with access to conda: | ||
| ``` | ||
| > conda activate /nbhome/fms/conda/envs/fre-cli | ||
| > which fre | ||
| /nbhome/fms/conda/envs/fre-cli/bin/fre | ||
| ``` | ||
|
|
||
| this subtool's help, and command-specific `run` help: | ||
| ``` | ||
| > fre cmor --help | ||
| Usage: fre cmor [OPTIONS] COMMAND [ARGS]... | ||
|
|
||
| - access fre cmor subcommands | ||
|
|
||
| Options: | ||
| --help Show this message and exit. | ||
|
|
||
| Commands: | ||
| run Rewrite climate model output | ||
|
|
||
|
|
||
| # subtool command-specific help, e.g. for run | ||
| > fre cmor run --help | ||
| Usage: fre cmor run [OPTIONS] | ||
|
|
||
| Rewrite climate model output | ||
|
|
||
| Options: | ||
| -d, --indir TEXT Input directory [required] | ||
| -l, --varlist TEXT Variable list [required] | ||
| -r, --table_config TEXT Table configuration [required] | ||
| -p, --exp_config TEXT Experiment configuration [required] | ||
| -o, --outdir TEXT Output directory [required] | ||
| --help Show this message and exit. | ||
| ``` | ||
|
|
||
|
|
||
| the tool requires configuration in the form of variable tables and conventions to work appropriately | ||
| clone the following repository and list the following directory contents to get a sense of what | ||
| the code needs from you to work. a few examples shown in the output below. the CV file is of particular interest/necessity | ||
| ``` | ||
| > git clone https://github.com/PCMDI/cmip6-cmor-tables.git fre/tests/test_files/cmip6-cmor-tables | ||
| > ls fre/tests/test_files/cmip6-cmor-tables/Tables | ||
| ... | ||
| CMIP6_CV.json | ||
| CMIP6_formula_terms.json | ||
| CMIP6_grids.json | ||
| CMIP6_coordinate.json | ||
| CMIP6_input_example.json | ||
| ... | ||
| CMIP6_3hr.json | ||
| ... | ||
| CMIP6_Efx.json | ||
| ... | ||
| CMIP6_IyrGre.json | ||
| ... | ||
| ``` | ||
|
|
||
|
|
||
| Simple example call(s) using fre-cli in the root directory of this repository note the line-continuation character at the end for readability, | ||
| you may wish to avoid it when copy/pasting. | ||
| ``` | ||
| > fre cmor run \ | ||
| -d fre/tests/test_files/ocean_sos_var_file \ | ||
| -l fre/tests/test_files/varlist \ | ||
| -r fre/tests/test_files/cmip6-cmor-tables/Tables/CMIP6_Omon.json \ | ||
| -p fre/tests/test_files/CMOR_input_example.json \ | ||
| -o fre/tests/test_files/outdir | ||
| ``` | ||
|
|
||
|
|
||
|
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.