# Purpose, Description
This is the repository for basic postprocess tasks for the individual models.
The goal is to provide scripts for
* processing the raw model output into the format "1 file per variable"
* creating basic plots of seasonal means and time series for
* stations (specific coordinates)
* regions (rectangles or defined by mask files)
* compare to given reference data
* compare to other models
* performing model specific tasks as
* preparing ocean model's output for Hagen Radtke's validator,
see https://openresearchsoftware.metajnl.com/articles/10.5334/jors.259/
and https://github.com/hagenradtke/validator
* generate forcings for MOM5 from the CCLM output
Each user can add his/her own customized postprocess tasks as described at
https://sven-karsten.github.io/iow_esm/usage/create_postprocess_task.html.
# Authors
* SK (sven.karsten@io-warnemuende.de)
# Versions
## 1.03.00 (latest release)
| date | author(s) | link |
|--- |--- |--- |
| 2023-07-24 | SK | [1.03.00](https://git.io-warnemuende.de/iow_esm/postprocess/src/branch/1.03.00) |
### changes
* reactivated `seasonal_percentile` task
* added `process_raw_output_and_compress` task
* this task creates monthly means for the output and compresses the raw (postprocessed) data into a `.tar.gz` archive
* a lot of polishing of the created plots and reports
* added `load_modules_target.sh` template
### dependencies
* python environment as anaconda3 or miniconda3
* cdo, nco, see load module scripts for your target
### known issues
* None
### tested with
* intensively tested on IOW servers, Berlin's and on Göttingen's HLRN machine on MOM5 and CCLM output
older versions
## 1.02.00
| date | author(s) | link |
|--- |--- |--- |
| 2022-12-22 | SK | [1.02.00](https://git.io-warnemuende.de/iow_esm/postprocess/src/branch/1.02.00) |
### changes
* main task is now create_validation_report
* validation report is Jupyter notebook containing figures
and links to other notebooks that create these figures
* obsolete tasks plot, plot_time_series, test have been removed
* result directories can have prefix that is defined as "name" in global_settings.py
* fixed bug with empty stations and regions
* regions can be specified by giving mask files
* mask should contain one variable "mask" that is one in the specific region and undefined elsewhere
* ice extent is calculated during processing of raw output
* plotting of seasonally averaged vertical profiles has been added
* variable must be a 4D (3 space + 1 time) variable
* dimension must be marked in global_settings.py as dicitonary entry "dimension"
with integer value, e.g 3 or 4 for 3- or 4-dimensional field, respectively
* default dimension is assumed to be 3 (backward compatible)
* seasonal means provide now standard deviation variables
* added Taylor diagrams
* other model data can be added to plots (work in progress)
### dependencies
* python environment as anaconda3 or miniconda3
* cdo, nco, see load module scripts for your target
### known issues
* None
### tested with
* intensively tested on IOW servers, Berlin's and on Göttingen's HLRN machine on MOM5 and CCLM output
## 1.01.02
| date | author(s) | link |
|--- |--- |--- |
| 2022-05-31 | SK | [1.01.02](https://git.io-warnemuende.de/iow_esm/postprocess/src/branch/1.01.02) |
### changes
* fixed bug in using the cdo showname operator
* allow for mean over total time period by using empty month list
* committed more general global settings
### dependencies
* python environment as anaconda3 or miniconda3
* cdo, nco, (texlive), see load module scripts for your target
### known issues
* plotting on HLRN Berlin not yet possible due to missing python module basemap
* can be circumvented by creating own conda environment via
``` bash
module load anaconda3/2019.10
conda init bash
conda create --name plotting
conda activate plotting
conda install basemap
conda install netCDF4
conda install xarray
```
and adding `conda activate plotting` to your local `load_modules.sh` on blogin
* plotting time series sporadically fails due to yet unknown reason
### tested with
* intensively tested on Berlin's (with workaround) and on Göttingen's HLRN machine on MOM5 and CCLM output
## 1.01.01
| date | author(s) | link |
|--- |--- |--- |
| 2022-05-04 | SK | [1.01.01](https://git.io-warnemuende.de/iow_esm/postprocess/src/branch/1.01.01) |
### changes
* fixed bug in using the mppncombine tool in MOM5/mppncombine/mppncombine.py
* the first IO rectangle was not merged to the others
* was not visible with 8nm MOM5 setup since this there was no data in this rectangle
### dependencies
* python environment as anaconda3 or miniconda3
* cdo, nco, (texlive), see load module scripts for your target
### known issues
* plotting on HLRN Berlin not yet possible due to missing python module basemap
* can be circumvented by creating own conda environment via
``` bash
module load anaconda3/2019.10
conda init bash
conda create --name plotting
conda activate plotting
conda install basemap
conda install netCDF4
conda install xarray
```
and adding `conda activate plotting` to your local `load_modules.sh` on blogin
### tested with
* intensively tested on Berlin's (with workaround) and on Göttingen's HLRN machine on MOM5 and CCLM output
## 1.01.00
| date | author(s) | link |
|--- |--- |--- |
| 2022-04-27 | SK | [1.01.00](https://git.io-warnemuende.de/iow_esm/postprocess/src/branch/1.01.00) |
### changes
* added task generate_mom_forcing to CCLM's tasks
* task creates forcing for the MOM5 ocean model according to transformation given
Thomas Neumann's scripts
* splitted process_raw_output task for MOM5
* mppncombine does merging of MOM's output
* split_files generates subsequently "1 file per variable" pattern
* fixed file ending .nc in CCLM/process_raw_output for total rain variable
* fixed plotting of standard deviation in time series
* remove results directory when rerunning a task
* if no units are specified, arbitrary units "a.u." appear in the plot
### dependencies
* python environment as anaconda3 or miniconda3
* cdo, nco, (texlive), see load module scripts for your target
### known issues
* plotting on HLRN Berlin not yet possible due to missing python module basemap
* can be circumvented by creating own conda environment via
``` bash
module load anaconda3/2019.10
conda init bash
conda create --name plotting
conda activate plotting
conda install basemap
conda install netCDF4
conda install xarray
```
and adding `conda activate plotting` to your local `load_modules.sh` on blogin
### tested with
* intensively tested on Berlin's (with workaround) and on Göttingen's HLRN machine on MOM5 and CCLM output
## 1.00.00
| date | author(s) | link |
|--- |--- |--- |
| 2022-01-31 | SK | [1.00.00](https://git.io-warnemuende.de/iow_esm/postprocess/src/branch/1.00.00) |
### changes
* initital release
* configured variables can be plotted and compared to a reference
via seasonal means and time series for stations and regions
### dependencies
* python environment as anaconda3 or miniconda3
* cdo, nco, (texlive), see load module scripts for your target
### known issues
* plotting on HLRN Berlin not yet possible due to missing python module basemap
### tested with
* intensively tested on Göttingen's HLRN machine on MOM5 and CCLM output