ESM Tools
Documentation¶
The esm-tools aim at simplifing the construction of experiments with Earth System Models. Presented here is a unified framework which will allow scientists to:
- Download numerical Earth System Models code, which may represent physical processes of the atmosphere, ocean, cryosphere, solid earth, or other components of Earth’s physical environment
- Compile these models on a variety of supercomputing platforms
- Design self-documenting experiments which these models.
- Perform reproducable analysis on the results of such experiments
- Archive the utilized data, enabling the scientist to subconsciously comply with good scientific practice
- Get out of the way, so you can do science and not worry about:
- Batch Systems
- Compiler Optimization
- Documenting the analysis
- Archiving your results
- Sharing the analysis in an easy, reproducable manner
To accomplish this goal, the ESM Team has developed a toolkit which allows all
of the above six steps to be accomplished with relatively little overhead for
the user. It’s written in python
.
You should be able to minimize days like this when using the tools (at least partially):
Installation Instructions¶
Still to come…
For Users¶
If you only want to run a model and aren’t aiming to implement a new system into this framework, you should be read the documentation and then be able to:
- Select and download a model
- Compile the model for your platform
- Generate an experiment
Start Here: User_01 (Nothing yet, sorry…)
For Developers¶
What follows in this documentation is a generic outline of the philosophy behind the tools. Upon reading this document and the accompanying example, you should be able to:
- Implement an example, dummy model
- Extend this dummy model to an actual ESM you might want to run on a supercomputer
- Have a solid grasp on where you need to implement model-specifics to enable you to share your model with other scientists.
Start Here: Dev: Introduction
Unit and Integration Tests¶
There are a few unit and integration tests that are shipped with the code. You can use a python test runner of your choice to run the test suite. The tester built-in to the standard library can be run like this, assuming you are in the top level directory of the python implementation:
$ python -m unittest discover -s tests
Alternatively, if you prefer color in your tests, you can install the green tester and then use the command:
$ green -rvvv
Other Notes¶
This software is still under active development, with a full release planned
for end of winter 2019 (Feb/March). It is a re-implementation of the esm-tools
written in ksh
. Therefore, if you run into any problems, please let the
development team know! While the end-goal is a smoother experience for
everyone, this probably won’t be immediate and we will need to iron out some
wrinkles at the beginning.
Why Re-Implement already functionional ksh
?¶
We chose to re-do everything in python
since it’s a significantly more
modern language, is easier to maintain, and is less daunting to new developers.
Plus, it’s been fun to re-write some of this stuff, and the code-base has
shrunken significantly.
Regardless of your purpose, you should please report bugs and request new features for future implementation.
Table of Contents¶
User Documentation
Nothing yet, sorry…
Developer Documentation
Technical Documentation