|
| 1 | +.. _recipe_santiy_checks: |
| 2 | + |
| 3 | +Sanity checks |
| 4 | +============= |
| 5 | + |
| 6 | +Overview |
| 7 | +-------- |
| 8 | + |
| 9 | +The sanity check recipe (``recipe_sanity_checks.yml``) is intended to perform |
| 10 | +some basic sanity checks for new simulations during model development. A subset of variables |
| 11 | +is selected to check whether the model is performing in reasonable way. The recipe plots global |
| 12 | +monthly means as well as maximum and minimum across all individual grid cells for each time step. |
| 13 | +This can be used to check for example for negative mass concentrations occuring at any grid cell |
| 14 | +at any time (minimum is less than zero) or whether individual grid cells exceed physically reasonable |
| 15 | +values (e.g. total cloud fraction greater than 100%). |
| 16 | +The global monthly means can be compared to the minimum and maximum values found in reference |
| 17 | +datasets (observations, reanalyses) across all months and all reference datasets. The "reasonable" |
| 18 | +limits are shown as red lines. A good model simulations would be expected to not exceed these |
| 19 | +limits at any time. The minimum and maximum global averages across all months and all reference |
| 20 | +datasets is calculated with ``recipe_create_ranges_obs.yml``. |
| 21 | + |
| 22 | +Available recipes and diagnostics |
| 23 | +--------------------------------- |
| 24 | + |
| 25 | +Recipes are stored in `recipes/sanity_checks` |
| 26 | + |
| 27 | +* recipe_sanity_checks.yml |
| 28 | +* recipe_create_ranges_obs.yml |
| 29 | + |
| 30 | +.. note:: |
| 31 | + |
| 32 | + The time frequency used in ``recipe_create_ranges_obs.yml`` (monthly, daily, etc. values) to |
| 33 | + calculate "reasonable" minimum and maximum values must match the time frequency used in |
| 34 | + the sanity check recipe (``recipe_sanity_checks.yml``). |
| 35 | + |
| 36 | +Diagnostics are stored in `diag_scripts/monitor/` |
| 37 | + |
| 38 | +* :ref:`multi_datasets.py |
| 39 | + <api.esmvaltool.diag_scripts.monitor.multi_datasets>`: |
| 40 | + Monitoring diagnostic to show multiple datasets in one plot (incl. biases). |
| 41 | + |
| 42 | +Variables: |
| 43 | +---------- |
| 44 | + |
| 45 | +* ps (air mass) |
| 46 | +* qep (moisture flux) |
| 47 | +* prw (water vapor mass) |
| 48 | +* asr |
| 49 | +* clivi |
| 50 | +* clt |
| 51 | +* hfls |
| 52 | +* hfss |
| 53 | +* lwcre |
| 54 | +* lwp |
| 55 | +* netcre |
| 56 | +* pr |
| 57 | +* prc |
| 58 | +* prw |
| 59 | +* rlds |
| 60 | +* rlut |
| 61 | +* rtnt |
| 62 | +* rsds |
| 63 | +* rsut |
| 64 | +* swcre |
| 65 | +* tas |
| 66 | +* tauu |
| 67 | +* tauv |
| 68 | + |
| 69 | +Example plots |
| 70 | +------------- |
| 71 | + |
| 72 | +.. _fig_sanity_check_clt: |
| 73 | +.. figure:: /recipes/figures/sanity_checks/timeseries_ambiguous_variable_group_MPI-ESM1-2-LR_Amon_historical_r1i1p1f1.png |
| 74 | + :align: center |
| 75 | + :width: 14cm |
| 76 | + |
| 77 | + Time series of monthly global average (solid line) and minimum / maximum |
| 78 | + (dashed lines) total cloud cover from MPI-ESM1-2-LR. The red horizontal lines |
| 79 | + show the monthly minimum and maximum global average across multiple reference |
| 80 | + dataset (here: ESACCI-CLOUD, CLARA-AVHRR, PATMOS-x, MODIS, ERA5) calculated |
| 81 | + with recipe_create_ranges_obs.yml. Plot created with recipe_sanity_checks.yml. |
0 commit comments