e3sm-project / e3sm_diags Goto Github PK
View Code? Open in Web Editor NEWE3SM Diagnostics package
Home Page: https://e3sm-project.github.io/e3sm_diags
License: BSD 3-Clause "New" or "Revised" License
E3SM Diagnostics package
Home Page: https://e3sm-project.github.io/e3sm_diags
License: BSD 3-Clause "New" or "Revised" License
acme_diags_driver only runs for the last json file attached:
i.e.:
acme_diags_driver.py -p mydiags_v1.py -d driver/lat_lon_ACME.json -d driver/cosp_histogram_AMWG_default.json
only runs for cosp_histogram_AMWG_default.json
This worked on Friday's master though
@chengzhuzhang created this issue.
Instead of setX_driver.py, vcs/set3.py and cartopy/set3.py, have something less obscure.
Some ideas:
And for the plotting
Also have a good interface from going to numbered parameters <-> detailed parameters.
@chengzhuzhang You know what stuff climatologists want to see. If you think we need to do this by the release this week, then cool. Otherwise, that's also fine.
So that this can easily be used in the ACME Workflow.
Maybe we don't need to add all of the arguments, just the ones that are defined in ACMEParameter.
Though this would be tedious for a user to do, it should still be able to be done. It makes it easy for some people who don't quite understand the point of the Python script.
This should be implemented into cdp.
Something like this:
$ acme_diags_driver.py -p myparams.py -d mydiags1.json mydiags2.json
$ acme_diags_driver.py -p myparams.py myotherparams.py -d mydiags1.json mydiags2.json
Don't rely on nightlies.
Add scripts to this package to get the worker and scheduler/head nodes up and running.
Make sure to edit setup.py
so users within an env can just do:
# scheduler.sh
# worker.sh 8
Email those people and hope they don't make us pay.
mpl scripts doesn't support colormap change
The order in which the viewer displays plot sets, and variables within plot sets should match the order in input json files. A user could therefore customize the order to their liking by simply editing json files describing the plots.
logger
module instead of print()
mv1
and mv2
variable names to something related to ref and test@chengzhuzhang wrote this:
such as
case_scripts_ANN_000101_001012_climo.nc
case_scripts_ANN_000101_000512_climo.nc
case_scripts_ANN_000601_001012_climo.nc
reference: sterling's work bench:
https://github.com/sterlingbaldwin/acme_workflow/blob/master/lib/util.py#L150
During setup, install json scripts so the user can follow some sort of demo. Similar to how acme_diags_driver.py
is installed.
By August 24, implement a basic testing framework where Jill, Chris, and Jerry can easily create batch jobs against the latest code and view the results.
Ex: Any Python parameter script (something.py
) with the correspondingly named diag files (something1.cfg
, something2.json
, etc) will automatically be ran at a certain time. The user can manually trigger these runs as well.
Output stuff like the min, max, mean and other metrics (rmse, corr, more) to something like a json. This will allow us to easily view the non-rounded values and compare to the AMWG diagnostics when needed.
findfile()
fixed these issues a long time ago and having ref_file
as a parameter in the default json causes problems.
For some reason, multiprocessing hands on @chengzhuzhang env. It works for Chris and I. Fix this before the release.
Currently, the user cannot see what's being printed on the console unless they are logged into the worker nodes.
Though not directly related to this project, make the mpiuni
build of ESMF be a feature of ESMF on the ACME Anaconda page.
@chengzhuzhang created this issue.
Some stuff to do:
A long time ago, some people mentioned that we should add ncclimo into our diagnostics, so users don't have to do that preprocessing beforehand. However, this is already handled by the ACME Workbench. What are your thoughts @chengzhuzhang?
Add option not to save netcdf to limit size of result directory to be shared.
Sine there are large differences between CERES-EBAF TOA 2.8 and 4.0, we should include both datasets.
When they run the driver without a parameters file:
$ acme_diags_driver.py
they get:
File "/export/baldwin32/anaconda2/envs/acme2/lib/python2.7/site-packages/acme_diags/acme_parameter.py", line 58, in check_values
if self.reference_data_path == '':
AttributeError: 'ACMEParameter' object has no attribute 'reference_data_path'
Give a better error message.
Thanks @sterlingbaldwin
Sometimes, there an error 'No file found for (variable) and (season)', so no plot is created. But since the viewer looks through the parameters, it'll think there's a file.
We end up with something like this:
Generated with:
{
"set5": [
{
"sets": [3],
"case_id": "set5_CRU",
"variables": ["TREFHT_LAND"],
"ref_name": "CRU",
"reference_name": "IPCC/CRU climatology1961-90",
"seasons": ["MAM"],
"contour_levels": [210, 220, 230, 240, 250, 260, 270, 275, 280, 285, 290, 295, 300, 305, 310],
"diff_levels": [-5, -4, -3, -2, -1, -0.5, -0.2, 0, 0.2, 0.5, 1, 2, 3, 4, 5]
},
{
"sets": [3],
"case_id": "set5_SST_HadISST",
"variables": ["SST"],
"ref_name": "HadISST_CL",
"reference_name": "HadISST/OI.v2 (Climatology) 1982-2001",
"seasons": ["DJF"],
"contour_levels": [-1, 0, 1, 3, 6, 9, 12, 15, 18, 20, 22, 24, 26, 28, 29],
"diff_levels": [-5, -4, -3, -2, -1, -0.5, -0.2, 0, 0.2, 0.5, 1, 2, 3, 4, 5]
}
]
}
@chengzhuzhang wrote this issue.
This shouldn't need to be. You can just have all of the sets in the .json and not define it in myparams.py
Add more unit tests for the functionality related to the drivers and more.
This way, the user doesn't need to logged into the nodes to see what's going on.
f_in doesn't function for obs versus obs case
The particular nightlies of vtk-cdat-nox
and vcs-nox
need to be built on macOS.
@chengzhuzhang created this issue.
I'd like to add new variables to the ACME default lat-lon plot sets:
Check that all needed keywords are present.
The ACMEParameters class already does this, but if the user spells "sets" as "set" still doesn't give an error.
ready:
lat_lon_newobs.json
cosp_histogram.json
in progress:
set7,set4,set3 json
@glpotter : would it be possible to add sensible heat flux to ERA-Interim and MERRA2 re-analysis datasets? Currently, latent heat flux is included, but not sensible.
In addition to supporting sets = [3, 4, 5, 7]
, we can aliases for 3, 4, 5, and 7.
Maybe have:
@chengzhuzhang, what are your thoughts and do you have ideas for keywords that are succinct?
I'll actually implement this, it's trivial.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.