====================== Command Line Interface ====================== The ESM Analysis software provides a command line interface for common operations you may want to perform on model output. To see which operators are available:: $ esm_analysis —-help This will print a list of currently implemented subcommands. For suggestions, improvements, or feature requests, please open an issue. Effectively, the command line interface provides “syntax sugar” around several ``CDO`` commands to take away some of the overhead, including: * Automatic awareness of file and directory locations * Avoids reprocessing already existing analysis * Uniform, semantic output file names in organized subdirectories This eases some of the problems commonly experiences when sharing data with colleagues, such as: * Different preferences in filenames (``esm_analysis`` does this for you) * No ambiguity in what sort of analysis you are getting (``esm_analysis`` clearly marks what it does) You can execute ``esm_analysis`` from anywhere within an experiment tree. It doesn’t matter if you are in ``outdata``, ``analysis``, ``work``, ``restart``, the top of the experiment, or an arbitrarily deep subfolder. The only pre-requisite here is that a file ``.top_of_experiment`` is in the top level directory. If this is not found, and ``esm_analysis`` finds the root of the filesystem, it will ask you for assistance. Example ------- Let’s say you want to make a globally spatial average of ``temp2``, the 2 meter near surface air temperature. From anywhere in the experiment, just say:: $ esm_analysis fldmean temp2 ``esm_analysis`` will figure out that: * ``temp2`` is an echam variable * which files in echam have ``temp2`` information (if more than one, it will ask which files you want to use) * Make an analysis directory for you * Generate a file ``${EXP_ID}_echam6_temp2_fldmean.nc`` ============= Library Usage ============= To use ESM Analysis in a project:: import esm_analysis The ESM Analysis module allows for creation of several common analyis from Python objects. The main object you probably want to use is: ``EsmAnalysis``. You can create one like this, if you are currently working within an experiment directory:: from esm_analysis import EsmAnalysis analyser = EsmAnalysis() Optionally, you can give it a path where to start from:: analyser = EsmAnalysis(exp_base="/work/ba0989/a270077/AWICM_PISM/LGM_011") You can also tell it where to store analysis:: analyser = EsmAnalysis(preferred_analysis_dir="/work/ba0989/a270077/store_analysis_here") Once you have created the ``analyzer`` object, you can use the attached methods to quickly get some typical analyses. The methods always return an ``xarray.Dataset`` object. Typically, the only required argument is the variable name:: t2m_fldmean = analyser.fldmean("temp2")