From a88e8518c1cbd1adf8011853b276a8b54e336b1a Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Fri, 26 Mar 2021 17:20:38 +0100 Subject: [PATCH] Quentin 26/03/2021: Major update of KTEST : add python for all KTEST based on src/LIB/Python scripts + remove diaprog and conv2dia steps + add DIAG steps for needed Python plots variables (ISOAL variables) + update existing ncl script to re-arrange dimensions of backup files + remove ncl script of time series KTEST (ncl not supported soon) + adapt Makefiles --- .../001_2Drelief/003_convdia/clean_conv2dia | 4 - .../001_2Drelief/003_convdia/dir_conv2dia | 6 - .../001_2Drelief/003_convdia/run_conv2dia | 11 - .../001_2Drelief/003_python/clean_python | 4 + .../003_python/plot_001_2DRelief.py | 268 +++++++++ .../KTEST/001_2Drelief/003_python/run_python | 15 + .../001_2Drelief/004_diaprog/clean_diaprog | 4 - .../001_2Drelief/004_diaprog/dir.2Drelief | 60 -- .../001_2Drelief/004_diaprog/run_diaprog | 10 - .../{005_ncl => 004_ncl}/clean_ncl | 0 .../{005_ncl => 004_ncl}/plot_2Drelief.ncl | 38 +- .../001_2Drelief/{005_ncl => 004_ncl}/run_ncl | 0 MY_RUN/KTEST/001_2Drelief/Makefile | 10 +- .../002_3Drelief/003_convdia/clean_conv2dia | 5 - .../002_3Drelief/003_convdia/dir_conv2dia | 6 - .../002_3Drelief/003_python/clean_python | 4 + .../003_python/plot_002_3DRelief.py | 73 +++ .../KTEST/002_3Drelief/003_python/run_python | 13 + .../002_3Drelief/004_diaprog/clean_diaprog | 3 - .../002_3Drelief/004_diaprog/dir_3Drelief | 13 - MY_RUN/KTEST/002_3Drelief/004_ncl/clean_ncl | 2 + .../{005_ncl => 004_ncl}/plot_3Drelief.ncl | 0 .../002_3Drelief/{005_ncl => 004_ncl}/run_ncl | 0 MY_RUN/KTEST/002_3Drelief/005_ncl/clean_ncl | 2 - MY_RUN/KTEST/002_3Drelief/Makefile | 10 +- .../KTEST/003_KW78/003_convdia/clean_conv2dia | 4 - .../KTEST/003_KW78/003_convdia/dir_conv2dia | 6 - MY_RUN/KTEST/003_KW78/003_diag/DIAG1.nam | 14 + MY_RUN/KTEST/003_KW78/003_diag/clean_diag_xyz | 5 + MY_RUN/KTEST/003_KW78/003_diag/diag.nam | 12 + .../003_diag/run_diag_xyz} | 10 +- .../KTEST/003_KW78/004_diaprog/clean_diaprog | 3 - MY_RUN/KTEST/003_KW78/004_diaprog/dir_KW78 | 78 --- MY_RUN/KTEST/003_KW78/004_diaprog/run_diaprog | 11 - MY_RUN/KTEST/003_KW78/004_python/clean_python | 4 + .../003_KW78/004_python/plot_003_KW78.py | 230 ++++++++ MY_RUN/KTEST/003_KW78/004_python/run_python | 13 + MY_RUN/KTEST/003_KW78/005_ncl/clean_ncl | 2 +- MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl | 2 +- MY_RUN/KTEST/003_KW78/Makefile | 10 +- .../004_Reunion/003_mesonh/clean_mesonh_xyz | 2 +- .../004_Reunion/004_convdia/clean_conv2dia | 3 - .../004_Reunion/004_convdia/dir_conv2dia | 6 - MY_RUN/KTEST/004_Reunion/004_diag/DIAG1.nam | 7 + .../KTEST/004_Reunion/004_diag/clean_diag_xyz | 5 + .../run_conv2dia => 004_diag/run_diag_xyz} | 10 +- .../004_Reunion/005_diaprog/clean_diaprog | 3 - .../KTEST/004_Reunion/005_diaprog/dir_Reunion | 30 - .../KTEST/004_Reunion/005_diaprog/run_diaprog | 11 - MY_RUN/KTEST/004_Reunion/006_ncl/clean_ncl | 2 +- .../KTEST/004_Reunion/007_python/clean_python | 4 + .../007_python/plot_004_Reunion.py | 145 +++++ .../KTEST/004_Reunion/007_python/run_python | 13 + MY_RUN/KTEST/004_Reunion/Makefile | 10 +- .../KTEST/005_ARM/002_mesonh/clean_mesonh_xyz | 2 +- .../KTEST/005_ARM/003_diaprog/clean_diaprog | 4 - MY_RUN/KTEST/005_ARM/003_diaprog/dir_arm | 77 --- MY_RUN/KTEST/005_ARM/003_diaprog/run_diaprog | 8 - MY_RUN/KTEST/005_ARM/003_python/clean_python | 4 + .../KTEST/005_ARM/003_python/plot_005_ARM.py | 149 +++++ .../003_python/run_python} | 9 +- MY_RUN/KTEST/005_ARM/004_ncl/clean_ncl | 2 - MY_RUN/KTEST/005_ARM/004_ncl/plot_arm.ncl | 513 ------------------ MY_RUN/KTEST/005_ARM/004_ncl/run_ncl | 37 -- MY_RUN/KTEST/005_ARM/Makefile | 6 +- .../007_16janvier/008_run2/clean_mesonh_xyz | 2 +- .../KTEST/007_16janvier/009_diag/DIAG1.nam1 | 4 +- .../KTEST/007_16janvier/009_diag/DIAG1.nam2 | 4 +- .../007_16janvier/010_conv2dia/clean_conv2dia | 4 - .../007_16janvier/010_conv2dia/dir_conv2dia1 | 6 - .../007_16janvier/010_conv2dia/dir_conv2dia2 | 6 - .../007_16janvier/010_conv2dia/run_conv2dia | 12 - .../007_16janvier/010_python/clean_python | 4 + .../010_python/plot_007_16janvier.py | 113 ++++ .../KTEST/007_16janvier/010_python/run_python | 13 + .../007_16janvier/011_diaprog/clean_diaprog | 3 - .../007_16janvier/011_diaprog/dir_16janv | 24 - .../007_16janvier/011_diaprog/run_diaprog | 11 - MY_RUN/KTEST/007_16janvier/Makefile | 15 +- .../009_ICARTT/003_mesonh/clean_mesonh_xyz | 2 +- .../KTEST/009_ICARTT/005_python/clean_python | 4 + .../009_ICARTT/005_python/plot_009_ICARTT.py | 119 ++++ MY_RUN/KTEST/009_ICARTT/005_python/run_python | 13 + MY_RUN/KTEST/009_ICARTT/Makefile | 6 +- .../011_KW78CHEM/003_convdia/clean_conv2dia | 5 - .../011_KW78CHEM/003_convdia/dir_conv2dia | 6 - .../011_KW78CHEM/003_convdia/run_conv2dia | 11 - MY_RUN/KTEST/011_KW78CHEM/003_diag/DIAG1.nam | 14 + .../011_KW78CHEM/003_diag/clean_diag_xyz | 5 + MY_RUN/KTEST/011_KW78CHEM/003_diag/diag.nam | 12 + .../003_diag/run_diag_xyz} | 10 +- .../011_KW78CHEM/004_diaprog/clean_diaprog | 3 - .../011_KW78CHEM/004_diaprog/dir_KW78_chem | 65 --- .../011_KW78CHEM/004_diaprog/run_diaprog | 11 - .../011_KW78CHEM/004_python/clean_python | 4 + .../004_python/plot_011_KW78CHEM.py | 297 ++++++++++ .../KTEST/011_KW78CHEM/004_python/run_python | 13 + MY_RUN/KTEST/011_KW78CHEM/005_ncl/clean_ncl | 2 +- MY_RUN/KTEST/011_KW78CHEM/Makefile | 8 +- .../012_dust/005_conv2dia/clean_conv2dia | 4 - .../KTEST/012_dust/005_conv2dia/dir_conv2dia1 | 6 - .../KTEST/012_dust/005_conv2dia/run_conv2dia | 7 - MY_RUN/KTEST/012_dust/005_python/clean_python | 4 + .../012_dust/005_python/plot_012_dust.py | 124 +++++ MY_RUN/KTEST/012_dust/005_python/run_python | 13 + .../KTEST/012_dust/006_diaprog/clean_diaprog | 3 - MY_RUN/KTEST/012_dust/006_diaprog/dirdust | 34 -- MY_RUN/KTEST/012_dust/006_diaprog/run_diaprog | 7 - MY_RUN/KTEST/012_dust/006_ncl/clean_ncl | 3 + .../{007_ncl => 006_ncl}/plot_dust.ncl | 0 .../012_dust/{007_ncl => 006_ncl}/run_ncl | 0 MY_RUN/KTEST/012_dust/007_ncl/clean_ncl | 4 - MY_RUN/KTEST/012_dust/Makefile | 17 +- MY_RUN/KTEST/014_LIMA/002_mesonh/EXSEG1.nam | 12 +- MY_RUN/KTEST/014_LIMA/003_ncl/clean_ncl | 2 - MY_RUN/KTEST/014_LIMA/003_ncl/plot_LIMA.ncl | 121 ----- MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl | 20 - MY_RUN/KTEST/014_LIMA/004_python/clean_python | 4 + .../014_LIMA/004_python/plot_014_LIMA.py | 69 +++ MY_RUN/KTEST/014_LIMA/004_python/run_python | 13 + MY_RUN/KTEST/014_LIMA/Makefile | 5 +- 121 files changed, 1931 insertions(+), 1399 deletions(-) delete mode 100755 MY_RUN/KTEST/001_2Drelief/003_convdia/clean_conv2dia delete mode 100644 MY_RUN/KTEST/001_2Drelief/003_convdia/dir_conv2dia delete mode 100755 MY_RUN/KTEST/001_2Drelief/003_convdia/run_conv2dia create mode 100644 MY_RUN/KTEST/001_2Drelief/003_python/clean_python create mode 100644 MY_RUN/KTEST/001_2Drelief/003_python/plot_001_2DRelief.py create mode 100644 MY_RUN/KTEST/001_2Drelief/003_python/run_python delete mode 100755 MY_RUN/KTEST/001_2Drelief/004_diaprog/clean_diaprog delete mode 100644 MY_RUN/KTEST/001_2Drelief/004_diaprog/dir.2Drelief delete mode 100755 MY_RUN/KTEST/001_2Drelief/004_diaprog/run_diaprog rename MY_RUN/KTEST/001_2Drelief/{005_ncl => 004_ncl}/clean_ncl (100%) rename MY_RUN/KTEST/001_2Drelief/{005_ncl => 004_ncl}/plot_2Drelief.ncl (89%) rename MY_RUN/KTEST/001_2Drelief/{005_ncl => 004_ncl}/run_ncl (100%) delete mode 100755 MY_RUN/KTEST/002_3Drelief/003_convdia/clean_conv2dia delete mode 100644 MY_RUN/KTEST/002_3Drelief/003_convdia/dir_conv2dia create mode 100644 MY_RUN/KTEST/002_3Drelief/003_python/clean_python create mode 100644 MY_RUN/KTEST/002_3Drelief/003_python/plot_002_3DRelief.py create mode 100644 MY_RUN/KTEST/002_3Drelief/003_python/run_python delete mode 100755 MY_RUN/KTEST/002_3Drelief/004_diaprog/clean_diaprog delete mode 100644 MY_RUN/KTEST/002_3Drelief/004_diaprog/dir_3Drelief create mode 100755 MY_RUN/KTEST/002_3Drelief/004_ncl/clean_ncl rename MY_RUN/KTEST/002_3Drelief/{005_ncl => 004_ncl}/plot_3Drelief.ncl (100%) rename MY_RUN/KTEST/002_3Drelief/{005_ncl => 004_ncl}/run_ncl (100%) delete mode 100755 MY_RUN/KTEST/002_3Drelief/005_ncl/clean_ncl delete mode 100755 MY_RUN/KTEST/003_KW78/003_convdia/clean_conv2dia delete mode 100644 MY_RUN/KTEST/003_KW78/003_convdia/dir_conv2dia create mode 100644 MY_RUN/KTEST/003_KW78/003_diag/DIAG1.nam create mode 100644 MY_RUN/KTEST/003_KW78/003_diag/clean_diag_xyz create mode 100644 MY_RUN/KTEST/003_KW78/003_diag/diag.nam rename MY_RUN/KTEST/{002_3Drelief/003_convdia/run_conv2dia => 003_KW78/003_diag/run_diag_xyz} (67%) mode change 100755 => 100644 delete mode 100755 MY_RUN/KTEST/003_KW78/004_diaprog/clean_diaprog delete mode 100644 MY_RUN/KTEST/003_KW78/004_diaprog/dir_KW78 delete mode 100755 MY_RUN/KTEST/003_KW78/004_diaprog/run_diaprog create mode 100644 MY_RUN/KTEST/003_KW78/004_python/clean_python create mode 100644 MY_RUN/KTEST/003_KW78/004_python/plot_003_KW78.py create mode 100644 MY_RUN/KTEST/003_KW78/004_python/run_python delete mode 100755 MY_RUN/KTEST/004_Reunion/004_convdia/clean_conv2dia delete mode 100644 MY_RUN/KTEST/004_Reunion/004_convdia/dir_conv2dia create mode 100644 MY_RUN/KTEST/004_Reunion/004_diag/DIAG1.nam create mode 100644 MY_RUN/KTEST/004_Reunion/004_diag/clean_diag_xyz rename MY_RUN/KTEST/004_Reunion/{004_convdia/run_conv2dia => 004_diag/run_diag_xyz} (67%) mode change 100755 => 100644 delete mode 100755 MY_RUN/KTEST/004_Reunion/005_diaprog/clean_diaprog delete mode 100644 MY_RUN/KTEST/004_Reunion/005_diaprog/dir_Reunion delete mode 100755 MY_RUN/KTEST/004_Reunion/005_diaprog/run_diaprog create mode 100644 MY_RUN/KTEST/004_Reunion/007_python/clean_python create mode 100644 MY_RUN/KTEST/004_Reunion/007_python/plot_004_Reunion.py create mode 100644 MY_RUN/KTEST/004_Reunion/007_python/run_python delete mode 100755 MY_RUN/KTEST/005_ARM/003_diaprog/clean_diaprog delete mode 100644 MY_RUN/KTEST/005_ARM/003_diaprog/dir_arm delete mode 100755 MY_RUN/KTEST/005_ARM/003_diaprog/run_diaprog create mode 100644 MY_RUN/KTEST/005_ARM/003_python/clean_python create mode 100644 MY_RUN/KTEST/005_ARM/003_python/plot_005_ARM.py rename MY_RUN/KTEST/{002_3Drelief/004_diaprog/run_diaprog => 005_ARM/003_python/run_python} (62%) mode change 100755 => 100644 delete mode 100755 MY_RUN/KTEST/005_ARM/004_ncl/clean_ncl delete mode 100644 MY_RUN/KTEST/005_ARM/004_ncl/plot_arm.ncl delete mode 100755 MY_RUN/KTEST/005_ARM/004_ncl/run_ncl delete mode 100755 MY_RUN/KTEST/007_16janvier/010_conv2dia/clean_conv2dia delete mode 100644 MY_RUN/KTEST/007_16janvier/010_conv2dia/dir_conv2dia1 delete mode 100644 MY_RUN/KTEST/007_16janvier/010_conv2dia/dir_conv2dia2 delete mode 100755 MY_RUN/KTEST/007_16janvier/010_conv2dia/run_conv2dia create mode 100644 MY_RUN/KTEST/007_16janvier/010_python/clean_python create mode 100644 MY_RUN/KTEST/007_16janvier/010_python/plot_007_16janvier.py create mode 100644 MY_RUN/KTEST/007_16janvier/010_python/run_python delete mode 100755 MY_RUN/KTEST/007_16janvier/011_diaprog/clean_diaprog delete mode 100644 MY_RUN/KTEST/007_16janvier/011_diaprog/dir_16janv delete mode 100755 MY_RUN/KTEST/007_16janvier/011_diaprog/run_diaprog create mode 100644 MY_RUN/KTEST/009_ICARTT/005_python/clean_python create mode 100644 MY_RUN/KTEST/009_ICARTT/005_python/plot_009_ICARTT.py create mode 100644 MY_RUN/KTEST/009_ICARTT/005_python/run_python delete mode 100755 MY_RUN/KTEST/011_KW78CHEM/003_convdia/clean_conv2dia delete mode 100644 MY_RUN/KTEST/011_KW78CHEM/003_convdia/dir_conv2dia delete mode 100755 MY_RUN/KTEST/011_KW78CHEM/003_convdia/run_conv2dia create mode 100644 MY_RUN/KTEST/011_KW78CHEM/003_diag/DIAG1.nam create mode 100644 MY_RUN/KTEST/011_KW78CHEM/003_diag/clean_diag_xyz create mode 100644 MY_RUN/KTEST/011_KW78CHEM/003_diag/diag.nam rename MY_RUN/KTEST/{003_KW78/003_convdia/run_conv2dia => 011_KW78CHEM/003_diag/run_diag_xyz} (67%) mode change 100755 => 100644 delete mode 100755 MY_RUN/KTEST/011_KW78CHEM/004_diaprog/clean_diaprog delete mode 100644 MY_RUN/KTEST/011_KW78CHEM/004_diaprog/dir_KW78_chem delete mode 100755 MY_RUN/KTEST/011_KW78CHEM/004_diaprog/run_diaprog create mode 100644 MY_RUN/KTEST/011_KW78CHEM/004_python/clean_python create mode 100644 MY_RUN/KTEST/011_KW78CHEM/004_python/plot_011_KW78CHEM.py create mode 100644 MY_RUN/KTEST/011_KW78CHEM/004_python/run_python delete mode 100755 MY_RUN/KTEST/012_dust/005_conv2dia/clean_conv2dia delete mode 100644 MY_RUN/KTEST/012_dust/005_conv2dia/dir_conv2dia1 delete mode 100755 MY_RUN/KTEST/012_dust/005_conv2dia/run_conv2dia create mode 100644 MY_RUN/KTEST/012_dust/005_python/clean_python create mode 100644 MY_RUN/KTEST/012_dust/005_python/plot_012_dust.py create mode 100644 MY_RUN/KTEST/012_dust/005_python/run_python delete mode 100755 MY_RUN/KTEST/012_dust/006_diaprog/clean_diaprog delete mode 100644 MY_RUN/KTEST/012_dust/006_diaprog/dirdust delete mode 100755 MY_RUN/KTEST/012_dust/006_diaprog/run_diaprog create mode 100755 MY_RUN/KTEST/012_dust/006_ncl/clean_ncl rename MY_RUN/KTEST/012_dust/{007_ncl => 006_ncl}/plot_dust.ncl (100%) rename MY_RUN/KTEST/012_dust/{007_ncl => 006_ncl}/run_ncl (100%) delete mode 100755 MY_RUN/KTEST/012_dust/007_ncl/clean_ncl delete mode 100755 MY_RUN/KTEST/014_LIMA/003_ncl/clean_ncl delete mode 100644 MY_RUN/KTEST/014_LIMA/003_ncl/plot_LIMA.ncl delete mode 100755 MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl create mode 100644 MY_RUN/KTEST/014_LIMA/004_python/clean_python create mode 100644 MY_RUN/KTEST/014_LIMA/004_python/plot_014_LIMA.py create mode 100644 MY_RUN/KTEST/014_LIMA/004_python/run_python diff --git a/MY_RUN/KTEST/001_2Drelief/003_convdia/clean_conv2dia b/MY_RUN/KTEST/001_2Drelief/003_convdia/clean_conv2dia deleted file mode 100755 index b7471298d..000000000 --- a/MY_RUN/KTEST/001_2Drelief/003_convdia/clean_conv2dia +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -rm -f dirconv.elim FICJD LISTING_DIA OUT_DIA pipe_name -rm -f EXPER.1.HYD2D* - diff --git a/MY_RUN/KTEST/001_2Drelief/003_convdia/dir_conv2dia b/MY_RUN/KTEST/001_2Drelief/003_convdia/dir_conv2dia deleted file mode 100644 index 5706e5c9b..000000000 --- a/MY_RUN/KTEST/001_2Drelief/003_convdia/dir_conv2dia +++ /dev/null @@ -1,6 +0,0 @@ -2 -EXPER.1.HYD2D.002 -EXPER.1.HYD2D.003 -EXPER.1.HYD2D.002-3d -n -0 diff --git a/MY_RUN/KTEST/001_2Drelief/003_convdia/run_conv2dia b/MY_RUN/KTEST/001_2Drelief/003_convdia/run_conv2dia deleted file mode 100755 index b9a9c8871..000000000 --- a/MY_RUN/KTEST/001_2Drelief/003_convdia/run_conv2dia +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -#MNH_LIC for details. version 1. -set -x -set -e -ln -sf ../002_mesonh/EXPER.1.HYD2D.00?.{des,lfi,nc} . -rm -f EXPER.1.HYD2D.002-3d.{des,lfi,nc} -time ${POSTRUN} conv2dia < dir_conv2dia - diff --git a/MY_RUN/KTEST/001_2Drelief/003_python/clean_python b/MY_RUN/KTEST/001_2Drelief/003_python/clean_python new file mode 100644 index 000000000..d75604a6a --- /dev/null +++ b/MY_RUN/KTEST/001_2Drelief/003_python/clean_python @@ -0,0 +1,4 @@ +#!/bin/bash +rm -f *.png *.pdf *.nc +rm -Rf __pycache__ +find . -type l -delete diff --git a/MY_RUN/KTEST/001_2Drelief/003_python/plot_001_2DRelief.py b/MY_RUN/KTEST/001_2Drelief/003_python/plot_001_2DRelief.py new file mode 100644 index 000000000..3355e0004 --- /dev/null +++ b/MY_RUN/KTEST/001_2Drelief/003_python/plot_001_2DRelief.py @@ -0,0 +1,268 @@ +#!/usr/bin/env python3 +""" +@author: Quentin Rodier +Creation : 07/01/2021 + +Last modifications +""" +import matplotlib as mpl +mpl.use('Agg') +from read_MNHfile import read_netcdf +from Panel_Plot import PanelPlot +from misc_functions import comp_altitude1DVar +import os +import copy + +os.system('rm -f tempgraph*') +# +# User's parameter / Namelist +# +output_name = '001_2DRelief.pdf' #Name of the output PDF file +path="" +LnameFiles = ['EXPER.1.HYD2D.002.nc', 'EXPER.1.HYD2D.003.nc'] + +Dvar_input = { +'f1':['ZS', 'UT', 'WT', 'THT', 'RVT','LSUM','LSTHM','CFLU','CFLW','ni_u','level','ZTOP', 'ni','level_w','time'], +'f2':['ZS', 'UT', 'WT', 'THT', 'RVT','LSUM','LSTHM','CFLU','CFLW','ni_u','level','ZTOP', 'ni', 'level_w', 'time'] +} + +# Read the variables in the files +Dvar = {} +Dvar = read_netcdf(LnameFiles, Dvar_input, path=path, removeHALO=True) + +# Compute altitude variable in 2D with a 1D topography +Dvar['f1']['altitude'], Dvar['f1']['ni_u_2D'] = comp_altitude1DVar(Dvar['f1']['UT'], Dvar['f1']['ZS'],Dvar['f1']['ZTOP'], Dvar['f1']['level'],Dvar['f1']['ni_u']) +Dvar['f1']['altitude_w'], Dvar['f1']['ni_2D'] = comp_altitude1DVar(Dvar['f1']['WT'], Dvar['f1']['ZS'],Dvar['f1']['ZTOP'], Dvar['f1']['level_w'],Dvar['f1']['ni']) + +orog = Dvar['f1']['ZS'][101:158] + +################################################################ +######### PANEL 1 & 2 +############################################################### +Panel1 = PanelPlot(2,2, [20,20],'001_2DRelief zoomed plots') + +Lplot = [ Dvar['f1']['UT'][:,101:158], Dvar['f2']['UT'][:,101:158], Dvar['f1']['THT'][:,101:158], Dvar['f2']['THT'][:,101:158] , + Dvar['f1']['WT'][:,101:158], Dvar['f2']['WT'][:,101:158], Dvar['f1']['RVT'][:,101:158], Dvar['f2']['RVT'][:,101:158] ] + +LaxeX = [Dvar['f1']['ni_u_2D'][:,101:158]]*2 +LaxeX.extend([Dvar['f1']['ni_2D'][:,101:158] for i in range(6)]) #ni for all except UT + +LaxeZ = [Dvar['f1']['altitude'][:,101:158]]*4 +LaxeZ.extend([Dvar['f1']['altitude_w'][:,101:158] for i in range(2)]) #altitude_w only for WT +LaxeZ.extend([Dvar['f1']['altitude'][:,101:158] for i in range(2)]) + +Ltitle = ['u-wind UT', 'u-wind UT', 'Potential temperature THT', 'Potential temperature THT', + 'Vertical velocity WT','Vertical velocity WT','Water vapor mixing ratio RVT', 'Water vapor mixing ratio RVT'] +Lcbarlabel = ['m/s', 'm/s', 'K', 'K', 'm/s','m/s','g/kg','g/kg'] +Lxlab = ['x (m)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,8000.1)]*len(Lplot) +Lminval = [5.2, 5.2, 285, 285, -0.4, -0.4, 0.2, 0.2] +Lmaxval = [12.4, 12.4, 330, 330, 0.28, 0.28, 4.0, 4.0] +Lstep = [0.4, 0.4, 2.5, 2.5, 0.04, 0.04, 0.2, 0.2] +Lstepticks = Lstep +Lfacconv = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1000.0, 1000.0] +Ltime = [Dvar['f1']['time'], Dvar['f2']['time']]*4 +LcolorLine = ['gist_rainbow_r']*len(Lplot) +Lpltype = ['c']*len(Lplot) +fig1 = Panel1.psectionV(Lxx=LaxeX[0:4], Lzz=LaxeZ[0:4], Lvar=Lplot[0:4], Lxlab=Lxlab[0:4], Lylab=Lylab[0:4], Ltitle=Ltitle[0:4],Lpltype=Lpltype, + Lminval=Lminval[0:4], Lmaxval=Lmaxval[0:4], Lstep=Lstep[0:4], Lstepticks=Lstepticks[0:4], LcolorLine=LcolorLine[0:4], + Lcbarlabel=Lcbarlabel[0:4], Lfacconv=Lfacconv[0:4], orog=orog, Lylim=Lylim[0:4], colorbar=False, Ltime=Ltime[0:4]) + +Panel1.save_graph(1,fig1) + +Panel2 = PanelPlot(2,2, [20,20],'001_2DRelief zoomed plots') +Lcolormap = ['gist_rainbow_r']*len(Lplot) + +fig2 = Panel2.psectionV(Lxx=LaxeX[:4], Lzz=LaxeZ[:4], Lvar=Lplot[:4], Lxlab=Lxlab[:4], Lylab=Lylab[:4], Ltitle=Ltitle[:4], + Lminval=Lminval[:4], Lmaxval=Lmaxval[:4], Lstep=Lstep[:4], Lstepticks=Lstepticks[:4], Lcolormap=Lcolormap[:4], + Lcbarlabel=Lcbarlabel[:4], Lfacconv=Lfacconv[:4], orog=orog, Lylim=Lylim[:4], colorbar=True, Ltime=Ltime[:4]) +Panel2.save_graph(2,fig2) + +################################################################ +######### PANEL 3 & 4 +############################################################### +Panel3 = PanelPlot(2,2, [20,20],'001_2DRelief full domain') + +Lplot = [ Dvar['f1']['UT'][:,:], Dvar['f2']['UT'][:,:], Dvar['f1']['THT'][:,:], Dvar['f2']['THT'][:,:] , + Dvar['f1']['WT'][:,:], Dvar['f2']['WT'][:,:], Dvar['f1']['RVT'][:,:], Dvar['f2']['RVT'][:,:] ] + +orog = Dvar['f1']['ZS'][:] +Lylim = [(0,15000.1)]*len(Lplot) +LaxeX = [Dvar['f1']['ni_u_2D'][:,:]]*2 +LaxeX.extend([Dvar['f1']['ni_2D'][:,:] for i in range(6)]) #ni for all except UT + +LaxeZ = [Dvar['f1']['altitude'][:,:]]*4 +LaxeZ.extend([Dvar['f1']['altitude_w'][:,:] for i in range(2)]) #altitude_w only for WT +LaxeZ.extend([Dvar['f1']['altitude'][:,:] for i in range(2)]) +Lpltype = ['c']*len(Lplot) + +fig3 = Panel3.psectionV(Lxx=LaxeX[0:4], Lzz=LaxeZ[0:4], Lvar=Lplot[0:4], Lxlab=Lxlab[0:4], Lylab=Lylab[0:4], Ltitle=Ltitle[0:4], Lpltype=Lpltype, + Lminval=Lminval[0:4], Lmaxval=Lmaxval[0:4], Lstep=Lstep[0:4], Lstepticks=Lstepticks[0:4], LcolorLine=LcolorLine[0:4], + Lcbarlabel=Lcbarlabel[0:4], Lfacconv=Lfacconv[0:4], orog=orog, Lylim=Lylim[0:4], colorbar=False, Ltime=Ltime[0:4]) + +Panel3.save_graph(3,fig3) + +Panel4 = PanelPlot(2,2, [20,20],'001_2DRelief full domain') +fig4 = Panel4.psectionV(Lxx=LaxeX[:4], Lzz=LaxeZ[:4], Lvar=Lplot[:4], Lxlab=Lxlab[:4], Lylab=Lylab[:4], Ltitle=Ltitle[:4], + Lminval=Lminval[:4], Lmaxval=Lmaxval[:4], Lstep=Lstep[:4], Lstepticks=Lstepticks[:4], Lcolormap=Lcolormap[:4], + Lcbarlabel=Lcbarlabel[:4], Lfacconv=Lfacconv[:4], orog=orog, Lylim=Lylim[:4], colorbar=True, Ltime=Ltime[:4]) +Panel4.save_graph(4,fig4) + +################################################################ +######### PANEL 5 +############################################################### +Panel5 = PanelPlot(2,2, [20,20],'001_2DRelief') +Lplot = [ Dvar['f1']['CFLU'][:,:], Dvar['f2']['CFLU'][:,:], Dvar['f1']['CFLW'][:,:], Dvar['f2']['CFLW'][:,:]] +LaxeX = [Dvar['f1']['ni_2D'][:,:]]*4 +LaxeZ = [Dvar['f1']['altitude'][:,:]]*4 +Ltitle = ['CFLU','CFLU','CFLW','CFLW'] +Lcbarlabel = ['-']*len(Lplot) +Lxlab = ['x (m)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,15000.1)]*len(Lplot) +Lminval = [0.03,0.03,0.004,0.004] +Lmaxval = [0.078,0.078,0.072,0.072] +Lstep = [0.003, 0.003, 0.004,0.004] +Lstepticks = Lstep +Lcolormap = ['gist_rainbow_r']*len(Lplot) +Ltime = [Dvar['f1']['time'], Dvar['f2']['time']]*2 + +fig5 = Panel5.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, + orog=orog, Lylim=Lylim, colorbar=True, Ltime=Ltime) +Panel5.save_graph(5,fig5) + +################################################################ +######### PANEL 6 +############################################################### +Dvar['f1']['altitude'], Dvar['f1']['ni_u_2D'] = comp_altitude1DVar(Dvar['f1']['UT'], Dvar['f1']['ZS'],Dvar['f1']['ZTOP'], Dvar['f1']['level'],Dvar['f1']['ni_u']) +Dvar['f1']['THT-LSTHM'] = copy.deepcopy(Dvar['f1']['THT']) +Dvar['f1']['THT-LSTHM'] = Dvar['f1']['THT'] - Dvar['f1']['LSTHM'] + +Dvar['f2']['altitude'], Dvar['f2']['ni_u_2D'] = comp_altitude1DVar(Dvar['f2']['UT'], Dvar['f2']['ZS'],Dvar['f2']['ZTOP'], Dvar['f2']['level'],Dvar['f2']['ni_u']) +Dvar['f2']['THT-LSTHM'] = copy.deepcopy(Dvar['f2']['THT']) +Dvar['f2']['THT-LSTHM'] = Dvar['f2']['THT'] - Dvar['f2']['LSTHM'] + +Dvar['f1']['UT-LSUM'] = copy.deepcopy(Dvar['f1']['UT']) +Dvar['f1']['UT-LSUM'] = Dvar['f1']['UT'] - Dvar['f1']['LSUM'] + +Dvar['f2']['UT-LSUM'] = copy.deepcopy(Dvar['f2']['UT']) +Dvar['f2']['UT-LSUM'] = Dvar['f2']['UT'] - Dvar['f2']['LSUM'] + +Panel6 = PanelPlot(2,2, [20,20],'Profiles at the center (top of the topography)') + +Lplot = [ Dvar['f1']['WT'][:,127]] +LaxeZ = [Dvar['f1']['altitude'][:,127]]*len(Lplot) +Ltitle = ['WT and THT-LSTHM']*len(Lplot) +Llinelabel = ['WT'] +Lxlab = ['velocity (m/s)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,15000.1)]*len(Lplot) +Lxlim = [(-0.3,0.3)] +Llinecolor = ['r'] +LaxisColor = Llinecolor +Llvl = [0]*len(Lplot) +Ltime = [Dvar['f1']['time']] +fig6 = Panel6.pXY_lines(Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lylim=Lylim, Lxlim=Lxlim, Llinelabel=Llinelabel, + Llinecolor=Llinecolor, LaxisColor=LaxisColor, Ltime=Ltime) + +Lplot = [ Dvar['f1']['THT-LSTHM'][:,127]] +Ltitle = [] +Llinelabel = ['THT - LSTHM '] +Lxlab = ['theta perturb (K)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,15000.1)]*len(Lplot) +Lxlim = [(-0.8,0.1)] +Llinecolor = ['g'] +LaxisColor = Llinecolor +Llvl = [0]*len(Lplot) +fig7 = Panel6.pXY_lines(Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle,ax=fig6.axes, id_overlap=1, + Lylim=Lylim, Lxlim=Lxlim, Llinelabel=Llinelabel, Llinecolor=Llinecolor,LaxisColor=LaxisColor, Ltime=Ltime) + +Lplot = [ Dvar['f2']['WT'][:,127]] +LaxeZ = [Dvar['f2']['altitude'][:,127]]*len(Lplot) +Ltitle = ['WT and THT-LSTHM']*len(Lplot) +Llinelabel = ['WT'] +Lxlab = ['velocity (m/s)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,15000.1)]*len(Lplot) +Lxlim = [(-0.3,0.3)] +Llinecolor = ['r'] +LaxisColor = Llinecolor +Llvl = [0]*len(Lplot) +Ltime = [Dvar['f2']['time']] +fig8 = Panel6.pXY_lines(Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lylim=Lylim, Lxlim=Lxlim, Llinelabel=Llinelabel, + Llinecolor=Llinecolor, LaxisColor=LaxisColor, Ltime=Ltime, ax=fig7.axes) + +Lplot = [ Dvar['f2']['THT-LSTHM'][:,127]] +Ltitle = [] +Llinelabel = ['THT - LSTHM '] +Lxlab = ['theta perturb (K)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,15000.1)]*len(Lplot) +Lxlim = [(-0.1,0.2)] +Llinecolor = ['g'] +LaxisColor = Llinecolor +Llvl = [0]*len(Lplot) +fig9 = Panel6.pXY_lines(Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, ax=fig8.axes, id_overlap=1, + Lylim=Lylim, Lxlim=Lxlim, Llinelabel=Llinelabel, Llinecolor=Llinecolor, LaxisColor=LaxisColor, Ltime=Ltime) + +# WT and UT-LSUM +Lplot = [ Dvar['f1']['WT'][:,127]] +LaxeZ = [Dvar['f1']['altitude'][:,127]]*len(Lplot) +Ltitle = ['WT and UT-LSUM']*len(Lplot) +Llinelabel = ['WT'] +Lxlab = ['velocity (m/s)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,15000.1)]*len(Lplot) +Lxlim = [(-0.3,0.3)] +Llinecolor = ['r'] +LaxisColor = Llinecolor +Llvl = [0]*len(Lplot) +Ltime = [Dvar['f1']['time']] +fig10 = Panel6.pXY_lines(Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lylim=Lylim, Lxlim=Lxlim, Llinelabel=Llinelabel, + Llinecolor=Llinecolor, LaxisColor=LaxisColor, Ltime=Ltime, ax=fig9.axes) + +Lplot = [ Dvar['f1']['UT-LSUM'][:,127]] +Ltitle = [] +Llinelabel = ['UT - LSUM '] +Lxlab = ['u perturb (K)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,15000.1)]*len(Lplot) +Lxlim = [(-0.2,0.8)] +Llinecolor = ['g'] +LaxisColor = Llinecolor +Llvl = [0]*len(Lplot) +fig11 = Panel6.pXY_lines(Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, ax=fig10.axes, id_overlap=1, + Lylim=Lylim, Lxlim=Lxlim, Llinelabel=Llinelabel, Llinecolor=Llinecolor,LaxisColor=LaxisColor, Ltime=Ltime) + +Lplot = [ Dvar['f2']['WT'][:,127]] +LaxeZ = [Dvar['f2']['altitude'][:,127]]*len(Lplot) +Ltitle = ['WT and UT-LSUM']*len(Lplot) +Llinelabel = ['WT'] +Lxlab = ['velocity (m/s)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,15000.1)]*len(Lplot) +Lxlim = [(-0.3,0.3)] +Llinecolor = ['r'] +LaxisColor = Llinecolor +Llvl = [0]*len(Lplot) +Ltime = [Dvar['f2']['time']] +fig12 = Panel6.pXY_lines(Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lylim=Lylim, Lxlim=Lxlim, Llinelabel=Llinelabel, + Llinecolor=Llinecolor, LaxisColor=LaxisColor, Ltime=Ltime, ax=fig11.axes) + +Lplot = [ Dvar['f2']['UT-LSUM'][:,127]] +Ltitle = [] +Llinelabel = ['UT - LSUM '] +Lxlab = ['u perturb (K)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,15000.1)]*len(Lplot) +Lxlim = [(-2.0,2.0)] +Llinecolor = ['g'] +LaxisColor = Llinecolor +Llvl = [0]*len(Lplot) +fig13 = Panel6.pXY_lines(Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle,ax=fig12.axes, id_overlap=1, + Lylim=Lylim, Lxlim=Lxlim, Llinelabel=Llinelabel, Llinecolor=Llinecolor, LaxisColor=LaxisColor, Ltime=Ltime) + +Panel6.save_graph(6,fig13) diff --git a/MY_RUN/KTEST/001_2Drelief/003_python/run_python b/MY_RUN/KTEST/001_2Drelief/003_python/run_python new file mode 100644 index 000000000..b7e390b0d --- /dev/null +++ b/MY_RUN/KTEST/001_2Drelief/003_python/run_python @@ -0,0 +1,15 @@ +#!/bin/bash +#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC for details. version 1. +set -x +set -e +ln -sf ${SRC_MESONH}/src/LIB/Python/* . + +ln -sf ../002_mesonh/EXPER.1.HYD2D.002.nc . +ln -sf ../002_mesonh/EXPER.1.HYD2D.003.nc . + +python3 plot_001_2DRelief.py +${POSTRUN} convert *.png 001_2DRelief.pdf +${POSTRUN} evince 001_2DRelief.pdf diff --git a/MY_RUN/KTEST/001_2Drelief/004_diaprog/clean_diaprog b/MY_RUN/KTEST/001_2Drelief/004_diaprog/clean_diaprog deleted file mode 100755 index fc74351aa..000000000 --- a/MY_RUN/KTEST/001_2Drelief/004_diaprog/clean_diaprog +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -rm -f EXPER.1.HYD2D* -rm -f gmeta OUT* -rm -f rm dir.*:* diff --git a/MY_RUN/KTEST/001_2Drelief/004_diaprog/dir.2Drelief b/MY_RUN/KTEST/001_2Drelief/004_diaprog/dir.2Drelief deleted file mode 100644 index 9e18e8271..000000000 --- a/MY_RUN/KTEST/001_2Drelief/004_diaprog/dir.2Drelief +++ /dev/null @@ -1,60 +0,0 @@ -visu -! directives generales -LINVWB=T -! plages de couleur -LCOLAREA=T LISO=F -XLWCONT=2 -LMINMAX=T -! label de toutes les iso -NULBLL=0 -! pour obtenir des labels d isolignes -XSIZEL=0.012 -! localisation du minmax dans le print minmax -LMNMXLOC=T -! High&Low -NHI=0 -! label des axes en indices plutot que km en CH -LINDAX=T -NIGRNC=10 -! vecteur -XVRL=0.15 -NISKIP=4 -! pas de dilatation de la composante W -LDILW=F -! min max vecteur -LVECTMNMX=T -! min max du zoom si NIMNMX<=0 -LCVZOOM=T -! normaliser la longueur des vecteurs a 20m/s et tracer tous les vecteurs -XVHC=-20 -LVSUPSCA=T -! pour agrandir la legende a droite -LVPTUSER=T -XVPTL=0.1 XVPTR=0.9 !XVPTT=0.8 -!LVPTVUSER=T -!XVPTVL=0.08 XVPTVR=0.78 XVPTVT=0.8 -!LVPTPVUSER=T -!XVPTPVL=0.08 XVPTPVR=0.78 XVPTPVT=0.8 -!LVPTXYUSER=T -!XVPTXYL=0.08 XVPTXYR=0.78 XVPTXYT=0.8 - -_file_'EXPER.1.HYD2D.002-3d' -LCOLINE=T LCOLAREA=F -! coupe verticale -nidebcou=2 njdebcou=1 nlangle=0 xhmin=0 xhmax=15000 nlmax=256 lpointg=.T. -UT_CV_ -THT_CV_ -WT_CV_ -RVT_CV_ -CFLU_CV_ -CFLV_CV_ -CFLW_CV_ -!profile -PROFILE=128 -WT_T_time1_PV__ON_THT_T_time1_PV__MINUS_LSTHM_T_time1_PV_ -WT_T_time2_PV__ON_THT_T_time1_PV__MINUS_LSTHM_T_time2_PV_ -WT_T_time1_PV__ON_UT_T_time2_PV__MINUS_LSUM_T_time1_PV_ -WT_T_time2_PV__ON_UT_T_time2_PV__MINUS_LSUM_T_time2_PV_ -! -! a vous d indiquer vos directives -quit diff --git a/MY_RUN/KTEST/001_2Drelief/004_diaprog/run_diaprog b/MY_RUN/KTEST/001_2Drelief/004_diaprog/run_diaprog deleted file mode 100755 index 03431de5c..000000000 --- a/MY_RUN/KTEST/001_2Drelief/004_diaprog/run_diaprog +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -#MNH_LIC for details. version 1. -set -x -set -e -ln -sf ../003_convdia/EXPER.1.HYD2D.002-3d.{des,lfi} . -rm -f dir.0* -${POSTRUN} diaprog < dir.2Drelief diff --git a/MY_RUN/KTEST/001_2Drelief/005_ncl/clean_ncl b/MY_RUN/KTEST/001_2Drelief/004_ncl/clean_ncl similarity index 100% rename from MY_RUN/KTEST/001_2Drelief/005_ncl/clean_ncl rename to MY_RUN/KTEST/001_2Drelief/004_ncl/clean_ncl diff --git a/MY_RUN/KTEST/001_2Drelief/005_ncl/plot_2Drelief.ncl b/MY_RUN/KTEST/001_2Drelief/004_ncl/plot_2Drelief.ncl similarity index 89% rename from MY_RUN/KTEST/001_2Drelief/005_ncl/plot_2Drelief.ncl rename to MY_RUN/KTEST/001_2Drelief/004_ncl/plot_2Drelief.ncl index 41eb6d0ea..bfeaa593e 100644 --- a/MY_RUN/KTEST/001_2Drelief/005_ncl/plot_2Drelief.ncl +++ b/MY_RUN/KTEST/001_2Drelief/004_ncl/plot_2Drelief.ncl @@ -23,35 +23,33 @@ begin mdims = getfilevardimsizes(fichier1,"UT") nd = dimsizes(mdims) imax=mdims(nd-1)-2*jphext - jmax=mdims(nd-2)-2*jphext - kmax=mdims(nd-3)-2 + kmax=mdims(nd-2)-2 - -zs = fichier1->ZS(0,jphext:imax+jphext-1) ; ZS +zs = fichier1->ZS(jphext:imax+jphext-1) ; ZS zhat = fichier1->ZHAT(1:kmax+1) ; ZHAT xhat = fichier1->XHAT(jphext:imax+jphext-1+1) ; XHAT -lsthm1 = fichier1->LSTHM(0,1:kmax,0,jphext:imax+jphext-1) ; LSTHM +lsthm1 = fichier1->LSTHM(0,1:kmax,jphext:imax+jphext-1) ; LSTHM lsthm1@long_name="LSTHM" lsthm1@units="K" -lsum1_old = fichier1->LSUM(0,1:kmax,0,jphext:imax+jphext-1+1) ; LSUM -wt1_old= fichier1->WT(0,1:kmax+1,0,jphext:imax+jphext-1) ; WT -ut1_old= fichier1->UT(0,1:kmax,0,jphext:imax+jphext-1+1) ; UT +lsum1_old = fichier1->LSUM(0,1:kmax,jphext:imax+jphext-1+1) ; LSUM +wt1_old= fichier1->WT(0,1:kmax+1,jphext:imax+jphext-1) ; WT +ut1_old= fichier1->UT(0,1:kmax,jphext:imax+jphext-1+1) ; UT -tht1= fichier1->THT(0,1:kmax,0,jphext:imax+jphext-1) ; THT +tht1= fichier1->THT(0,1:kmax,jphext:imax+jphext-1) ; THT tht1@long_name="Potential Temperature" tht1@units="K" -rvt1= fichier1->RVT(0,1:kmax,0,jphext:imax+jphext-1) ; RVT +rvt1= fichier1->RVT(0,1:kmax,jphext:imax+jphext-1) ; RVT rvt1@long_name="Vapor mixing ratio" rvt1@units="g/kg" -cflu1= fichier1->CFLU(0,1:kmax,0,jphext:imax+jphext-1) ; CFLU +cflu1= fichier1->CFLU(0,1:kmax,jphext:imax+jphext-1) ; CFLU cflu1@long_name="CFLU" cflu1@units="-" -cflw1= fichier1->CFLW(0,1:kmax,0,jphext:imax+jphext-1) ; CFLW +cflw1= fichier1->CFLW(0,1:kmax,jphext:imax+jphext-1) ; CFLW cflw1@long_name="CFLW" cflw1@units=" " @@ -60,27 +58,27 @@ SS1=fichier1->DTCUR ;YYYYDDMM2= fichier2->DTCUR__TDATE SS2=fichier2->DTCUR -lsthm2 = fichier2->LSTHM(0,1:kmax,0,jphext:imax+jphext-1) ; LSTHM +lsthm2 = fichier2->LSTHM(0,1:kmax,jphext:imax+jphext-1) ; LSTHM lsthm2@long_name="LSTHM" lsthm2@units="K" -lsum2_old = fichier2->LSUM(0,1:kmax,0,jphext:imax+jphext-1+1) ; LSUM -wt2_old= fichier2->WT(0,1:kmax+1,0,jphext:imax+jphext-1) ; WT -ut2_old= fichier2->UT(0,1:kmax,0,jphext:imax+jphext-1+1) ; UT +lsum2_old = fichier2->LSUM(0,1:kmax,jphext:imax+jphext-1+1) ; LSUM +wt2_old= fichier2->WT(0,1:kmax+1,jphext:imax+jphext-1) ; WT +ut2_old= fichier2->UT(0,1:kmax,jphext:imax+jphext-1+1) ; UT -tht2= fichier2->THT(0,1:kmax,0,jphext:imax+jphext-1) ; THT +tht2= fichier2->THT(0,1:kmax,jphext:imax+jphext-1) ; THT tht2@long_name="Potential Temperature" tht2@units="K" -rvt2= fichier2->RVT(0,1:kmax,0,jphext:imax+jphext-1) ; RVT +rvt2= fichier2->RVT(0,1:kmax,jphext:imax+jphext-1) ; RVT rvt2@long_name="Vapor mixing ratio" rvt2@units="g/kg" -cflu2= fichier2->CFLU(0,1:kmax,0,jphext:imax+jphext-1) ; CFLU +cflu2= fichier2->CFLU(0,1:kmax,jphext:imax+jphext-1) ; CFLU cflu2@long_name="CFLU" cflu2@units="-" -cflw2= fichier2->CFLW(0,1:kmax,0,jphext:imax+jphext-1) ; CFLW +cflw2= fichier2->CFLW(0,1:kmax,jphext:imax+jphext-1) ; CFLW cflw2@long_name="CFLW" cflw2@units=" " diff --git a/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl b/MY_RUN/KTEST/001_2Drelief/004_ncl/run_ncl similarity index 100% rename from MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl rename to MY_RUN/KTEST/001_2Drelief/004_ncl/run_ncl diff --git a/MY_RUN/KTEST/001_2Drelief/Makefile b/MY_RUN/KTEST/001_2Drelief/Makefile index e50e3b333..057a8452e 100644 --- a/MY_RUN/KTEST/001_2Drelief/Makefile +++ b/MY_RUN/KTEST/001_2Drelief/Makefile @@ -1,13 +1,11 @@ all: cd 001_prep_ideal_case && run_prep_ideal_case_xyz cd 002_mesonh && run_mesonh_xyz - cd 003_convdia && run_conv2dia - cd 004_diaprog && run_diaprog - cd 005_ncl && run_ncl + cd 003_python && run_python + cd 004_ncl && run_ncl clean: cd 001_prep_ideal_case && clean_prep_ideal_case_xyz cd 002_mesonh && clean_mesonh_xyz - cd 003_convdia && clean_conv2dia - cd 004_diaprog && clean_diaprog - cd 005_ncl && clean_ncl + cd 003_python && clean_python + cd 004_ncl && clean_ncl diff --git a/MY_RUN/KTEST/002_3Drelief/003_convdia/clean_conv2dia b/MY_RUN/KTEST/002_3Drelief/003_convdia/clean_conv2dia deleted file mode 100755 index 4736bbeef..000000000 --- a/MY_RUN/KTEST/002_3Drelief/003_convdia/clean_conv2dia +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -set -x -rm -f REL3D.1.EXP01.002.{des,lfi,nc} -rm -f REL3D.1.EXP01.002dg.{des,lfi,nc} -rm -f dirconv FICJD LISTING_DIA OUT_DIA pipe_name diff --git a/MY_RUN/KTEST/002_3Drelief/003_convdia/dir_conv2dia b/MY_RUN/KTEST/002_3Drelief/003_convdia/dir_conv2dia deleted file mode 100644 index 5ba8fe211..000000000 --- a/MY_RUN/KTEST/002_3Drelief/003_convdia/dir_conv2dia +++ /dev/null @@ -1,6 +0,0 @@ -1 -REL3D.1.EXP01.002 -REL3D.1.EXP01.002dg -n -n -0 diff --git a/MY_RUN/KTEST/002_3Drelief/003_python/clean_python b/MY_RUN/KTEST/002_3Drelief/003_python/clean_python new file mode 100644 index 000000000..d75604a6a --- /dev/null +++ b/MY_RUN/KTEST/002_3Drelief/003_python/clean_python @@ -0,0 +1,4 @@ +#!/bin/bash +rm -f *.png *.pdf *.nc +rm -Rf __pycache__ +find . -type l -delete diff --git a/MY_RUN/KTEST/002_3Drelief/003_python/plot_002_3DRelief.py b/MY_RUN/KTEST/002_3Drelief/003_python/plot_002_3DRelief.py new file mode 100644 index 000000000..9b24e6d22 --- /dev/null +++ b/MY_RUN/KTEST/002_3Drelief/003_python/plot_002_3DRelief.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 +""" +@author: Quentin Rodier +Creation : 07/01/2021 + +Last modifications +""" +import matplotlib as mpl +mpl.use('Agg') +from read_MNHfile import read_netcdf +from Panel_Plot import PanelPlot +from misc_functions import comp_altitude2DVar +import cartopy.crs as ccrs +import os + +os.system('rm -f tempgraph*') +# +# User's parameter / Namelist +# +output_name = '002_3DRelief.pdf' #Name of the output PDF file +path="" + +LnameFiles = ['REL3D.1.EXP01.002.nc'] + +Dvar_input = { +'f1':['ZS', 'UT', 'WT','ni_u','nj_u','level','ZTOP', 'ni','nj','level_w','time']} + +# Read the variables in the files +Dvar = {} +Dvar = read_netcdf(LnameFiles, Dvar_input, path=path, removeHALO=True) + +# Compute altitude variable in 3D with a 2D topography +Dvar['f1']['altitude'], Dvar['f1']['ni_u_3D'], Dvar['f1']['nj_u_3D'] = comp_altitude2DVar(Dvar['f1']['UT'], Dvar['f1']['ZS'],Dvar['f1']['ZTOP'], Dvar['f1']['level'], Dvar['f1']['ni_u'], Dvar['f1']['nj_u']) +Dvar['f1']['altitude_w'], Dvar['f1']['ni_3D'], Dvar['f1']['nj_3D'] = comp_altitude2DVar(Dvar['f1']['WT'], Dvar['f1']['ZS'],Dvar['f1']['ZTOP'], Dvar['f1']['level_w'],Dvar['f1']['ni'], Dvar['f1']['nj']) + +orog = Dvar['f1']['ZS'][15,:] + +################################################################ +######### PANEL 1 +############################################################### +Panel1 = PanelPlot(2,2, [20,20],'003_2DRelief vertical and horizontal sections') + +Lplot = [ Dvar['f1']['UT'][:,15,:], Dvar['f1']['WT'][:,15,:]] +LaxeX = [Dvar['f1']['ni_u_3D'][:,15,:], Dvar['f1']['ni_3D'][:,15,:]] +LaxeZ = [Dvar['f1']['altitude'][:,15,:], Dvar['f1']['altitude_w'][:,15,:]] +Ltitle = ['u-wind UT', 'Vertical velocity WT',] +Lcbarlabel = ['m/s']*len(Lplot) +Lxlab = ['x (m)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,10000.1)]*len(Lplot) +Lminval = [8, -1.2] +Lmaxval = [14, 0.9] +Lstep = [0.25, 0.1] +Lstepticks = Lstep +Lcolormap = ['gist_rainbow_r']*len(Lplot) +Ltime = [Dvar['f1']['time']]*len(Lplot) +Lprojection = [ccrs.PlateCarree()]*len(Lplot) +fig1 = Panel1.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, + orog=orog, Lylim=Lylim, colorbar=True, Ltime=Ltime) + +# Horizontal cross-section +Lplot = [ Dvar['f1']['UT'], Dvar['f1']['WT']] +Ltitle = ['u-wind UT at K=2', 'Vertical velocity WT at K=2',] +LaxeX = [Dvar['f1']['ni_u'], Dvar['f1']['ni']] +LaxeY = [Dvar['f1']['nj_u'], Dvar['f1']['nj']] +Llvl = [0]*len(Lplot) + +fig2 = Panel1.psectionH(lon=LaxeX, lat=LaxeY, Lvar=Lplot, Llevel=Llvl, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, + colorbar=True, Ltime=Ltime, ax=fig1.axes) + +Panel1.save_graph(1,fig2) diff --git a/MY_RUN/KTEST/002_3Drelief/003_python/run_python b/MY_RUN/KTEST/002_3Drelief/003_python/run_python new file mode 100644 index 000000000..3552ca8e2 --- /dev/null +++ b/MY_RUN/KTEST/002_3Drelief/003_python/run_python @@ -0,0 +1,13 @@ +#!/bin/bash +#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC for details. version 1. +set -x +set -e +ln -sf ${SRC_MESONH}/src/LIB/Python/* . +ln -sf ../002_mesonh/REL3D.1.EXP01.002.nc . + +python3 plot_002_3DRelief.py +${POSTRUN} convert *.png 002_3DRelief.pdf +${POSTRUN} evince 002_3DRelief.pdf diff --git a/MY_RUN/KTEST/002_3Drelief/004_diaprog/clean_diaprog b/MY_RUN/KTEST/002_3Drelief/004_diaprog/clean_diaprog deleted file mode 100755 index f1904b54b..000000000 --- a/MY_RUN/KTEST/002_3Drelief/004_diaprog/clean_diaprog +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -set -x -rm -f dir.* gmeta REL3D* OUT_DIA diff --git a/MY_RUN/KTEST/002_3Drelief/004_diaprog/dir_3Drelief b/MY_RUN/KTEST/002_3Drelief/004_diaprog/dir_3Drelief deleted file mode 100644 index 7181757a9..000000000 --- a/MY_RUN/KTEST/002_3Drelief/004_diaprog/dir_3Drelief +++ /dev/null @@ -1,13 +0,0 @@ -visu -_file1_'REL3D.1.EXP01.002dg' -print groups -UT_k_2_file1_ -liso=f -lcolarea=t -UT_k_2_file1_ -quit -_file2_'REL3D_autre_run' -UT_k_2_file2_ -UT_k_2_file1__minus_UT_k_2_file2_ -quit - diff --git a/MY_RUN/KTEST/002_3Drelief/004_ncl/clean_ncl b/MY_RUN/KTEST/002_3Drelief/004_ncl/clean_ncl new file mode 100755 index 000000000..8b82cdb8e --- /dev/null +++ b/MY_RUN/KTEST/002_3Drelief/004_ncl/clean_ncl @@ -0,0 +1,2 @@ +#!/bin/bash +rm -f *.nc *.ps *.png diff --git a/MY_RUN/KTEST/002_3Drelief/005_ncl/plot_3Drelief.ncl b/MY_RUN/KTEST/002_3Drelief/004_ncl/plot_3Drelief.ncl similarity index 100% rename from MY_RUN/KTEST/002_3Drelief/005_ncl/plot_3Drelief.ncl rename to MY_RUN/KTEST/002_3Drelief/004_ncl/plot_3Drelief.ncl diff --git a/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl b/MY_RUN/KTEST/002_3Drelief/004_ncl/run_ncl similarity index 100% rename from MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl rename to MY_RUN/KTEST/002_3Drelief/004_ncl/run_ncl diff --git a/MY_RUN/KTEST/002_3Drelief/005_ncl/clean_ncl b/MY_RUN/KTEST/002_3Drelief/005_ncl/clean_ncl deleted file mode 100755 index 233231e1e..000000000 --- a/MY_RUN/KTEST/002_3Drelief/005_ncl/clean_ncl +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -rm -f *.nc *.ps diff --git a/MY_RUN/KTEST/002_3Drelief/Makefile b/MY_RUN/KTEST/002_3Drelief/Makefile index e50e3b333..057a8452e 100644 --- a/MY_RUN/KTEST/002_3Drelief/Makefile +++ b/MY_RUN/KTEST/002_3Drelief/Makefile @@ -1,13 +1,11 @@ all: cd 001_prep_ideal_case && run_prep_ideal_case_xyz cd 002_mesonh && run_mesonh_xyz - cd 003_convdia && run_conv2dia - cd 004_diaprog && run_diaprog - cd 005_ncl && run_ncl + cd 003_python && run_python + cd 004_ncl && run_ncl clean: cd 001_prep_ideal_case && clean_prep_ideal_case_xyz cd 002_mesonh && clean_mesonh_xyz - cd 003_convdia && clean_conv2dia - cd 004_diaprog && clean_diaprog - cd 005_ncl && clean_ncl + cd 003_python && clean_python + cd 004_ncl && clean_ncl diff --git a/MY_RUN/KTEST/003_KW78/003_convdia/clean_conv2dia b/MY_RUN/KTEST/003_KW78/003_convdia/clean_conv2dia deleted file mode 100755 index 9ba04f4e6..000000000 --- a/MY_RUN/KTEST/003_KW78/003_convdia/clean_conv2dia +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -set -x -rm -f KWRAI.* -rm -f dirconv FICJD LISTING_DIA OUT_DIA pipe_name diff --git a/MY_RUN/KTEST/003_KW78/003_convdia/dir_conv2dia b/MY_RUN/KTEST/003_KW78/003_convdia/dir_conv2dia deleted file mode 100644 index b6310ba65..000000000 --- a/MY_RUN/KTEST/003_KW78/003_convdia/dir_conv2dia +++ /dev/null @@ -1,6 +0,0 @@ -1 -KWRAI.1.SEG01.004 -KWRAI.1.SEG01.004dg -n -n -0 diff --git a/MY_RUN/KTEST/003_KW78/003_diag/DIAG1.nam b/MY_RUN/KTEST/003_KW78/003_diag/DIAG1.nam new file mode 100644 index 000000000..bde6301da --- /dev/null +++ b/MY_RUN/KTEST/003_KW78/003_diag/DIAG1.nam @@ -0,0 +1,14 @@ +&NAM_CONFIO LCDF4=T, LLFIOUT=F, LLFIREAD=F / +&NAM_CONFZ + ! NZ_VERB=5 , NZ_PROC=0 , NB_PROCIO_R=8 , NB_PROCIO_W=1 +/ +&NAM_DIAG + LCLSTR=T, + LBOTUP=T, + CFIELD='W', + XTHRES=10., + LISOAL=T, XISOAL(1)=3000, XISOAL(2)=5000 + / +&NAM_DIAG_FILE YINIFILE(1) = "KWRAI.1.SEG01.004" , + YSUFFIX='dia' / + diff --git a/MY_RUN/KTEST/003_KW78/003_diag/clean_diag_xyz b/MY_RUN/KTEST/003_KW78/003_diag/clean_diag_xyz new file mode 100644 index 000000000..19b1bf34e --- /dev/null +++ b/MY_RUN/KTEST/003_KW78/003_diag/clean_diag_xyz @@ -0,0 +1,5 @@ +#!/bin/bash +set -x +rm -f KWRAI* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex +rm -f file_for_xtransfer + diff --git a/MY_RUN/KTEST/003_KW78/003_diag/diag.nam b/MY_RUN/KTEST/003_KW78/003_diag/diag.nam new file mode 100644 index 000000000..a1252a72b --- /dev/null +++ b/MY_RUN/KTEST/003_KW78/003_diag/diag.nam @@ -0,0 +1,12 @@ + +exemple 1, identification des ascendances > 10 m/s + +&NAM_DIAG LCLSTR = T, LBOTUP = T, CFIELD = "W", XTHRES = 10. / + + + +exemple 2, identification des overshoots + +&NAM_DIAG LCLSTR = T, LBOTUP = F, CFIELD = "CLOUD", XTHRES = 0.00001 / + +NB: par défaut CLOUD prend en compte Rc+Ri+Rs+Rg i.e. cloud water and ice, graupel and snow diff --git a/MY_RUN/KTEST/002_3Drelief/003_convdia/run_conv2dia b/MY_RUN/KTEST/003_KW78/003_diag/run_diag_xyz old mode 100755 new mode 100644 similarity index 67% rename from MY_RUN/KTEST/002_3Drelief/003_convdia/run_conv2dia rename to MY_RUN/KTEST/003_KW78/003_diag/run_diag_xyz index db4111375..b36518443 --- a/MY_RUN/KTEST/002_3Drelief/003_convdia/run_conv2dia +++ b/MY_RUN/KTEST/003_KW78/003_diag/run_diag_xyz @@ -5,7 +5,11 @@ #MNH_LIC for details. version 1. set -x set -e -ln -sf ../002_mesonh/REL3D.1.EXP01.002.{des,lfi,nc} . -rm -f REL3D.1.EXP01.002dg.{des,lfi,nc} -${POSTRUN} conv2dia < dir_conv2dia +rm -f KWRAI* OUT* +# +# +ln -sf ../002_mesonh/KWRAI.1.SEG01.004.des . +ln -sf ../002_mesonh/KWRAI.1.SEG01.004.*nc . + +time ${MPIRUN} DIAG${XYZ} diff --git a/MY_RUN/KTEST/003_KW78/004_diaprog/clean_diaprog b/MY_RUN/KTEST/003_KW78/004_diaprog/clean_diaprog deleted file mode 100755 index f4e896519..000000000 --- a/MY_RUN/KTEST/003_KW78/004_diaprog/clean_diaprog +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -set -x -rm -f dir.* gmeta KWRAI.1.SEG01.00* OUT_DIA diff --git a/MY_RUN/KTEST/003_KW78/004_diaprog/dir_KW78 b/MY_RUN/KTEST/003_KW78/004_diaprog/dir_KW78 deleted file mode 100644 index f23437c1c..000000000 --- a/MY_RUN/KTEST/003_KW78/004_diaprog/dir_KW78 +++ /dev/null @@ -1,78 +0,0 @@ -visu -! directives de presentation -LINVWB=T NIGRNC=10 nhi=0 lminmax=t xsizel=0.015 -! plages de couleur, pas d isolignes -LCOLAREA=T LISO=F -! gestion des vecteurs (1 vecteur sur 4) -NISKIP=4 XVRL=0.15 -! 1er fichier a ouvrir -_file1_'KWRAI.1.SEG01.004dg' -! couleur de fond pour le 1er intervalle -LCOLZERO=T NCOLZERO=1 -! precipitations explicites instantanees -NIMNMX=1 -XISOMIN_INPRR=0 -XISOMAX_INPRR=6 -XDIAINT_INPRR=0.250 -INPRR -! precipitations explicites cumulees -XISOMIN_ACPRR=0 -XISOMAX_ACPRR=0.150 -XDIAINT_ACPRR=0.005 -ACPRR -! trace de tous les vecteurs -NISKIP=1 -! superposition de la pression et des vecteurs de vent au niveau K=2 -XISOMIN_PABST=98250 -XISOMAX_PABST=98350 -XDIAINT_PABST=5 -PABST_K_2_ON_UTVT_K_2 -! superposition du rapport d eau nuageuse et des vecteurs vent a 3000m -XISOMIN_RCT=0 -XISOMAX_RCT=0.003 -XDIAINT_RCT=0.00005 -RCT_Z_3000_ON_UTVT_Z_3000 -! superposition du rapport d eau nuageuse et des vecteurs vent a 5000m -RCT_Z_5000_ON_UTVT_Z_5000 -! definition d une coupe verticale -NIDEBCOU=5 NJDEBCOU=2 NLANGLE=47 NLMAX=21 -! trace de la coupe verticale dans le plan horizontal -LTRACECV=T -! rapport de vapeur et vecteurs vent dans la coupe verticale -XISOMIN_RVT=0 -XISOMAX_RVT=0.015 -XDIAINT_RVT=0.0005 -RVT_CV__ON_ULTWT_CV_ -! plus de trace de la coupe verticale -LTRACECV=F -! rapport de melange d eau nuageuse et rapport d eau de pluie -XISOMIN_RRT=0.00025 -XISOMAX_RRT=0.005 -XDIAINT_RRT=0.00025 -XISOMIN_RCT=0. -XISOMAX_RCT=0.001 -XDIAINT_RCT=0.00005 -RCT_CV__ON_RRT_CV_ -! difference pour la temperature potentielle avec le champ initial -XISOMIN=-4 -XISOMAX=4 -XDIAINT=0.2 -THT_CV__MINUS_LSTHM_CV_ -! vitesse verticale en coupe verticale -XISOMIN_WT=-4 -XISOMAX_WT=10 -XDIAINT_WT=0.5 -WT_CV_ -! definition d une autre coupe verticale -NIDEBCOU=15 NJDEBCOU=2 NLANGLE=90 NLMAX=23 -LTRACECV=T -RVT_CV__ON_ULTWT_CV_ -LTRACECV=F -RCT_CV__ON_RRT_CV_ -XISOMIN=-4 -XISOMAX=4 -XDIAINT=0.2 -THT_CV__MINUS_LSTHM_CV_ -WT_CV_ -quit - diff --git a/MY_RUN/KTEST/003_KW78/004_diaprog/run_diaprog b/MY_RUN/KTEST/003_KW78/004_diaprog/run_diaprog deleted file mode 100755 index 365ecc11e..000000000 --- a/MY_RUN/KTEST/003_KW78/004_diaprog/run_diaprog +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -#MNH_LIC for details. version 1. -set -x -set -e -ln -sf ../003_convdia/KWRAI.1.SEG01.004dg.{des,lfi} . -rm -f dir.* -${POSTRUN} diaprog < dir_KW78 -#idt gmeta diff --git a/MY_RUN/KTEST/003_KW78/004_python/clean_python b/MY_RUN/KTEST/003_KW78/004_python/clean_python new file mode 100644 index 000000000..d75604a6a --- /dev/null +++ b/MY_RUN/KTEST/003_KW78/004_python/clean_python @@ -0,0 +1,4 @@ +#!/bin/bash +rm -f *.png *.pdf *.nc +rm -Rf __pycache__ +find . -type l -delete diff --git a/MY_RUN/KTEST/003_KW78/004_python/plot_003_KW78.py b/MY_RUN/KTEST/003_KW78/004_python/plot_003_KW78.py new file mode 100644 index 000000000..811abda26 --- /dev/null +++ b/MY_RUN/KTEST/003_KW78/004_python/plot_003_KW78.py @@ -0,0 +1,230 @@ +#!/usr/bin/env python3 +""" + +@author: Quentin Rodier +Creation : 07/01/2021 + +Last modifications +""" + +import matplotlib as mpl +mpl.use('Agg') +from read_MNHfile import read_netcdf +from Panel_Plot import PanelPlot +from misc_functions import comp_altitude2DVar, oblique_proj, windvec_verti_proj, mean_operator +import math +import os + +os.system('rm -f tempgraph*') +# +# User's parameter / Namelist +# +output_name = '003_KW78.pdf' #Name of the output PDF file +path="" + +LnameFiles = ['KWRAI.1.SEG01.004.nc','KWRAI.1.SEG01.004dia.nc' ] + +Dvar_input = { +'f1':['ZS', 'UT','VT', 'WT','THT', + 'ni_u','nj_u','level','ZTOP', 'ni','nj','level_w','time', + 'INPRR','ACPRR','PABST','RCT','RVT','RRT','LSTHM'], +'f2':['ALT_CLOUD', 'ALT_U', 'ALT_V', 'ni','nj']} + +# Read the variables in the files +Dvar = {} +Dvar = read_netcdf(LnameFiles, Dvar_input, path=path, removeHALO=True) + +################################################################ +######### PANEL 1 +############################################################### +Panel1 = PanelPlot(2,3, [25,14],'', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.01) + +Lplot = [ Dvar['f1']['INPRR'], Dvar['f1']['ACPRR'], Dvar['f1']['PABST'],Dvar['f2']['ALT_CLOUD'],Dvar['f2']['ALT_CLOUD'] ] + +LaxeX = [Dvar['f1']['ni']]*len(Lplot) +LaxeY = [Dvar['f1']['nj']]*len(Lplot) +Ltitle = ['Instantaneous precipitation INPRR', 'Accumulated precipitation ACPRR','Absolute pressure','Mixing ratio of liquid droplets at z=3000m','Mixing ratio of liquid droplets at z=5000m' ] +Lcbarlabel = ['mm/h', 'mm','hPa','g/kg','g/kg'] +Lxlab = ['x (m)']*len(Lplot) +Lylab = ['y (m)']*len(Lplot) +Lminval = [0, 0, 982.25, 0, 0] +Lmaxval = [6.25, 0.15, 983.55, 3.0, 3.0] +Lstep = [0.25, 0.005, 0.05, 0.05, 0.05] +Lstepticks = [0.5, 0.02, 0.2, 0.5, 0.5] +Lfacconv = [1, 1, 1./100.0,1,1] +Lcolormap = ['gist_ncar_r']*len(Lplot) +Llvl = [0,0,0,0,1] +Ltime = [Dvar['f1']['time']]*len(Lplot) +LaddWhite = [True]*len(Lplot) +Lpltype = ['cf']*len(Lplot) + +fig1 = Panel1.psectionH(lon=LaxeX, lat=LaxeY, Lvar=Lplot, Llevel=Llvl, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv, + Ltime=Ltime, LaddWhite_cm=LaddWhite) +fig1.tight_layout() + +# Wind vectors +Lplot1 = [ Dvar['f1']['UT'], Dvar['f2']['ALT_U'], Dvar['f2']['ALT_U']] +Lplot2 = [ Dvar['f1']['VT'], Dvar['f2']['ALT_V'], Dvar['f2']['ALT_V']] +Ltitle = ['Wind at K=2', 'Wind at 3000m', 'Wind at 5000m'] +Lxlab = ['x (m)']*len(Lplot) +Lylab = ['y (m)']*len(Lplot) +Llegendval = [10,10,10] +Lcbarlabel = ['m/s']*len(Lplot) +Larrowstep = [1]*len(Lplot) +Lwidth = [0.002]*len(Lplot) +Lcolor = ['black']*len(Lplot) +Llvl = [0,0,1] +lon = [Dvar['f1']['ni_u'], Dvar['f2']['ni'], Dvar['f2']['ni'] ] +lat = [Dvar['f1']['nj_u'], Dvar['f2']['nj'], Dvar['f2']['nj'] ] +Lscale = [200]*len(Lplot) +fig2 = Panel1.pvector(Lxx=lon, Lyy=lat, Lvar1=Lplot1, Lvar2=Lplot2, Lcarte=[500,23500,500,23500], Llevel=Llvl, + Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lwidth=Lwidth, Larrowstep=Larrowstep, + Lcolor=Lcolor, Llegendval=Llegendval, Lcbarlabel=Lcbarlabel, Lid_overlap=[4,6,8], ax=fig1.axes, Lscale=Lscale) +# Oblique projection +i_beg, j_beg = (3,0) +i_end, j_end = (22,21) +# Black line +Panel1.addLine(fig2.axes[6],[Dvar['f1']['ni'][i_beg],Dvar['f1']['nj'][j_beg]],[Dvar['f1']['ni'][i_end],Dvar['f1']['nj'][j_end]],'black',2) +Panel1.save_graph(1,fig2) + +################################################################ +######### PANEL 2 : Oblique projection +############################################################### +Panel2 = PanelPlot(2,2, [17,17],'Oblique section (angle = 47)', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.01, lateralminmaxpad=0.97) + +Dvar['f1']['THT-LSTHM'] = Dvar['f1']['THT'] - Dvar['f1']['LSTHM'] + +tomass = mean_operator() +Dvar['f1']['UM'] = tomass.MXM(Dvar['f1']['UT']) +Dvar['f1']['VM'] = tomass.MYM(Dvar['f1']['VT']) +Dvar['f1']['WM'] = tomass.MZM(Dvar['f1']['WT']) + + +angle_sec1, RVT_sec1, axe_m1 = oblique_proj(Dvar['f1']['RVT'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +WIND_proj = windvec_verti_proj(Dvar['f1']['UM'], Dvar['f1']['VM'], Dvar['f1']['level'], angle_sec1) +angle_sec1, WIND_sec1, axe_m1 = oblique_proj(WIND_proj, Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, WT_sec1, axe_m1 = oblique_proj(Dvar['f1']['WM'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, RCT_sec1, axe_m1 = oblique_proj(Dvar['f1']['RCT'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, RRT_sec1, axe_m1 = oblique_proj(Dvar['f1']['RRT'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, anoTHT_sec1, axe_m1 = oblique_proj(Dvar['f1']['THT-LSTHM'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) + +Lplot = [RVT_sec1, RCT_sec1, anoTHT_sec1, WT_sec1] +LaxeX = [axe_m1]*len(Lplot) +LaxeZ = [Dvar['f1']['level'], Dvar['f1']['level'], Dvar['f1']['level'],Dvar['f1']['level_w']] +Ltitle = ['Water vapor mixing ratio', 'Liquid cloud mxing ratio', 'Potential temperature anomaly', 'Vertical velocity'] +Lcbarlabel = ['g/kg','g/kg', 'K', 'm/s'] +Lxlab = ['distance (m)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lminval = [0., 0., -5, -18] +Lmaxval = [15, 3.0, 5, 18] +Lstep = [0.5, 0.05, 0.2, 0.5] +Lstepticks = [1, 0.2, 1, 2.5] +Lfacconv = [1000, 1000, 1, 1] +Lcolormap = ['gist_rainbow_r','gist_rainbow_r', 'seismic','seismic'] +Ltime = [Dvar['f1']['time']]*len(Lplot) +Lpltype = ['cf']*len(Lplot) +LaddWhite = [True, True, False, False] + +fig3 = Panel2.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv, + Ltime=Ltime, Lpltype=Lpltype, LaddWhite_cm=LaddWhite) + +Lplot1 = [ WIND_sec1] +Lplot2 = [ WT_sec1] +Ltitle = ['Wind'] +Llegendval = [25] +Lcbarlabel = ['m/s']*len(Lplot) +Larrowstep = [1]*len(Lplot) +Lwidth = [0.004]*len(Lplot) +Lscale = [200]*len(Lplot) + +fig4 = Panel2.pvector(Lxx=LaxeX, Lyy=LaxeZ, Lvar1=Lplot1, Lvar2=Lplot2, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lwidth=Lwidth, Larrowstep=Larrowstep, + Llegendval=Llegendval, Lcbarlabel=Lcbarlabel, Lid_overlap=[0], ax=fig3.axes, Lscale=Lscale) + +Lplot = [RRT_sec1] +LaxeX = [axe_m1] +LaxeZ = [Dvar['f1']['level']] +Ltitle = ['precipitation'] +Lcbarlabel = ['g/kg']*len(Lplot) +Lxlab = ['distance (m)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,10000.1)]*len(Lplot) +Lminval = [0.] +Lmaxval = [3.5] +Lstep = [0.5] +Lstepticks = [0.5] +Lfacconv = [1000]*len(Lplot) +LcolorLine = ['black']*len(Lplot) +Llvl = [0]*len(Lplot) +Ltime = [Dvar['f1']['time']] +Lpltype = ['c']*len(Lplot) +LaddWhite = [True]*len(Lplot) + +fig5 = Panel2.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, LcolorLine=LcolorLine, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv, + Ltime=Ltime, Lpltype=Lpltype, LaddWhite_cm=LaddWhite, ax=fig4.axes,Lid_overlap=[2],colorbar=False) + +Panel2.save_graph(2,fig5) +################################################################ +######### PANEL 3 +############################################################### +Panel3 = PanelPlot(2,2, [17,17],'Vertical section along y at I=14', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.01, lateralminmaxpad=0.97) + +Lplot = [Dvar['f1']['RVT'][:,:,13], Dvar['f1']['RCT'][:,:,13], Dvar['f1']['THT-LSTHM'][:,:,13], Dvar['f1']['WT'][:,:,13]] +LaxeX = [Dvar['f1']['nj']]*len(Lplot) +LaxeZ = [Dvar['f1']['level'], Dvar['f1']['level'], Dvar['f1']['level'],Dvar['f1']['level_w']] +Ltitle = ['Water vapor mixing ratio', 'Liquid cloud mxing ratio', 'Potential temperature anomaly', 'Vertical velocity'] +Lcbarlabel = ['g/kg','g/kg', 'K', 'm/s'] +Lxlab = ['distance (m)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lminval = [0., 0., -5, -18] +Lmaxval = [15, 3.0, 5, 18] +Lstep = [0.5, 0.05, 0.2, 0.5] +Lstepticks = [1, 0.2, 1, 2.5] +Lfacconv = [1000, 1000, 1, 1] +Lcolormap = ['gist_rainbow_r','gist_rainbow_r', 'seismic','seismic'] +Ltime = [Dvar['f1']['time']]*len(Lplot) +Lpltype = ['cf']*len(Lplot) +LaddWhite = [True, True, False, False] + +fig6 = Panel3.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv, + Ltime=Ltime, Lpltype=Lpltype, LaddWhite_cm=LaddWhite) + +Lplot1 = [ Dvar['f1']['VM'][:,:,13]] +Lplot2 = [ Dvar['f1']['WM'][:,:,13]] +Ltitle = ['Wind'] +Llegendval = [25] +Lcbarlabel = ['m/s']*len(Lplot) +Larrowstep = [1]*len(Lplot) +Lwidth = [0.004]*len(Lplot) +Lscale = [200]*len(Lplot) + +fig7 = Panel3.pvector(Lxx=LaxeX, Lyy=LaxeZ, Lvar1=Lplot1, Lvar2=Lplot2, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lwidth=Lwidth, Larrowstep=Larrowstep, + Llegendval=Llegendval, Lcbarlabel=Lcbarlabel, Lid_overlap=[0], ax=fig6.axes, Lscale=Lscale) + + +Lplot = [Dvar['f1']['RRT'][:,:,13]] +Ltitle = ['precipitation'] +Lcbarlabel = ['g/kg']*len(Lplot) +Lxlab = ['distance (m)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,10000.1)]*len(Lplot) +Lminval = [0.] +Lmaxval = [3.5] +Lstep = [0.5] +Lstepticks = [0.5] +Lfacconv = [1000]*len(Lplot) +LcolorLine = ['black']*len(Lplot) +Llvl = [0]*len(Lplot) +Ltime = [Dvar['f1']['time']] +Lpltype = ['c']*len(Lplot) +LaddWhite = [True]*len(Lplot) + +fig8 = Panel3.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, LcolorLine=LcolorLine, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv, + Ltime=Ltime, Lpltype=Lpltype, LaddWhite_cm=LaddWhite, ax=fig7.axes,Lid_overlap=[2],colorbar=False) + + +Panel3.save_graph(3,fig8) diff --git a/MY_RUN/KTEST/003_KW78/004_python/run_python b/MY_RUN/KTEST/003_KW78/004_python/run_python new file mode 100644 index 000000000..f79953fa7 --- /dev/null +++ b/MY_RUN/KTEST/003_KW78/004_python/run_python @@ -0,0 +1,13 @@ +#!/bin/bash +#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC for details. version 1. +set -x +set -e +ln -sf ${SRC_MESONH}/src/LIB/Python/* . +ln -sf ../003_diag/KWRAI.1.SEG01.004*.nc . + +python3 plot_003_KW78.py +${POSTRUN} convert *.png 003_KW78.pdf +${POSTRUN} evince 003_KW78.pdf diff --git a/MY_RUN/KTEST/003_KW78/005_ncl/clean_ncl b/MY_RUN/KTEST/003_KW78/005_ncl/clean_ncl index 233231e1e..8b82cdb8e 100755 --- a/MY_RUN/KTEST/003_KW78/005_ncl/clean_ncl +++ b/MY_RUN/KTEST/003_KW78/005_ncl/clean_ncl @@ -1,2 +1,2 @@ #!/bin/bash -rm -f *.nc *.ps +rm -f *.nc *.ps *.png diff --git a/MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl b/MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl index ffd985233..ab46be0a2 100755 --- a/MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl +++ b/MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl @@ -6,7 +6,7 @@ set -x ln -sf ../002_mesonh/KWRAI.1.SEG01.004.nc . -ln -sf ../006_diag/KWRAI.1.SEG01.004dia.nc . +ln -sf ../003_diag/KWRAI.1.SEG01.004dia.nc . rm -f visu_KW78_diag.png diff --git a/MY_RUN/KTEST/003_KW78/Makefile b/MY_RUN/KTEST/003_KW78/Makefile index 43f486a68..0cfaf3892 100644 --- a/MY_RUN/KTEST/003_KW78/Makefile +++ b/MY_RUN/KTEST/003_KW78/Makefile @@ -1,17 +1,15 @@ all: cd 001_prep_ideal_case && run_prep_ideal_case_xyz cd 002_mesonh && run_mesonh_xyz - cd 003_convdia && run_conv2dia - cd 004_diaprog && run_diaprog + cd 003_diag && run_diag_xyz + cd 004_python && run_python cd 005_ncl && run_ncl - cd 006_diag && run_diag_xyz cd 007_ncl_diag && run_ncl clean: cd 001_prep_ideal_case && clean_prep_ideal_case_xyz cd 002_mesonh && clean_mesonh_xyz - cd 003_convdia && clean_conv2dia - cd 004_diaprog && clean_diaprog + cd 003_diag && clean_diag_xyz + cd 004_python && clean_python cd 005_ncl && clean_ncl - cd 006_diag && clean_diag_xyz cd 007_ncl_diag && clean_ncl diff --git a/MY_RUN/KTEST/004_Reunion/003_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/004_Reunion/003_mesonh/clean_mesonh_xyz index 7530099e2..ac8db97d4 100755 --- a/MY_RUN/KTEST/004_Reunion/003_mesonh/clean_mesonh_xyz +++ b/MY_RUN/KTEST/004_Reunion/003_mesonh/clean_mesonh_xyz @@ -4,4 +4,4 @@ rm -f PRESSURE rm -f REUNION_IDEA.{des,lfi,nc} rm -f REUNION_PGD_1km5.{des,lfi,nc} rm -f REUNI.1.* OUT* pipe_name - +rm -f *.nc file_for* diff --git a/MY_RUN/KTEST/004_Reunion/004_convdia/clean_conv2dia b/MY_RUN/KTEST/004_Reunion/004_convdia/clean_conv2dia deleted file mode 100755 index d61f25f70..000000000 --- a/MY_RUN/KTEST/004_Reunion/004_convdia/clean_conv2dia +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -set -x -rm -f REUNI.1* dirconv FICJD LISTING_DIA OUT_DIA pipe_name diff --git a/MY_RUN/KTEST/004_Reunion/004_convdia/dir_conv2dia b/MY_RUN/KTEST/004_Reunion/004_convdia/dir_conv2dia deleted file mode 100644 index ba3b4e5b2..000000000 --- a/MY_RUN/KTEST/004_Reunion/004_convdia/dir_conv2dia +++ /dev/null @@ -1,6 +0,0 @@ -1 -REUNI.1.00A20.004 -REUNI.1.00A20.004dg -n -n -0 diff --git a/MY_RUN/KTEST/004_Reunion/004_diag/DIAG1.nam b/MY_RUN/KTEST/004_Reunion/004_diag/DIAG1.nam new file mode 100644 index 000000000..aa4b1ba37 --- /dev/null +++ b/MY_RUN/KTEST/004_Reunion/004_diag/DIAG1.nam @@ -0,0 +1,7 @@ +&NAM_CONFIO LCDF4=T, LLFIOUT=F, LLFIREAD=F / +&NAM_DIAG + LISOAL=T, XISOAL(1)=1500.0 / +&NAM_DIAG_FILE YINIFILE(1) = "REUNI.1.00A20.004" , + YINIFILEPGD(1) = "REUNION_PGD_1km5", + YSUFFIX='dia' / + diff --git a/MY_RUN/KTEST/004_Reunion/004_diag/clean_diag_xyz b/MY_RUN/KTEST/004_Reunion/004_diag/clean_diag_xyz new file mode 100644 index 000000000..1d7efa01b --- /dev/null +++ b/MY_RUN/KTEST/004_Reunion/004_diag/clean_diag_xyz @@ -0,0 +1,5 @@ +#!/bin/bash +set -x +rm -f KWRAI* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex +rm -f file_for_xtransfer +rm -f *.lfi *.des *.nc diff --git a/MY_RUN/KTEST/004_Reunion/004_convdia/run_conv2dia b/MY_RUN/KTEST/004_Reunion/004_diag/run_diag_xyz old mode 100755 new mode 100644 similarity index 67% rename from MY_RUN/KTEST/004_Reunion/004_convdia/run_conv2dia rename to MY_RUN/KTEST/004_Reunion/004_diag/run_diag_xyz index 2ce035139..4f3502cb1 --- a/MY_RUN/KTEST/004_Reunion/004_convdia/run_conv2dia +++ b/MY_RUN/KTEST/004_Reunion/004_diag/run_diag_xyz @@ -5,7 +5,11 @@ #MNH_LIC for details. version 1. set -x set -e -ln -sf ../003_mesonh/REUNI.1.00A20.004.{des,lfi,nc} . -rm -f REUNI.1.00A20.004dg.{des,lfi,nc} -${POSTRUN} conv2dia < dir_conv2dia +rm -f KWRAI* OUT* +# +# +ln -sf ../003_mesonh/REUNI.1.00A20.004.* . +ln -sf ../001_prep_pgd/REUNION_PGD_1km5.* . + +time ${MPIRUN} DIAG${XYZ} diff --git a/MY_RUN/KTEST/004_Reunion/005_diaprog/clean_diaprog b/MY_RUN/KTEST/004_Reunion/005_diaprog/clean_diaprog deleted file mode 100755 index ab7c07966..000000000 --- a/MY_RUN/KTEST/004_Reunion/005_diaprog/clean_diaprog +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -set -x -rm -f dir.* gmeta* REUNI.1.00A20.00* OUT_DIA diff --git a/MY_RUN/KTEST/004_Reunion/005_diaprog/dir_Reunion b/MY_RUN/KTEST/004_Reunion/005_diaprog/dir_Reunion deleted file mode 100644 index 7fafdea22..000000000 --- a/MY_RUN/KTEST/004_Reunion/005_diaprog/dir_Reunion +++ /dev/null @@ -1,30 +0,0 @@ -visu -! directives de presentation -LINVWB=T NIGRNC=10 nhi=0 lminmax=t xsizel=0.015 LCOLAREA=T LISO=F -! gestion des vectuers -NISKIP=4 XVRL=0.15 -! nom du fichier a ouvrir -_file_'REUNI.1.00A20.004dg' -! module du vent et vecteurs du niveau K=2 -MUTVT_K_2_ON_UTVT_K_2 -! temperature potentielle a 1500m -THT_Z_1500 -pression et vent en vecteurs a 1500m -PABST_Z_1500_ON_UTVT_Z_1500 -! definition d une coupe verticale -NIDEBCOU=35 NJDEBCOU=2 NLANGLE=90 NLMAX=80 -! trace de la coupe verticale dans le plan horizontal -LTRACECV=T -! temperature potentielle -THT_CV_ -! plus de trace de la coupe verticale -LTRACECV=F -! difference pour la temperature potentielle avec le champ initial -THT_CV__MINUS_LSTHM_CV_ -! difference pour la composante du vent selon Y avec le champ initial -VT_CV__MINUS_LSVM_CV_ -! difference pour la vitesse verticale avec le champ initial -WT_CV__ON_ULTWT_CV_ -! -! a vous d indiquer vos directives -quit diff --git a/MY_RUN/KTEST/004_Reunion/005_diaprog/run_diaprog b/MY_RUN/KTEST/004_Reunion/005_diaprog/run_diaprog deleted file mode 100755 index dd66c9964..000000000 --- a/MY_RUN/KTEST/004_Reunion/005_diaprog/run_diaprog +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -#MNH_LIC for details. version 1. -set -x -set -e -ln -sf ../004_convdia/REUNI.1.00A20.004dg.{des,lfi} . -rm -f dir.0* -${POSTRUN} diaprog < dir_Reunion -mv gmeta gmeta_Reunion || echo pas de gmeta diff --git a/MY_RUN/KTEST/004_Reunion/006_ncl/clean_ncl b/MY_RUN/KTEST/004_Reunion/006_ncl/clean_ncl index 233231e1e..bbfe25caa 100755 --- a/MY_RUN/KTEST/004_Reunion/006_ncl/clean_ncl +++ b/MY_RUN/KTEST/004_Reunion/006_ncl/clean_ncl @@ -1,2 +1,2 @@ #!/bin/bash -rm -f *.nc *.ps +rm -f *.nc *.ps *.png diff --git a/MY_RUN/KTEST/004_Reunion/007_python/clean_python b/MY_RUN/KTEST/004_Reunion/007_python/clean_python new file mode 100644 index 000000000..d75604a6a --- /dev/null +++ b/MY_RUN/KTEST/004_Reunion/007_python/clean_python @@ -0,0 +1,4 @@ +#!/bin/bash +rm -f *.png *.pdf *.nc +rm -Rf __pycache__ +find . -type l -delete diff --git a/MY_RUN/KTEST/004_Reunion/007_python/plot_004_Reunion.py b/MY_RUN/KTEST/004_Reunion/007_python/plot_004_Reunion.py new file mode 100644 index 000000000..6afceafa6 --- /dev/null +++ b/MY_RUN/KTEST/004_Reunion/007_python/plot_004_Reunion.py @@ -0,0 +1,145 @@ +#!/usr/bin/env python3 +""" + +@author: Quentin Rodier +Creation : 07/01/2021 + +Last modifications +""" + +import matplotlib as mpl +mpl.use('Agg') +from read_MNHfile import read_netcdf +from Panel_Plot import PanelPlot +from misc_functions import comp_altitude2DVar, windvec_verti_proj, mean_operator +import cartopy.crs as ccrs +import numpy as np +import math +import copy +import os + +os.system('rm -f tempgraph*') +# +# User's parameter / Namelist +# +output_name = '004_Reunion.pdf' #Name of the output PDF file +path="" + +LnameFiles = ['REUNI.1.00A20.004dia.nc', 'REUNI.1.00A20.004.nc'] + +Dvar_input = { +'f1':['ZS', 'UT', 'VT', 'WT', 'THT', 'ALT_PRESSURE','ALT_U','ALT_V','ALT_THETA','level','ZTOP', 'longitude','latitude','level_w','time'], +'f2':['LSTHM', 'LSVM']} + +# Read the variables in the files +Dvar = {} +Dvar = read_netcdf(LnameFiles, Dvar_input, path=path, removeHALO=True) + +################################################################ +######### PANEL 1 # Horizontal cross-section +############################################################### +Panel1 = PanelPlot(2,2, [20,20],'004_Reunion horizontal sections') + +Dvar['f1']['WIND'] = np.sqrt(Dvar['f1']['UT']**2 + Dvar['f1']['VT']**2) +Lplot = [ Dvar['f1']['ZS'][:,:], Dvar['f1']['WIND'][0,:,:], Dvar['f1']['ALT_THETA'][0,:,:], Dvar['f1']['ALT_PRESSURE'][0,:,:]] + +LaxeX = [Dvar['f1']['longitude']]*len(Lplot) +LaxeY = [Dvar['f1']['latitude']]*len(Lplot) +Ltitle = ['Orography', 'Wind speed ','Potential temperature at z = 1500m', 'Pressure'] +Lcbarlabel = ['m', 'm/s','K','hPa'] +Lxlab = ['longitude']*len(Lplot) +Lylab = ['latitude']*len(Lplot) +Lminval = [0, 8, 301.8, 831] +Lmaxval = [3000, 26, 305, 838] +Lstep = [50,1, 0.1, 0.1, 0.1] +Lstepticks = [500, 2,1,0.5] +Lfacconv = [1, 1, 1, 1./100.] +Lcolormap = ['gist_rainbow_r']*len(Lplot) +Ltime = [Dvar['f1']['time']]*len(Lplot) +Lpltype = ['cf']*len(Lplot) +LaddWhite_cm = [True, False, False, False] +Lprojection = [ccrs.PlateCarree()]*len(Lplot) + +fig1 = Panel1.psectionH(lon=LaxeX, lat=LaxeY, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv, + colorbar=True, Ltime=Ltime, LaddWhite_cm=LaddWhite_cm, Lproj=Lprojection) + +Lplot1 = [ Dvar['f1']['UT'], Dvar['f1']['ALT_U']] +Lplot2 = [ Dvar['f1']['VT'], Dvar['f1']['ALT_V']] +Ltitle = ['wind vectors at K=2', 'wind vectors at z = 1500m '] +Lxlab = ['longitude']*len(Lplot1) +Lylab = ['latitude']*len(Lplot1) +Llegendval = [25,25] +Lcbarlabel = ['(m/s)']*len(Lplot1) +Larrowstep = [4]*len(Lplot1) +Lwidth = [0.003]*len(Lplot1) +Lcolor = ['black']*len(Lplot1) +Lprojection = [ccrs.PlateCarree()]*len(Lplot1) +Llvl = [0]*len(Lplot1) +Lscale = [400]*len(Lplot1) +fig2 = Panel1.pvector(Lxx=LaxeX, Lyy=LaxeY, Llevel=Llvl, Lvar1=Lplot1, Lvar2=Lplot2, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lwidth=Lwidth, Larrowstep=Larrowstep, + Llegendval=Llegendval, Lcbarlabel=Lcbarlabel, Lproj=Lprojection, Lid_overlap=[2,6], ax=fig1.axes, Lscale=Lscale) + + + +################################################################ +######### PANEL 2 # Vertical cross-section +############################################################### +# Compute wind into mass point +tomass = mean_operator() +Dvar['f1']['WM'] = tomass.MZM(Dvar['f1']['WT']) +Dvar['f1']['VM'] = tomass.MYM(Dvar['f1']['VT']) + +Panel2 = PanelPlot(2,2, [20,20],'004_Reunion vertical sections at i=35') +i_slice = 33 + +# Black line +Panel1.addLine(fig2.axes[0],[Dvar['f1']['longitude'][0,i_slice],Dvar['f1']['latitude'][0,i_slice]],[Dvar['f1']['longitude'][-1,i_slice],Dvar['f1']['latitude'][-1,i_slice]],'black',3) +Panel1.save_graph(1,fig2) + +# Compute altitude variable in 3D with a 2D topography +Dvar['f1']['altitude'] , Dvar['f1']['nx_3D'], Dvar['f1']['ny_3D'] = comp_altitude2DVar(Dvar['f2']['LSTHM'], Dvar['f1']['ZS'],Dvar['f1']['ZTOP'], Dvar['f1']['level'], Dvar['f1']['latitude'], Dvar['f1']['longitude']) +Dvar['f1']['altitude_w'], Dvar['f1']['nx_3D'], Dvar['f1']['ny_3D'] = comp_altitude2DVar(Dvar['f1']['WM'], Dvar['f1']['ZS'],Dvar['f1']['ZTOP'], Dvar['f1']['level_w'], Dvar['f1']['latitude'], Dvar['f1']['longitude']) +Dvar['f1']['THT-LSTHM'] = copy.deepcopy(Dvar['f1']['THT']) +Dvar['f1']['THT-LSTHM'] = Dvar['f1']['THT'] - Dvar['f2']['LSTHM'] +Dvar['f1']['VT-LSVM'] = copy.deepcopy(Dvar['f1']['VM']) +Dvar['f1']['VT-LSVM'] = Dvar['f1']['VM'] - Dvar['f2']['LSVM'] + +Lplot = [ Dvar['f1']['THT'][:,:,i_slice], Dvar['f1']['THT-LSTHM'][:,:,i_slice],Dvar['f1']['VT-LSVM'][:,:,i_slice],Dvar['f1']['WT'][:,:,i_slice]] +Ltitle = ['Potential Temperature', 'Anomalie de théta (THT-LSTHM)', 'Anomalie de V (VT-LSVM)', 'WT vertical velocity'] +LaxeZ = [Dvar['f1']['altitude'][:,:,i_slice], Dvar['f1']['altitude'][:,:,i_slice],Dvar['f1']['altitude'][:,:,i_slice],Dvar['f1']['altitude_w'][:,:,i_slice]] +LaxeX = [Dvar['f1']['ny_3D'][:,:,i_slice]]*len(Lplot) +Lcbarlabel = ['K', 'K','m/s', 'm/s'] +Lxlab = ['longitude']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,16000)]*len(Lplot) +Lminval = [300, -1.9, -10.5, -6.75] +Lmaxval = [355, 1.9, 10.5, 6.75] +Lstep = [2.5, 0.2, 1, 0.5] +Lstepticks = Lstep +Lcolormap=['gist_rainbow_r','seismic','seismic','seismic'] +orog = Dvar['f1']['ZS'][:,i_slice] + +fig3 = Panel2.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, Lylim=Lylim, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, + orog=orog, colorbar=True, Ltime=Ltime) + +# Wind vector on last panel +Lplot1 = [ Dvar['f1']['VM'][:,:,i_slice]] +Lplot2 = [ Dvar['f1']['WM'][:,:,i_slice]] +Ltitle = ['Wind'] +Llegendval = [15] +Lcbarlabel = ['m/s']*len(Lplot) +Lxlab = ['longitude']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Larrowstep = [1]*len(Lplot) +Lwidth = [0.002]*len(Lplot) +Lscale = [800]*len(Lplot) +Lylim=[(0,3000)] +Lxlim = [(-21.3,-20.9)]*len(Lplot) +Lcolor=['lightgray'] + +fig4 = Panel2.pvector(Lxx=LaxeX, Lyy=LaxeZ, Lvar1=Lplot1, Lvar2=Lplot2, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lwidth=Lwidth, Larrowstep=Larrowstep, + Llegendval=Llegendval, Lcbarlabel=Lcbarlabel, Lid_overlap=[6], ax=fig3.axes, Lscale=Lscale, Lylim=Lylim, Lxlim=Lxlim, Lcolor=Lcolor) + +Panel2.save_graph(2,fig4) diff --git a/MY_RUN/KTEST/004_Reunion/007_python/run_python b/MY_RUN/KTEST/004_Reunion/007_python/run_python new file mode 100644 index 000000000..d8070e60a --- /dev/null +++ b/MY_RUN/KTEST/004_Reunion/007_python/run_python @@ -0,0 +1,13 @@ +#!/bin/bash +#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC for details. version 1. +set -x +set -e +ln -sf ${SRC_MESONH}/src/LIB/Python/* . +ln -sf ../004_diag/REUNI.1.00A20.004*.nc . + +python3 plot_004_Reunion.py +${POSTRUN} convert *.png 004_Reunion.pdf +${POSTRUN} evince 004_Reunion.pdf diff --git a/MY_RUN/KTEST/004_Reunion/Makefile b/MY_RUN/KTEST/004_Reunion/Makefile index a4e5c7603..5a7f61876 100644 --- a/MY_RUN/KTEST/004_Reunion/Makefile +++ b/MY_RUN/KTEST/004_Reunion/Makefile @@ -3,16 +3,15 @@ all: cd 001_prep_pgd && run_prep_pgd_xyz cd 002_prep_ideal_case && run_prep_ideal_case_xyz cd 003_mesonh && run_mesonh_xyz - cd 004_convdia && run_conv2dia - cd 005_diaprog && run_diaprog $ + cd 004_diag && run_diag_xyz cd 006_ncl && run_ncl + cd 007_python && run_python all_ncl_lfi2cdf: cd 001_prep_pgd && get_pgd_files cd 001_prep_pgd && run_prep_pgd_xyz cd 002_prep_ideal_case && run_prep_ideal_case_xyz cd 003_mesonh && run_mesonh_xyz - cd 004_convdia && run_conv2dia cd 005_ncl_lfi2cdf && run_ncl all_ncl_extractdia: @@ -20,7 +19,6 @@ all_ncl_extractdia: cd 001_prep_pgd && run_prep_pgd_xyz cd 002_prep_ideal_case && run_prep_ideal_case_xyz cd 003_mesonh && run_mesonh_xyz - cd 004_convdia && run_conv2dia cd 005_ncl_extractdia && run_ncl all_ncl_nc4: @@ -36,9 +34,9 @@ clean: cd 001_prep_pgd && clean_prep_pgd_xyz cd 002_prep_ideal_case && clean_prep_ideal_case_xyz cd 003_mesonh && clean_mesonh_xyz - cd 004_convdia && clean_conv2dia - cd 005_diaprog && clean_diaprog + cd 004_diag && clean_diag_xyz cd 005_ncl_lfi2cdf && clean_ncl cd 005_ncl_extractdia && clean_ncl cd 005_ncl_nc4 && clean_ncl cd 006_ncl && clean_ncl + cd 007_python && clean_python diff --git a/MY_RUN/KTEST/005_ARM/002_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/005_ARM/002_mesonh/clean_mesonh_xyz index 5bd665b85..cb5a967a5 100755 --- a/MY_RUN/KTEST/005_ARM/002_mesonh/clean_mesonh_xyz +++ b/MY_RUN/KTEST/005_ARM/002_mesonh/clean_mesonh_xyz @@ -1,3 +1,3 @@ #!/bin/bash rm -f ARM* pipe_name -rm -f eurocs* OUT* +rm -f eurocs* OUT* file_for* PRESSURE diff --git a/MY_RUN/KTEST/005_ARM/003_diaprog/clean_diaprog b/MY_RUN/KTEST/005_ARM/003_diaprog/clean_diaprog deleted file mode 100755 index 159c61110..000000000 --- a/MY_RUN/KTEST/005_ARM/003_diaprog/clean_diaprog +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -rm -f ARM** -rm -f gmeta OUT* -rm -f rm dir.*:* diff --git a/MY_RUN/KTEST/005_ARM/003_diaprog/dir_arm b/MY_RUN/KTEST/005_ARM/003_diaprog/dir_arm deleted file mode 100644 index 56cfecac4..000000000 --- a/MY_RUN/KTEST/005_ARM/003_diaprog/dir_arm +++ /dev/null @@ -1,77 +0,0 @@ -visu -_file1_'ARM__.1.CEN4T.000' -print groups -lcolarea=t -lminmax=t -liso=f -xhmax=3000 -LCOLZERO=t -NCOLZERO=1 -LMINMAX=t -LVPTUSER=T -XVPTVL=0.20 -XVPTR=0.80 -NIMNMX=1 -LTITDEF=F -LVPTUSER=T -XVPTVL=0.20 -XVPTR=0.80 -CTITB1='white' -CTITB2='white' -CTITB3='white' -CTITB4='white' -CTITT1='white' -CTITT2='white' -CTITVAR2='white' -LDATFILE=.FALSE. -XISOMIN_SBG_TKE=0 -XISOMAX_SBG_TKE=2.5 -XDIAINT_SBG_TKE=0.25 -XISOMIN_MEAN_TH=298 -XISOMAX_MEAN_TH=316 -XDIAINT_MEAN_TH=1 -XISOMIN_MEAN_U=3 -XISOMAX_MEAN_U=11. -XDIAINT_MEAN_U=0.5 -XISOMIN_MEAN_V=0 -XISOMAX_MEAN_V=3.2 -XDIAINT_MEAN_V=0.2 -XISOMIN_MEAN_RC=0 -XISOMAX_MEAN_RC=0.2E-03 -XDIAINT_MEAN_RC=0.1E-04 -XISOMIN_MEAN_RR=0 -XISOMAX_MEAN_RR=0.2E-04 -XDIAINT_MEAN_RR=0.1E-05 -XISOMIN_SBG_WTHL=-0.3 -XISOMAX_SBG_WTHL=0.12 -XDIAINT_SBG_WTHL=0.02 -XISOMIN_SBG_WRT=-0.1E-03 -XISOMAX_SBG_WRT=0.4E-03 -XDIAINT_SBG_WRT=0.05E-03 -SBG_TKE_pvt_ -MEAN_TH_pvt_ -MEAN_U_pvt_ -MEAN_V_pvt_ -MEAN_RC_pvt_ -MEAN_RR_pvt_ -SBG_WTHL_pvt_ -SBG_WRT_pvt_ -THLUP_MF_pvt_ -RTUP_MF_pvt_ -RVUP_MF_pvt_ -RCUP_MF_pvt_ -RIUP_MF_pvt_ -WUP_MF_pvt_ -MAFLX_MF_pvt_ -DETR_MF_pvt_ -ENTR_MF_pvt_ -FRCUP_MF_pvt_ -THVUP_MF_pvt_ -WTHL_MF_pvt_ -WRT_MF_pvt_ -WTHV_MF_pvt_ -WU_MF_pvt_ -WV_MF_pvt_ -quit - - diff --git a/MY_RUN/KTEST/005_ARM/003_diaprog/run_diaprog b/MY_RUN/KTEST/005_ARM/003_diaprog/run_diaprog deleted file mode 100755 index 15d55af0a..000000000 --- a/MY_RUN/KTEST/005_ARM/003_diaprog/run_diaprog +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -set -x -set -e -ln -sf ../002_mesonh/ARM__.1.CEN4T.000.* . -rm -f dir.0* -${POSTRUN} diaprog < dir_arm - - diff --git a/MY_RUN/KTEST/005_ARM/003_python/clean_python b/MY_RUN/KTEST/005_ARM/003_python/clean_python new file mode 100644 index 000000000..d75604a6a --- /dev/null +++ b/MY_RUN/KTEST/005_ARM/003_python/clean_python @@ -0,0 +1,4 @@ +#!/bin/bash +rm -f *.png *.pdf *.nc +rm -Rf __pycache__ +find . -type l -delete diff --git a/MY_RUN/KTEST/005_ARM/003_python/plot_005_ARM.py b/MY_RUN/KTEST/005_ARM/003_python/plot_005_ARM.py new file mode 100644 index 000000000..e69e3b9ba --- /dev/null +++ b/MY_RUN/KTEST/005_ARM/003_python/plot_005_ARM.py @@ -0,0 +1,149 @@ +#!/usr/bin/env python3 +""" + +@author: Quentin Rodier +Creation : 07/01/2021 + +Last modifications +""" + +import matplotlib as mpl +mpl.use('Agg') +from read_MNHfile import read_netcdf +from Panel_Plot import PanelPlot +import os + +os.system('rm -f tempgraph*') +# +# User's parameter / Namelist +# +output_name = '005_ARM.pdf' #Name of the output PDF file +path="" + +LnameFiles = ['ARM__.1.CEN4T.000.nc' ] + +Dvar_input = { +'f1':['MEAN_TH','MEAN_U','MEAN_V','MEAN_RC','MEAN_RR', + 'SBG_TKE','SBG_WTHL','SBG_WRT', + 'THLUP_MF','RTUP_MF','RVUP_MF','RCUP_MF','RIUP_MF','WUP_MF', + 'MAFLX_MF','DETR_MF','ENTR_MF','FRCUP_MF','THVUP_MF','WTHL_MF', + 'WRT_MF','WTHV_MF','WU_MF','WV_MF', + 'level_les','time_les'] +} + +# Read the variables in the files +Dvar = {} +Dvar = read_netcdf(LnameFiles, Dvar_input, path=path, removeHALO=False) + + +################################################################ +######### PANEL 1 +############################################################### +Panel1 = PanelPlot(2,3, [25,14],'', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.03, labelcolorbarpad = 13, colorbaraspect=40) + +Lplot = [Dvar['f1']['MEAN_TH'],Dvar['f1']['MEAN_U'], Dvar['f1']['MEAN_V'], Dvar['f1']['MEAN_RC'], Dvar['f1']['MEAN_RR'],Dvar['f1']['SBG_TKE'],] +LaxeX = [Dvar['f1']['time_les']/3600.]*len(Lplot) +LaxeZ = [Dvar['f1']['level_les']]*len(Lplot) +Ltitle = ['Mean potential temperature TH', 'Mean U', 'Mean V', 'Mean cloud mixing ratio RC', 'Mean precipitation RR', 'Subgrid TKE'] +Lcbarlabel = ['K','m/s','m/s','g/kg','g/kg','m2 s-2'] +Lxlab = ['time (h)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,3000)]*len(Lplot) +Lminval = [298, 3, 0, 0, 0, 0] +Lmaxval = [317, 12, 3.4,0.21, 0.021, 2.5] +Lstep = [1, 0.5, 0.2, 0.01,0.001, 0.25] +Lstepticks = Lstep +Lfacconv = [1, 1, 1, 1000, 1000, 1] +Lcolormap = ['gist_rainbow_r']*len(Lplot) +LaddWhite = [False, False, True, True,True, True] + +fig1 = Panel1.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv, + LaddWhite_cm=LaddWhite, Lylim=Lylim) + +Panel1.save_graph(1,fig1) + +################################################################ +######### PANEL 2 +############################################################### +Panel2 = PanelPlot(2,3, [25,14],'', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.03, labelcolorbarpad = 13, colorbaraspect=40) + +Lplot = [Dvar['f1']['SBG_WTHL'], Dvar['f1']['SBG_WRT'], Dvar['f1']['THLUP_MF'], Dvar['f1']['RTUP_MF'], Dvar['f1']['RVUP_MF'], Dvar['f1']['RCUP_MF']] +LaxeX = [Dvar['f1']['time_les']/3600.]*len(Lplot) +LaxeZ = [Dvar['f1']['level_les']]*len(Lplot) +Ltitle = ['Subgrid vertical liquid potential temp. flux', 'Subgrid vertical RT flux', + 'Updraft THL', 'Updraft total mixing ratio', 'Updraft water vapor mixing ratio', 'Updraft cloud mixing ratio'] +Lcbarlabel = ['m K s-1','m kg kg-1 s-1','K','kg/kg', 'kg/kg', 'kg/kg'] +Lxlab = ['time (h)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,3000)]*len(Lplot) +Lminval = [ -0.3, -0.1E-3, 301,0.35E-2, 0.1E-2, 0.25E-3] +Lmaxval = [0.14, 0.45E-3, 319 ,0.018, 0.018, 0.425E-2] +Lstep = [ 0.02, 0.05E-3, 1 ,0.001, 0.001, 0.25E-3] +Lstepticks = Lstep +Lfacconv = [1]*len(Lplot) +Lcolormap = ['gist_rainbow_r']*len(Lplot) +LaddWhite = [False, False, False, False, False, False] + +fig2 = Panel2.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv, + LaddWhite_cm=LaddWhite, Lylim=Lylim) + +Panel2.save_graph(2,fig2) + +################################################################ +######### PANEL 3 +############################################################### +Panel3 = PanelPlot(2,3, [25,14],'', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.03, labelcolorbarpad = 13, colorbaraspect=40) + +Lplot = [Dvar['f1']['RIUP_MF'], Dvar['f1']['WUP_MF'], Dvar['f1']['MAFLX_MF'], Dvar['f1']['DETR_MF'], Dvar['f1']['ENTR_MF'], Dvar['f1']['FRCUP_MF']] +LaxeX = [Dvar['f1']['time_les']/3600.]*len(Lplot) +LaxeZ = [Dvar['f1']['level_les']]*len(Lplot) +Ltitle = ['Updraft ice mixing ratio', 'Updraft vertical velocity', + 'Updraft mass-flux', 'Updraft detrainment', 'Updraft entrainement', 'Subgrid updraft fraction'] +Lcbarlabel = ['g/kg','m/s','kg m-2 s-1','kg m-3 s-1', 'kg m-3 s-1', '-'] +Lxlab = ['time (h)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,3000)]*len(Lplot) +Lminval = [ 0, 0., 0., 0., 0., 0.] +Lmaxval = [0.001, 5.75, 0.34, 0.55, 0.52E-2, 0.17] +Lstep = [ 0.0001, 0.25, 0.025, 0.025, 0.25E-3, 0.01] +Lstepticks = Lstep +Lfacconv = [1]*len(Lplot) +Lcolormap = ['gist_rainbow_r']*len(Lplot) +LaddWhite = [True]*len(Lplot) + +fig3 = Panel3.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv, + LaddWhite_cm=LaddWhite, Lylim=Lylim) + +Panel3.save_graph(3,fig3) + + +################################################################ +######### PANEL 4 +############################################################### +Panel4 = PanelPlot(2,3, [25,14],'', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.03, labelcolorbarpad = 13, colorbaraspect=40) + +Lplot = [Dvar['f1']['THVUP_MF'], Dvar['f1']['WTHL_MF'], Dvar['f1']['WRT_MF'], Dvar['f1']['WTHV_MF'], Dvar['f1']['WU_MF'], Dvar['f1']['WV_MF']] +LaxeX = [Dvar['f1']['time_les']/3600.]*len(Lplot) +LaxeZ = [Dvar['f1']['level_les']]*len(Lplot) +Ltitle = ['Updraft virtual potential temperature', 'Subgrid WTHL flux from Mass-Flux scheme', + 'Subgrid WRT flux from Mass-Flux scheme', 'Subgrid WTHV flux from Mass-Flux scheme', 'Subgrid WU from Mass-Flux scheme', 'Subgrid WV from Mass-Flux scheme'] +Lcbarlabel = ['K','m K s-1','m kg/kg s-1','m K s-1', 'm2 s-2', 'm2 s-2'] +Lxlab = ['time (h)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,3000)]*len(Lplot) +Lminval = [303, -0.07, 0., -0.015, -0.12, -0.024 ] +Lmaxval = [320, 0.06, 0.19E-3, 0.08, 0., 0.052 ] +Lstep = [1, 0.005,0.1E-4, 0.5E-2,0.005,0.4E-2 ] +Lstepticks = Lstep +Lfacconv = [1]*len(Lplot) +Lcolormap = ['gist_rainbow_r']*len(Lplot) +LaddWhite = [False, False, True, False, False, False] + +fig4 = Panel4.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv, + LaddWhite_cm=LaddWhite, Lylim=Lylim) + +Panel4.save_graph(4,fig4) diff --git a/MY_RUN/KTEST/002_3Drelief/004_diaprog/run_diaprog b/MY_RUN/KTEST/005_ARM/003_python/run_python old mode 100755 new mode 100644 similarity index 62% rename from MY_RUN/KTEST/002_3Drelief/004_diaprog/run_diaprog rename to MY_RUN/KTEST/005_ARM/003_python/run_python index 6fb30e42f..bb2064129 --- a/MY_RUN/KTEST/002_3Drelief/004_diaprog/run_diaprog +++ b/MY_RUN/KTEST/005_ARM/003_python/run_python @@ -5,8 +5,9 @@ #MNH_LIC for details. version 1. set -x set -e -ln -sf ../003_convdia/REL3D.1.EXP01.002dg.{des,lfi} . -#ln -sf ../003_convdia/REL3D_autre_run.{des,lfi} . -rm -f dir.0* -${POSTRUN} diaprog < dir_3Drelief +ln -sf ${SRC_MESONH}/src/LIB/Python/* . +ln -sf ../002_mesonh/ARM__.1.CEN4T.000.nc . +python3 plot_005_ARM.py +${POSTRUN} convert *.png 005_ARM.pdf +${POSTRUN} evince 005_ARM.pdf diff --git a/MY_RUN/KTEST/005_ARM/004_ncl/clean_ncl b/MY_RUN/KTEST/005_ARM/004_ncl/clean_ncl deleted file mode 100755 index 12eeedc8e..000000000 --- a/MY_RUN/KTEST/005_ARM/004_ncl/clean_ncl +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -rm -f ARM__.1.CEN4T.000* *.png diff --git a/MY_RUN/KTEST/005_ARM/004_ncl/plot_arm.ncl b/MY_RUN/KTEST/005_ARM/004_ncl/plot_arm.ncl deleted file mode 100644 index 5d315db0f..000000000 --- a/MY_RUN/KTEST/005_ARM/004_ncl/plot_arm.ncl +++ /dev/null @@ -1,513 +0,0 @@ -;================================================; -load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" -load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" -load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" -load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl" -; ================================================; -;================================================; -begin -;=================================================; -; open file and read in data -;=================================================; - fichier1 = addfile("ARM__.1.CEN4T.000.nc", "r") -;==================================================; -; Open the workstation -;==================================================; - type = "png" - wks = gsn_open_wks(type,"visu_ARM") -;=================================================; -; lecture des différents champs -;=================================================; -kmax=100 -zhat = fichier1->ZHAT(:) ; ZHAT -; Unstagger zhat (from grid 4 to 1) - nzh=new(kmax,double) - do k=0,kmax-2 - nzh(k)=(zhat(k)+zhat(k+1))/2. - end do - nzh(kmax-1)=2*zhat(kmax-1)-zhat(kmax-2) -TIME=new((/180/),double) -TIME(0)=300 -do j=1,179 - TIME(j)=TIME(j-1)+300 -end do - - - -vname="SBG_TKE___PROC1" -SBGTKE = fichier1->$vname$(0,:,:,0,0) -SBGTKE@long_name="SBG_TKE" -SBGTKE!1="nzh" -SBGTKE!0="TIME" -SBG_TKE=transpose(SBGTKE) - -vname="MEAN_TH___PROC1" -MEANTH = fichier1->$vname$(0,:,:,0,0) ; MEAN_TH -MEANTH@long_name="MEAN_TH" -MEANTH@units="K" -MEANTH!1="nzh" -MEANTH!0="TIME" -MEAN_TH=transpose(MEANTH) - - -vname="MEAN_U___PROC1" -MEANU = fichier1->$vname$(0,:,:,0,0) -MEANU!1="nzh" -MEANU!0="TIME" -MEAN_U=transpose(MEANU) -MEAN_U@long_name="MEAN_U" - -vname="MEAN_V___PROC1" -MEANV = fichier1->$vname$(0,:,:,0,0) -MEANV!1="nzh" -MEANV!0="TIME" -MEAN_V=transpose(MEANV) -MEAN_V@long_name="MEAN_V" - -vname="MEAN_RC___PROC1" -MEANRC = fichier1->$vname$(0,:,:,0,0) -MEANRC!1="nzh" -MEANRC!0="TIME" -MEAN_RC=transpose(MEANRC) -MEAN_RC@long_name="MEAN_RC" - -vname="MEAN_RR___PROC1" -MEANRR = fichier1->$vname$(0,:,:,0,0) -MEANRR!1="nzh" -MEANRR!0="TIME" -MEAN_RR=transpose(MEANRR) -MEAN_RR@long_name="MEAN_RR" - -vname="SBG_WTHL___PROC1" -SBGWTHL = fichier1->$vname$(0,:,:,0,0) -SBGWTHL!1="nzh" -SBGWTHL!0="TIME" -SBG_WTHL=transpose(SBGWTHL) -SBG_WTHL@long_name="SBG_WTHL" - -vname="SBG_WRT___PROC1" -SBGWRT = fichier1->$vname$(0,:,:,0,0) -SBGWRT!1="nzh" -SBGWRT!0="TIME" -SBG_WRT=transpose(SBGWRT) -SBG_WRT@long_name="SBG_WRT" - - -vname="THLUP_MF___PROC1" - THLUPMF= fichier1->$vname$(0,:,:,0,0) -THLUPMF!1="nzh" -THLUPMF!0="TIME" -THLUP_MF=transpose(THLUPMF) -THLUP_MF@long_name="THLUP_MF" - -vname="RTUP_MF___PROC1" -RTUPMF = fichier1->$vname$(0,:,:,0,0) -RTUPMF!1="nzh" -RTUPMF!0="TIME" -RTUP_MF=transpose(RTUPMF) -RTUP_MF@long_name="RTUP_MF" - -vname="RVUP_MF___PROC1" -RVUPMF = fichier1->$vname$(0,:,:,0,0) -RVUPMF!1="nzh" -RVUPMF!0="TIME" -RVUP_MF=transpose(RVUPMF) -RVUP_MF@long_name="RVUP_MF" - -vname="RCUP_MF___PROC1" -RCUPMF = fichier1->$vname$(0,:,:,0,0) -RCUPMF!1="nzh" -RCUPMF!0="TIME" -RCUP_MF=transpose(RCUPMF) -RCUP_MF@long_name="RCUP_MF" - -vname="RIUP_MF___PROC1" -RIUPMF = fichier1->$vname$(0,:,:,0,0) -RIUPMF!1="nzh" -RIUPMF!0="TIME" -RIUP_MF=transpose(RIUPMF) -RIUP_MF@long_name="RIUP_MF" - -vname="WUP_MF___PROC1" -WUPMF = fichier1->$vname$(0,:,:,0,0) -WUPMF!1="nzh" -WUPMF!0="TIME" -WUP_MF=transpose(WUPMF) -WUP_MF@long_name="WUP_MF" - -vname="MAFLX_MF___PROC1" -MAFLXMF = fichier1->$vname$(0,:,:,0,0) -MAFLXMF!1="nzh" -MAFLXMF!0="TIME" -MAFLX_MF=transpose(MAFLXMF) -MAFLX_MF@long_name="MAFLX_MF" - -vname="DETR_MF___PROC1" -DETRMF = fichier1->$vname$(0,:,:,0,0) -DETRMF!1="nzh" -DETRMF!0="TIME" -DETR_MF=transpose(DETRMF) -DETR_MF@long_name="DETR_MF" - -vname="ENTR_MF___PROC1" -ENTRMF = fichier1->$vname$(0,:,:,0,0) -ENTRMF!1="nzh" -ENTRMF!0="TIME" -ENTR_MF=transpose(ENTRMF) -ENTR_MF@long_name="ENTR_MF" - -vname="FRCUP_MF___PROC1" -FRCUPMF = fichier1->$vname$(0,:,:,0,0) -FRCUPMF!1="nzh" -FRCUPMF!0="TIME" -FRCUP_MF=transpose(FRCUPMF) -FRCUP_MF@long_name="FRCUP_MF" - -vname="THVUP_MF___PROC1" -THVUPMF = fichier1->$vname$(0,:,:,0,0) -THVUPMF!1="nzh" -THVUPMF!0="TIME" -THVUP_MF=transpose(THVUPMF) -THVUP_MF@long_name="THVUP_MF" - -vname="WTHL_MF___PROC1" -WTHLMF = fichier1->$vname$(0,:,:,0,0) -WTHLMF!1="nzh" -WTHLMF!0="TIME" -WTHL_MF=transpose(WTHLMF) -WTHL_MF@long_name="WTHL_MF" - -vname="WRT_MF___PROC1" -WRTMF = fichier1->$vname$(0,:,:,0,0) -WRTMF!1="nzh" -WRTMF!0="TIME" -WRT_MF=transpose(WRTMF) -WRT_MF@long_name="WRT_MF" - - -vname="WTHV_MF___PROC1" -WTHVMF = fichier1->$vname$(0,:,:,0,0) -WTHVMF!1="nzh" -WTHVMF!0="TIME" -WTHV_MF=transpose(WTHVMF) -WTHV_MF@long_name="WTHV_MF" - - -vname="WU_MF___PROC1" -WUMF = fichier1->$vname$(0,:,:,0,0) -WUMF!1="nzh" -WUMF!0="TIME" -WU_MF=transpose(WUMF) -WU_MF@long_name="WU_MF" - - -vname="WV_MF___PROC1" -WVMF = fichier1->$vname$(0,:,:,0,0) -WVMF!1="nzh" -WVMF!0="TIME" -WV_MF=transpose(WVMF) -WV_MF@long_name="WV_MF" - -;=================================================; -; Altitude des niveaux modèles -;=================================================; -; Unstagger zhat (from grid 4 to 1) - nzh=new(kmax,double) - do k=0,kmax-2 - nzh(k)=(zhat(k)+zhat(k+1))/2. - end do - nzh(kmax-1)=2*zhat(kmax-1)-zhat(kmax-2) -;=================================================; -; Set some other basic resources -;=================================================; - resmap = True - resmap@gsnFrame = False - resmap@gsnDraw = False - resmap@gsnMaximize = True - resmap@gsnPaperOrientation = "portrait" - resmap@gsnSpreadColors = True ; use full range of colormap - resmap@tiYAxisString =" " - resmap@cnFillOn = True ; turn on color fill - resmap@cnLinesOn = False ; turn off contour lines - ;resmap@tmXBLabelStride = 2 ; to reduce the number of labels on xaxis - ;resmap@lbLabelStride = 2. ; to reduce the number of labels on labelbar - resmap@sfYArray = nzh(0:76) - resmap@sfXArray = TIME - resmap@tmXBTickSpacingF = 10800. - resmap@tmXBMode = "Explicit" - resmap@tmXBValues = (/10800,21600,32400,43200,54000/) - resmap@tmXBLabels =(/3,6,9,12,15/) -resmap@tiXAxisPosition="Left" -resmap@tiXAxisFontHeightF=0.015 -;=================================================; -; TRACE -;=================================================; - gsn_define_colormap(wks,"rainbow") ; Choose colormap - colors = gsn_retrieve_colormap(wks) ; retrieve color map for editing - colors(2,:) = (/ 1, 1, 1 /) ; replace the first color with white color (les deux premières sont background /foreground donc c'est bien la 2 qu'il faut changer) - gsn_define_colormap(wks,colors) ; redefine colormap to workstation, color map now includes a gray - - - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.25 -opts@cnMinLevelValF=0 -opts@cnMaxLevelValF=2.5 - -plot = gsn_csm_contour(wks,SBG_TKE(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=1 -opts@cnMinLevelValF=298 -opts@cnMaxLevelValF=316 - -plot = gsn_csm_contour(wks,MEAN_TH(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.5 -opts@cnMinLevelValF=3 -opts@cnMaxLevelValF=11 - -plot = gsn_csm_contour(wks,MEAN_U(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.2 -opts@cnMinLevelValF=0. -opts@cnMaxLevelValF=3.2 - -plot = gsn_csm_contour(wks,MEAN_V(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.00001 -opts@cnMinLevelValF=0 -opts@cnMaxLevelValF=0.0002 - -plot = gsn_csm_contour(wks,MEAN_RC(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.000001 -opts@cnMinLevelValF=0 -opts@cnMaxLevelValF=0.00002 - -plot = gsn_csm_contour(wks,MEAN_RR(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.02 -opts@cnMinLevelValF=-0.3 -opts@cnMaxLevelValF=0.12 - -plot = gsn_csm_contour(wks,SBG_WTHL(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.00005 -opts@cnMinLevelValF=-0.0001 -opts@cnMaxLevelValF=0.0004 - -plot = gsn_csm_contour(wks,SBG_WRT(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=1 -opts@cnMinLevelValF=301 -opts@cnMaxLevelValF=318 - -plot = gsn_csm_contour(wks,THLUP_MF(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.001 -opts@cnMinLevelValF=0.0035 -opts@cnMaxLevelValF=0.017 -plot = gsn_csm_contour(wks,RTUP_MF(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.001 -opts@cnMinLevelValF=0.001 -opts@cnMaxLevelValF=0.017 - -plot = gsn_csm_contour(wks,RVUP_MF(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.00025 -opts@cnMinLevelValF=0.00025 -opts@cnMaxLevelValF=0.00425 - -plot = gsn_csm_contour(wks,RCUP_MF(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "AutomaticLevels" -plot = gsn_csm_contour(wks,RIUP_MF(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.25 -opts@cnMinLevelValF=0.250 -opts@cnMaxLevelValF=5.5 - -plot = gsn_csm_contour(wks,WUP_MF(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.02 -opts@cnMinLevelValF=0.02 -opts@cnMaxLevelValF=0.32 - -plot = gsn_csm_contour(wks,MAFLX_MF(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.025 -opts@cnMinLevelValF=0.025 -opts@cnMaxLevelValF=0.45 - -plot = gsn_csm_contour(wks,DETR_MF(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.00025 -opts@cnMinLevelValF=0.00025 -opts@cnMaxLevelValF=0.005 - -plot = gsn_csm_contour(wks,ENTR_MF(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.01 -opts@cnMinLevelValF=0.01 -opts@cnMaxLevelValF=0.16 - -plot = gsn_csm_contour(wks,FRCUP_MF(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=1 -opts@cnMinLevelValF=303 -opts@cnMaxLevelValF=319 - -plot = gsn_csm_contour(wks,THVUP_MF(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.005 -opts@cnMinLevelValF=-0.075 -opts@cnMaxLevelValF=0.055 - -plot = gsn_csm_contour(wks,WTHL_MF(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.00001 -opts@cnMinLevelValF=0.00001 -opts@cnMaxLevelValF=0.00019 - -plot = gsn_csm_contour(wks,WRT_MF(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.005 -opts@cnMinLevelValF=-0.016 -opts@cnMaxLevelValF=0.075 -plot = gsn_csm_contour(wks,WTHV_MF(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.005 -opts@cnMinLevelValF=-0.120 -opts@cnMaxLevelValF=-0.005 - -plot = gsn_csm_contour(wks,WU_MF(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -opts=resmap -opts@cnLevelSelectionMode = "ManualLevels" -opts@cnLevelSpacingF=0.004 -opts@cnMinLevelValF=-0.024 -opts@cnMaxLevelValF=0.048 -plot = gsn_csm_contour(wks,WV_MF(0:76,:),opts) -draw(plot) -frame(wks) -delete(opts) - -end diff --git a/MY_RUN/KTEST/005_ARM/004_ncl/run_ncl b/MY_RUN/KTEST/005_ARM/004_ncl/run_ncl deleted file mode 100755 index 7fa36570b..000000000 --- a/MY_RUN/KTEST/005_ARM/004_ncl/run_ncl +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -#MNH_LIC for details. version 1. -set -x - -ln -sf ../002_mesonh/ARM__.1.CEN4T.000.* . - -rm -f visu_ARM.*.png - -ncl plot_arm.ncl -${POSTRUN} display visu_ARM.000001.png -${POSTRUN} display visu_ARM.000002.png -${POSTRUN} display visu_ARM.000003.png -${POSTRUN} display visu_ARM.000004.png -${POSTRUN} display visu_ARM.000005.png -${POSTRUN} display visu_ARM.000006.png -${POSTRUN} display visu_ARM.000007.png -${POSTRUN} display visu_ARM.000008.png -${POSTRUN} display visu_ARM.000009.png -${POSTRUN} display visu_ARM.000010.png -${POSTRUN} display visu_ARM.000011.png -${POSTRUN} display visu_ARM.000012.png -${POSTRUN} display visu_ARM.000013.png -${POSTRUN} display visu_ARM.000014.png -${POSTRUN} display visu_ARM.000015.png -${POSTRUN} display visu_ARM.000016.png -${POSTRUN} display visu_ARM.000017.png -${POSTRUN} display visu_ARM.000018.png -${POSTRUN} display visu_ARM.000019.png -${POSTRUN} display visu_ARM.000020.png -${POSTRUN} display visu_ARM.000021.png -${POSTRUN} display visu_ARM.000022.png -${POSTRUN} display visu_ARM.000023.png -${POSTRUN} display visu_ARM.000024.png -exit 0 diff --git a/MY_RUN/KTEST/005_ARM/Makefile b/MY_RUN/KTEST/005_ARM/Makefile index 15aadf169..ea3b47d02 100644 --- a/MY_RUN/KTEST/005_ARM/Makefile +++ b/MY_RUN/KTEST/005_ARM/Makefile @@ -1,11 +1,9 @@ all: cd 001_prep_ideal && run_prep_ideal_case_xyz cd 002_mesonh && run_mesonh_xyz - cd 003_diaprog && run_diaprog - cd 004_ncl && run_ncl + cd 003_python && run_python clean: cd 001_prep_ideal && clean_prep_ideal_case_xyz cd 002_mesonh && clean_mesonh_xyz - cd 003_diaprog && clean_diaprog - cd 004_ncl && clean_ncl + cd 003_python && clean_python diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/clean_mesonh_xyz b/MY_RUN/KTEST/007_16janvier/008_run2/clean_mesonh_xyz index 5311f8a7d..c3956ffac 100755 --- a/MY_RUN/KTEST/007_16janvier/008_run2/clean_mesonh_xyz +++ b/MY_RUN/KTEST/007_16janvier/008_run2/clean_mesonh_xyz @@ -1,5 +1,5 @@ #!/bin/bash set -x -rm -f 16JAN* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex +rm -f 16JAN* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex REMAP* rm -f EXSEG?.nam PRESSURE file_for_xtransfer diff --git a/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam1 b/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam1 index 910e33544..599bd73b5 100644 --- a/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam1 +++ b/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam1 @@ -19,7 +19,9 @@ LHU_FLX=T,LTRAJ=T, LCLD_COV=T, NCAPE=1, LRADAR=T, - LDIAG(:)=.FALSE. / + LDIAG(:)=.FALSE., + LISOAL=T, XISOAL(1)=9000, + LISOPR=T, XISOPR(1)=850, XISOPR(2)=700 / &NAM_DIAG_FILE YINIFILE(1) = "16JAN.1.12B18.001" , YINIFILEPGD(1) = "16JAN98_36km.neste1", YSUFFIX='dg' / diff --git a/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam2 b/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam2 index a621eff49..71020a0a8 100644 --- a/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam2 +++ b/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam2 @@ -19,7 +19,9 @@ LHU_FLX=T,LTRAJ=T, LCLD_COV=T, NCAPE=1, LRADAR=T, - LDIAG(:)=.FALSE. / + LDIAG(:)=.FALSE., + LISOAL=T, XISOAL(1)=9000, + LISOPR=T, XISOPR(1)=850, XISOPR(2)=700 / &NAM_DIAG_FILE YINIFILE(1) = "16JAN.2.12B18.001" , YINIFILEPGD(1) ="16JAN98_9km.neste1", YSUFFIX='dg' / diff --git a/MY_RUN/KTEST/007_16janvier/010_conv2dia/clean_conv2dia b/MY_RUN/KTEST/007_16janvier/010_conv2dia/clean_conv2dia deleted file mode 100755 index ef0cd032d..000000000 --- a/MY_RUN/KTEST/007_16janvier/010_conv2dia/clean_conv2dia +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -set -x -rm -f 16JAN* -rm -f dirconv FICJD LISTING_DIA OUT_DIA pipe_name diff --git a/MY_RUN/KTEST/007_16janvier/010_conv2dia/dir_conv2dia1 b/MY_RUN/KTEST/007_16janvier/010_conv2dia/dir_conv2dia1 deleted file mode 100644 index a0e51e0a6..000000000 --- a/MY_RUN/KTEST/007_16janvier/010_conv2dia/dir_conv2dia1 +++ /dev/null @@ -1,6 +0,0 @@ -1 -16JAN.1.12B18.001dg -16JAN.1.12B18.001cv -n -n -0 diff --git a/MY_RUN/KTEST/007_16janvier/010_conv2dia/dir_conv2dia2 b/MY_RUN/KTEST/007_16janvier/010_conv2dia/dir_conv2dia2 deleted file mode 100644 index 4787f9a32..000000000 --- a/MY_RUN/KTEST/007_16janvier/010_conv2dia/dir_conv2dia2 +++ /dev/null @@ -1,6 +0,0 @@ -1 -16JAN.2.12B18.001dg -16JAN.2.12B18.001cv -n -n -0 diff --git a/MY_RUN/KTEST/007_16janvier/010_conv2dia/run_conv2dia b/MY_RUN/KTEST/007_16janvier/010_conv2dia/run_conv2dia deleted file mode 100755 index d6fd02063..000000000 --- a/MY_RUN/KTEST/007_16janvier/010_conv2dia/run_conv2dia +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -#MNH_LIC for details. version 1. -set -x -set -e -ln -sf ../009_diag/16JAN.?.12B18.001dg.{des,lfi,nc} . -rm -f 16JAN.?.12B18.001cv.{des,lfi,nc} -${POSTRUN} conv2dia < dir_conv2dia1 -${POSTRUN} conv2dia < dir_conv2dia2 - diff --git a/MY_RUN/KTEST/007_16janvier/010_python/clean_python b/MY_RUN/KTEST/007_16janvier/010_python/clean_python new file mode 100644 index 000000000..d75604a6a --- /dev/null +++ b/MY_RUN/KTEST/007_16janvier/010_python/clean_python @@ -0,0 +1,4 @@ +#!/bin/bash +rm -f *.png *.pdf *.nc +rm -Rf __pycache__ +find . -type l -delete diff --git a/MY_RUN/KTEST/007_16janvier/010_python/plot_007_16janvier.py b/MY_RUN/KTEST/007_16janvier/010_python/plot_007_16janvier.py new file mode 100644 index 000000000..fb752db60 --- /dev/null +++ b/MY_RUN/KTEST/007_16janvier/010_python/plot_007_16janvier.py @@ -0,0 +1,113 @@ +#!/usr/bin/env python3 +""" +@author: Quentin Rodier +Creation : 07/01/2021 + +Last modifications +""" +import matplotlib as mpl +mpl.use('Agg') +import cartopy.crs as ccrs +from read_MNHfile import read_netcdf +from Panel_Plot import PanelPlot +import os + +os.system('rm -f tempgraph*') +# +# User's parameter / Namelist +# +# +output_name = '007_16janvier.pdf' #Name of the output PDF file +path="" +LnameFiles = ['16JAN.1.12B18.001dg.nc', '16JAN.2.12B18.001dg.nc'] + +Dvar_input = { +'f1':['MRV700HPA','THT850HPA','UT850HPA','VT850HPA','UT700HPA','VT700HPA', 'ALT_PRESSURE','ALT_U','ALT_V', 'ZS', 'latitude', 'longitude'], +'f2':['MRV700HPA','THT850HPA','UT850HPA','VT850HPA','UT700HPA','VT700HPA', 'ALT_PRESSURE', 'ZS', 'ALT_U','ALT_V','latitude', 'longitude'] +} + +# Read the variables in the files +Dvar = {} +Dvar = read_netcdf(LnameFiles, Dvar_input, path=path, removeHALO=True) + +################################################################ +######### PANEL 1 +############################################################### +Panel1 = PanelPlot(2,2, [20,20],'007_janvier domaine 1 16JAN.1.12B18.001dg.nc') + +Lplot = [ Dvar['f1']['ZS'],Dvar['f1']['THT850HPA'], Dvar['f1']['MRV700HPA'],Dvar['f1']['ALT_PRESSURE']] +lon = [Dvar['f1']['longitude']]*len(Lplot) +lat = [Dvar['f1']['latitude']]*len(Lplot) +Ltitle = ['Orography', 'Potential Temperature at 850hPa', 'Water vapor mixing at 700hPa','Pressure at z = 9000m'] +Lcbarlabel = ['(m)','(K)', 'g/kg', 'hPa'] +Lxlab = ['longitude']*len(Lplot) +Lylab = ['latitude']*len(Lplot) +Lminval = [0, 285, 0.9, 286] +Lmaxval = [300, 289, 2.6, 294] +Lstep = [10, 0.25, 0.1, 0.4] +Lstepticks = [50, 1, 0.2, 0.4] +Lfacconv = [1.0, 1.0, 1.0, 1./100.0] +Lcolormap = ['terrain', 'gist_rainbow_r', 'gist_rainbow_r', 'gist_rainbow_r'] +Lprojection = [ccrs.PlateCarree()]*len(Lplot) +Llvl = [0, 0, 0, 0] +fig1 = Panel1.psectionH(lon=lon, lat=lat, Lvar=Lplot, Lcarte=[], Llevel=Llvl, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lproj=Lprojection, Lfacconv=Lfacconv) + +Lplot1 = [ Dvar['f1']['UT850HPA'], Dvar['f1']['UT700HPA'], Dvar['f1']['ALT_U']] +Lplot2 = [ Dvar['f1']['VT850HPA'], Dvar['f1']['VT700HPA'], Dvar['f1']['ALT_V']] +Ltitle = ['Wind at 850hPa', 'Wind at 700hPa', 'Wind at 9000m'] +Lxlab = ['longitude']*len(Lplot) +Lylab = ['latitude']*len(Lplot) +Llegendval = [20,20,40] +Lcbarlabel = ['(m/s)']*len(Lplot) +Larrowstep = [2]*len(Lplot) +Lwidth = [0.002]*len(Lplot) +Lcolor = ['black']*len(Lplot) +Lprojection = [ccrs.PlateCarree()]*len(Lplot) +Llvl = [0]*len(Lplot) +fig2 = Panel1.pvector(Lxx=lon, Lyy=lat, Lvar1=Lplot1, Lvar2=Lplot2, Lcarte=[], Llevel=Llvl, Lxlab=Lxlab, Lylab=Lylab, + Ltitle=Ltitle, Lwidth=Lwidth, Larrowstep=Larrowstep, Lproj=Lprojection, + Lcolor=Lcolor, Llegendval=Llegendval, Lcbarlabel=Lcbarlabel, Lid_overlap=[2,4,6], ax=fig1.axes) + +Panel1.save_graph(1,fig2) + +################################################################ +######### PANEL 2 +############################################################### +Panel2 = PanelPlot(2,2, [20,20],'007_janvier domaine 2 16JAN.1.12B18.001dg.nc') + +Lplot = [ Dvar['f2']['ZS'],Dvar['f2']['THT850HPA'], Dvar['f2']['MRV700HPA'],Dvar['f2']['ALT_PRESSURE']] +lon = [Dvar['f2']['longitude']]*len(Lplot) +lat = [Dvar['f2']['latitude']]*len(Lplot) +Ltitle = ['Orography', 'Potential Temperature at 850hPa', 'Water vapor mixing at 700hPa','Pressure at z = 9000m'] +Lbarlabel = ['(m)','(K)', 'g/kg', 'hPa'] +Lxlab = ['longitude']*len(Lplot) +Lylab = ['latitude']*len(Lplot) +Lminval = [0, 285, 0.9, 286] +Lmaxval = [300, 289, 2.6, 294] +Lstep = [10, 0.25, 0.1, 0.4] +Lstepticks = [50, 1, 0.2, 0.4] +Lfacconv = [1.0, 1.0, 1.0, 1./100.0] +Lcolormap = ['terrain', 'gist_rainbow_r', 'gist_rainbow_r', 'gist_rainbow_r'] +Lprojection = [ccrs.PlateCarree()]*len(Lplot) +Llvl = [0]*len(Lplot) +fig1 = Panel2.psectionH(lon=lon, lat=lat, Lvar=Lplot, Lcarte=[], Llevel=Llvl, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lproj=Lprojection, Lfacconv=Lfacconv) + +Lplot1 = [ Dvar['f2']['UT850HPA'], Dvar['f2']['UT700HPA'], Dvar['f2']['ALT_U']] +Lplot2 = [ Dvar['f2']['VT850HPA'], Dvar['f2']['VT700HPA'], Dvar['f2']['ALT_V']] +Ltitle = ['Wind at 850hPa', 'Wind at 700hPa', 'Wind at 9000m'] +Llegendval = [20,20,40] +Lxlab = ['longitude']*len(Lplot) +Lylab = ['latitude']*len(Lplot) +Lbarlabel = ['(m/s)']*len(Lplot) +Larrowstep = [2]*len(Lplot) +Lwidth = [0.002]*len(Lplot) +Lcolor = ['black']*len(Lplot) +Lprojection = [ccrs.PlateCarree()]*len(Lplot) +Llvl = [0]*len(Lplot) +fig2 = Panel2.pvector(Lxx=lon, Lyy=lat, Lvar1=Lplot1, Lvar2=Lplot2, Lcarte=[], Llevel=Llvl, Lxlab=Lxlab, Lylab=Lylab, + Ltitle=Ltitle, Lwidth=Lwidth, Larrowstep=Larrowstep, Lproj=Lprojection, + Lcolor=Lcolor, Llegendval=Llegendval, Lcbarlabel=Lcbarlabel, Lid_overlap=[2,4,6], ax=fig1.axes) + +Panel2.save_graph(2,fig2) diff --git a/MY_RUN/KTEST/007_16janvier/010_python/run_python b/MY_RUN/KTEST/007_16janvier/010_python/run_python new file mode 100644 index 000000000..89305077f --- /dev/null +++ b/MY_RUN/KTEST/007_16janvier/010_python/run_python @@ -0,0 +1,13 @@ +#!/bin/bash +#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC for details. version 1. +set -x +set -e +ln -sf ${SRC_MESONH}/src/LIB/Python/* . +ln -sf ../009_diag/16JAN.*.12B18.001dg.nc . + +python3 plot_007_16janvier.py +${POSTRUN} convert *.png 007_16janvier.pdf +${POSTRUN} evince 007_16janvier.pdf diff --git a/MY_RUN/KTEST/007_16janvier/011_diaprog/clean_diaprog b/MY_RUN/KTEST/007_16janvier/011_diaprog/clean_diaprog deleted file mode 100755 index c0d458141..000000000 --- a/MY_RUN/KTEST/007_16janvier/011_diaprog/clean_diaprog +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -set -x -rm -f dir.* gmeta 16JAN* OUT_DIA diff --git a/MY_RUN/KTEST/007_16janvier/011_diaprog/dir_16janv b/MY_RUN/KTEST/007_16janvier/011_diaprog/dir_16janv deleted file mode 100644 index 8c12e7a0c..000000000 --- a/MY_RUN/KTEST/007_16janvier/011_diaprog/dir_16janv +++ /dev/null @@ -1,24 +0,0 @@ -LINVWB=T NIGRNC=5 nhi=0 lminmax=t xsizel=0.015 -NISKIP=4 XVRL=0.1 -_file1_'16JAN.1.12B18.001cv' -_file2_'16JAN.2.12B18.001cv' -visu -print groups -LCOLINE=T -_file1_ -ZS -LCOLAREA=T LISO=F -LCOLZERO=T NCOLZERO=1 -LCOLZERO=F -NIMNMX=0 XDIAINT_THT=1. -THT_PR_850_ON_UTVT_PR_850 -NIMNMX=-1 -RVT(*1000)_PR_700 -PABST_Z_9000_ON_UTVT_Z_9000 -_file2_ -NIMNMX=0 XDIAINT_THT=1. -THT_PR_850_ON_UTVT_PR_850 -NIMNMX=-1 -RVT(*1000)_PR_700 -PABST_Z_9000_ON_UTVT_Z_9000 -quit diff --git a/MY_RUN/KTEST/007_16janvier/011_diaprog/run_diaprog b/MY_RUN/KTEST/007_16janvier/011_diaprog/run_diaprog deleted file mode 100755 index 4fec27faf..000000000 --- a/MY_RUN/KTEST/007_16janvier/011_diaprog/run_diaprog +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -#MNH_LIC for details. version 1. -set -x -set -e -ln -sf ../010_conv2dia/16JAN.?.12B18.001cv.{des,lfi} . -rm -f dir.0* -${POSTRUN} diaprog < dir_16janv - diff --git a/MY_RUN/KTEST/007_16janvier/Makefile b/MY_RUN/KTEST/007_16janvier/Makefile index aecb1327b..bd6cc9597 100644 --- a/MY_RUN/KTEST/007_16janvier/Makefile +++ b/MY_RUN/KTEST/007_16janvier/Makefile @@ -1,10 +1,10 @@ -all: E001_pgd1 E002_pgd2 E003_nest E004_arp2lfi E005_spa_mod1_mod2 E006_preal E008_run2 E009_diag E010_conv2dia E011_diaprog E011_ncl E012_spectre +all: E001_pgd1 E002_pgd2 E003_nest E004_arp2lfi E005_spa_mod1_mod2 E006_preal E008_run2 E009_diag E010_python E011_ncl E012_spectre all_ncl_nc4: E001_pgd1 E002_pgd2 E003_nest E004_arp2lfi E005_spa_mod1_mod2 E006_preal E008_run2 E009_diag E011_ncl_nc4 -all_ncl_lfi2cdf: E001_pgd1 E002_pgd2 E003_nest E004_arp2lfi E005_spa_mod1_mod2 E006_preal E008_run2 E009_diag E010_conv2dia E011_ncl_lfi2cdf +all_ncl_lfi2cdf: E001_pgd1 E002_pgd2 E003_nest E004_arp2lfi E005_spa_mod1_mod2 E006_preal E008_run2 E009_diag E010_python E011_ncl_lfi2cdf -all_ncl_extractdia: E001_pgd1 E002_pgd2 E003_nest E004_arp2lfi E005_spa_mod1_mod2 E006_preal E008_run2 E009_diag E010_conv2dia E011_ncl_extractdia +all_ncl_extractdia: E001_pgd1 E002_pgd2 E003_nest E004_arp2lfi E005_spa_mod1_mod2 E006_preal E008_run2 E009_diag E010_python E011_ncl_extractdia E001_pgd1 : cd 001_pgd1 && get_pgd_files @@ -23,10 +23,8 @@ E008_run2: cd 008_run2 && run_mesonh_xyz E009_diag: cd 009_diag && run_diag_xyz -E010_conv2dia: - cd 010_conv2dia && run_conv2dia -E011_diaprog: - cd 011_diaprog && run_diaprog +E010_python: + cd 010_python && run_python E011_ncl: cd 011_ncl && run_ncl E011_ncl_nc4: @@ -47,8 +45,7 @@ clean: cd 006_preal && clean_preal_xyz cd 008_run2 && clean_mesonh_xyz cd 009_diag && clean_diag_xyz - cd 010_conv2dia && clean_conv2dia - cd 011_diaprog && clean_diaprog + cd 010_python && clean_python cd 011_ncl_lfi2cdf && clean_ncl cd 011_ncl_extractdia && clean_ncl cd 011_ncl_nc4 && clean_ncl diff --git a/MY_RUN/KTEST/009_ICARTT/003_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/009_ICARTT/003_mesonh/clean_mesonh_xyz index 9db6cfa78..d8301acbd 100755 --- a/MY_RUN/KTEST/009_ICARTT/003_mesonh/clean_mesonh_xyz +++ b/MY_RUN/KTEST/009_ICARTT/003_mesonh/clean_mesonh_xyz @@ -1,6 +1,6 @@ #!/bin/bash set -x -rm -f ICART* CPLCH* OUTPUT_LISTING* pipe* +rm -f ICART* CPLCH* OUTPUT_LISTING* pipe* REMAP* rm -f EXSEG?.nam PRESSURE file_for_xtransfer rm -f DATAE1 DATAJ1 DATAS1 diff --git a/MY_RUN/KTEST/009_ICARTT/005_python/clean_python b/MY_RUN/KTEST/009_ICARTT/005_python/clean_python new file mode 100644 index 000000000..d75604a6a --- /dev/null +++ b/MY_RUN/KTEST/009_ICARTT/005_python/clean_python @@ -0,0 +1,4 @@ +#!/bin/bash +rm -f *.png *.pdf *.nc +rm -Rf __pycache__ +find . -type l -delete diff --git a/MY_RUN/KTEST/009_ICARTT/005_python/plot_009_ICARTT.py b/MY_RUN/KTEST/009_ICARTT/005_python/plot_009_ICARTT.py new file mode 100644 index 000000000..abe8bf239 --- /dev/null +++ b/MY_RUN/KTEST/009_ICARTT/005_python/plot_009_ICARTT.py @@ -0,0 +1,119 @@ +#!/usr/bin/env python3 +""" +@author: Quentin Rodier +Creation : 07/01/2021 + +Last modifications +""" +import matplotlib as mpl +mpl.use('Agg') +from read_MNHfile import read_netcdf +from Panel_Plot import PanelPlot +import cartopy.crs as ccrs +import os +import numpy as np + +os.system('rm -f tempgraph*') +# +# User's parameter / Namelist +# +output_name = '009_ICARTT.pdf' #Name of the output PDF file +path="" + +LnameFiles = ['ICART.1.SEG01.001dg.nc', 'ICART.1.SEG01.002dg.nc'] + +Dvar_input = { +'f1':['MRC','COT','O3T','O3_PROD','O3_LOSS','CO_PROD','CO_LOSS','level','ZTOP', 'longitude','latitude','level_w','time', + 'CO_BUDGET','O3_BUDGET','O3_CHREACLIST','CO_CHREACLIST'], +'f2':['MRC','COT','O3T','O3_PROD','O3_LOSS','CO_PROD','CO_LOSS','level','ZTOP', 'longitude','latitude','level_w','time', + 'CO_BUDGET','O3_BUDGET','O3_CHREACLIST','CO_CHREACLIST'] +} +# Read the variables in the files +Dvar = {} +Dvar = read_netcdf(LnameFiles, Dvar_input, path=path, removeHALO=True) + +################################################################ +######### PANEL 1 # Horizontal cross-section +############################################################### +Panel1 = PanelPlot(3,3, [25,17],'Horizontal section at 1150m, 19h', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.01, colorbaraspect=40, labelcolorbarpad = 13) + + +Lplot = [ Dvar['f1']['MRC'][:,:,:], Dvar['f1']['COT'][:,:,:], Dvar['f1']['O3T'][:,:,:], Dvar['f1']['O3_PROD'][:,:,:], + Dvar['f1']['O3_LOSS'][:,:,:], Dvar['f1']['CO_PROD'][:,:,:], Dvar['f1']['CO_LOSS'][:,:,:]] + +LaxeX = [Dvar['f1']['longitude']]*len(Lplot) +LaxeY = [Dvar['f1']['latitude']]*len(Lplot) +Ltitle = ['Cloud mixing ratio', 'Carbon monoxyde CO ','Ozone O3', 'Ozone production', 'Ozone destruction','Carbon monoxyde production','Carbon monoxyde destruction'] +Lcbarlabel = ['g/kg', 'ppbv','ppbv','ppbv/h','ppbv/h','ppbv/h','ppbv/h'] +Lylab = ['latitude']*len(Lplot) +Lminval = [ 0, 107.5, 0, 70, 70, 0.5, 0.5 ] +Lmaxval = [ 0.2, 137.5, 70, 130, 130, 1.7, 1.7 ] +Lstep = [ 0.01, 2.5, 5, 5, 5, 0.1, 0.1] +Lstepticks = Lstep +Lfacconv = [ 1, 1, 1, 1e9*3600, 1e9*3600,1e9*3600, 1e9*3600] +Lcolormap = ['gist_ncar']*len(Lplot) +Llvl = [14]*len(Lplot) +LaddWhite_cm = [True, False, False, False, False, False, False] +Lprojection = [ccrs.PlateCarree()]*len(Lplot) + +fig1 = Panel1.psectionH(lon=LaxeX, lat=LaxeY, Lvar=Lplot, Llevel=Llvl,Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv, + colorbar=True, LaddWhite_cm=LaddWhite_cm, Lproj=Lprojection) + +Panel1.save_graph(1,fig1) + +################################################################ +######### PANEL 2 # Horizontal cross-section +############################################################### +Panel2 = PanelPlot(3,3, [25,17],'Horizontal section at 1150m, 20h', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.01, colorbaraspect=40, labelcolorbarpad = 13) + + +Lplot = [ Dvar['f2']['MRC'][:,:,:], Dvar['f2']['COT'][:,:,:], Dvar['f2']['O3T'][:,:,:], Dvar['f2']['O3_PROD'][:,:,:], + Dvar['f2']['O3_LOSS'][:,:,:], Dvar['f2']['CO_PROD'][:,:,:], Dvar['f2']['CO_LOSS'][:,:,:]] + +fig2 = Panel2.psectionH(lon=LaxeX, lat=LaxeY, Lvar=Lplot, Llevel=Llvl,Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv, + colorbar=True, LaddWhite_cm=LaddWhite_cm, Lproj=Lprojection) + +Panel2.save_graph(2,fig2) + +################################################################ +######### PANEL 3 # Bar plots Budget chemical reactions +############################################################### +Dvar['f1']['CO_BUDGET_mean'] = np.mean(Dvar['f1']['CO_BUDGET'][:,13,:,:],axis=(1,2)) # {x,y} Average on height = 1150m +Dvar['f1']['O3_BUDGET_mean'] = np.mean(Dvar['f1']['O3_BUDGET'][:,13,:,:],axis=(1,2)) # {x,y} Average on height = 1150m +Dvar['f2']['CO_BUDGET_mean'] = np.mean(Dvar['f2']['CO_BUDGET'][:,13,:,:],axis=(1,2)) # {x,y} Average on height = 1150m +Dvar['f2']['O3_BUDGET_mean'] = np.mean(Dvar['f2']['O3_BUDGET'][:,13,:,:],axis=(1,2)) # {x,y} Average on height = 1150m + +Panel3 = PanelPlot(2,2, [20,20],'Chemical budgets', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.01, colorbaraspect=40, labelcolorbarpad = 13) + +Lplot = [Dvar['f1']['CO_BUDGET_mean'], Dvar['f1']['O3_BUDGET_mean'], Dvar['f2']['CO_BUDGET_mean'], Dvar['f2']['O3_BUDGET_mean'] ] +Lbins=[Dvar['f1']['CO_CHREACLIST'], Dvar['f1']['O3_CHREACLIST'],Dvar['f2']['CO_CHREACLIST'], Dvar['f2']['O3_CHREACLIST']] +Ltitle = ['Carbon monoxyde CO chemical reactions', 'Ozone O3 chemical reactions']*2 +Lylab = ['Budget (ppbv/h)']*len(Lplot) +Ltime = [Dvar['f1']['time'], Dvar['f1']['time'], Dvar['f2']['time'], Dvar['f2']['time']] +Lylim=[(-1,1), (-100, 100)]*2 +Lfacconv = [1E9*3600]*len(Lplot) +Lwidth=[0.95]*len(Lplot) +Lcolors=[] +for var in Lplot: + cc=['']*len(var) + for n,val in enumerate(var): + if val<0: + cc[n]='blue' + elif val>=0: + cc[n]='red' + Lcolors.append(cc) + +fig3 = Panel3.pXY_bar(Lbins=Lbins, Lvar=Lplot, Lylim=Lylim, Lfacconv=Lfacconv, Ltitle=Ltitle, Lylab=Lylab, Lcolor=Lcolors, Lwidth=Lwidth, Ltime=Ltime) + +# Handle a new axis at y=0 for each graphs +for i,var in enumerate(Lplot): + ax2 = fig3.axes[i].twinx() # Clone the existing axis + ax2_x = ax2.get_xaxis() + ax2_x.set_label('Chemical reactions') + ax2_y = ax2.get_yaxis() # Get the new Y axe and hide it + ax2_y.set_visible(False) + fig3.axes[i].spines['bottom'].set_position('center') # Move the original axis to the center + +Panel3.save_graph(3,fig3) diff --git a/MY_RUN/KTEST/009_ICARTT/005_python/run_python b/MY_RUN/KTEST/009_ICARTT/005_python/run_python new file mode 100644 index 000000000..bd4f5af3e --- /dev/null +++ b/MY_RUN/KTEST/009_ICARTT/005_python/run_python @@ -0,0 +1,13 @@ +#!/bin/bash +#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC for details. version 1. +set -x +set -e +ln -sf ${SRC_MESONH}/src/LIB/Python/* . +ln -sf ../004_diag/ICART.1.SEG01.00*dg.nc . + +python3 plot_009_ICARTT.py +${POSTRUN} convert *.png 009_ICARTT.pdf +${POSTRUN} evince 009_ICARTT.pdf diff --git a/MY_RUN/KTEST/009_ICARTT/Makefile b/MY_RUN/KTEST/009_ICARTT/Makefile index 047047e15..91c67bdc9 100644 --- a/MY_RUN/KTEST/009_ICARTT/Makefile +++ b/MY_RUN/KTEST/009_ICARTT/Makefile @@ -1,4 +1,4 @@ -all: E001_pgd1 E002_arp2lfi E003_mesonh E004_diag E006_ncl +all: E001_pgd1 E002_arp2lfi E003_mesonh E004_diag E005_python E006_ncl E001_pgd1 : cd 001_pgd1 && get_chimie_files @@ -9,6 +9,9 @@ E003_mesonh: cd 003_mesonh && run_mesonh_xyz E004_diag: cd 004_diag && run_diag_xyz +E005_python: + cd 005_python && run_python + E006_ncl: cd 006_ncl && run_ncl @@ -17,5 +20,6 @@ clean: cd 002_arp2lfi && clean_arp2lfi_xyz cd 003_mesonh && clean_mesonh_xyz cd 004_diag && clean_diag_xyz + cd 005_python && clean_python cd 006_ncl && clean_ncl diff --git a/MY_RUN/KTEST/011_KW78CHEM/003_convdia/clean_conv2dia b/MY_RUN/KTEST/011_KW78CHEM/003_convdia/clean_conv2dia deleted file mode 100755 index 3e4536e70..000000000 --- a/MY_RUN/KTEST/011_KW78CHEM/003_convdia/clean_conv2dia +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -set -x -rm -f KWRAI.1.SEGCH.004.* -rm -f KWRAI.1.SEGCH.004dg.* -rm -f dirconv FICJD LISTING_DIA OUT_DIA pipe_name diff --git a/MY_RUN/KTEST/011_KW78CHEM/003_convdia/dir_conv2dia b/MY_RUN/KTEST/011_KW78CHEM/003_convdia/dir_conv2dia deleted file mode 100644 index e427dacf0..000000000 --- a/MY_RUN/KTEST/011_KW78CHEM/003_convdia/dir_conv2dia +++ /dev/null @@ -1,6 +0,0 @@ -1 -KWRAI.1.SEGCH.004 -KWRAI.1.SEGCH.004dg -n -n -0 diff --git a/MY_RUN/KTEST/011_KW78CHEM/003_convdia/run_conv2dia b/MY_RUN/KTEST/011_KW78CHEM/003_convdia/run_conv2dia deleted file mode 100755 index 15dbc6fa0..000000000 --- a/MY_RUN/KTEST/011_KW78CHEM/003_convdia/run_conv2dia +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -#MNH_LIC for details. version 1. -set -x -set -e -ln -sf ../002_mesonh/KWRAI.1.SEGCH.004.{des,lfi,nc} . -rm -f KWRAI.1.SEGCH.004dg.{des,lfi,nc} -${POSTRUN} conv2dia < dir_conv2dia - diff --git a/MY_RUN/KTEST/011_KW78CHEM/003_diag/DIAG1.nam b/MY_RUN/KTEST/011_KW78CHEM/003_diag/DIAG1.nam new file mode 100644 index 000000000..4ddee99a9 --- /dev/null +++ b/MY_RUN/KTEST/011_KW78CHEM/003_diag/DIAG1.nam @@ -0,0 +1,14 @@ +&NAM_CONFIO LCDF4=T, LLFIOUT=F, LLFIREAD=F / +&NAM_CONFZ + ! NZ_VERB=5 , NZ_PROC=0 , NB_PROCIO_R=8 , NB_PROCIO_W=1 +/ +&NAM_DIAG + LCLSTR=T, + LBOTUP=T, + CFIELD='W', + XTHRES=10., + LISOAL=T, XISOAL(1)=3000, XISOAL(2)=5000 + / +&NAM_DIAG_FILE YINIFILE(1) = "KWRAI.1.SEGCH.004" , + YSUFFIX='dg' / + diff --git a/MY_RUN/KTEST/011_KW78CHEM/003_diag/clean_diag_xyz b/MY_RUN/KTEST/011_KW78CHEM/003_diag/clean_diag_xyz new file mode 100644 index 000000000..19b1bf34e --- /dev/null +++ b/MY_RUN/KTEST/011_KW78CHEM/003_diag/clean_diag_xyz @@ -0,0 +1,5 @@ +#!/bin/bash +set -x +rm -f KWRAI* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex +rm -f file_for_xtransfer + diff --git a/MY_RUN/KTEST/011_KW78CHEM/003_diag/diag.nam b/MY_RUN/KTEST/011_KW78CHEM/003_diag/diag.nam new file mode 100644 index 000000000..a1252a72b --- /dev/null +++ b/MY_RUN/KTEST/011_KW78CHEM/003_diag/diag.nam @@ -0,0 +1,12 @@ + +exemple 1, identification des ascendances > 10 m/s + +&NAM_DIAG LCLSTR = T, LBOTUP = T, CFIELD = "W", XTHRES = 10. / + + + +exemple 2, identification des overshoots + +&NAM_DIAG LCLSTR = T, LBOTUP = F, CFIELD = "CLOUD", XTHRES = 0.00001 / + +NB: par défaut CLOUD prend en compte Rc+Ri+Rs+Rg i.e. cloud water and ice, graupel and snow diff --git a/MY_RUN/KTEST/003_KW78/003_convdia/run_conv2dia b/MY_RUN/KTEST/011_KW78CHEM/003_diag/run_diag_xyz old mode 100755 new mode 100644 similarity index 67% rename from MY_RUN/KTEST/003_KW78/003_convdia/run_conv2dia rename to MY_RUN/KTEST/011_KW78CHEM/003_diag/run_diag_xyz index 60db55d10..2d50f858e --- a/MY_RUN/KTEST/003_KW78/003_convdia/run_conv2dia +++ b/MY_RUN/KTEST/011_KW78CHEM/003_diag/run_diag_xyz @@ -5,7 +5,11 @@ #MNH_LIC for details. version 1. set -x set -e -ln -sf ../002_mesonh/KWRAI.1.SEG01.004.{des,lfi,nc} . -rm -f KWRAI.1.SEG01.004dg.{des,lfi,nc} -${POSTRUN} conv2dia < dir_conv2dia +rm -f KWRAI* OUT* +# +# +ln -sf ../002_mesonh/KWRAI.1.SEGCH.004.*des . +ln -sf ../002_mesonh/KWRAI.1.SEGCH.004.*nc . + +time ${MPIRUN} DIAG${XYZ} diff --git a/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/clean_diaprog b/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/clean_diaprog deleted file mode 100755 index 9a215110f..000000000 --- a/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/clean_diaprog +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -set -x -rm -f dir.* gmeta KWRAI.1.SEGCH.00* OUT_DIA diff --git a/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/dir_KW78_chem b/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/dir_KW78_chem deleted file mode 100644 index 834ade876..000000000 --- a/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/dir_KW78_chem +++ /dev/null @@ -1,65 +0,0 @@ -visu -! directives de presentation -LINVWB=T NIGRNC=10 nhi=0 lminmax=t xsizel=0.015 -! plages de couleur, pas d isolignes -LCOLAREA=T LISO=F -! gestion des vecteurs (1 vecteur sur 4) -NISKIP=4 XVRL=0.15 -! 1er fichier a ouvrir -_file1_'KWRAI.1.SEGCH.004dg' -! couleur de fond pour le 1er intervalle -LCOLZERO=T NCOLZERO=1 -! precipitations explicites instantanees -INPRR -! precipitations explicites cumulees -ACPRR -! trace de tous les vecteurs -NISKIP=1 -! superposition de la pression et des vecteurs de vent au niveau K=2 -PABST_K_2_ON_UTVT_K_2 -! superposition du rapport d eau nuageuse et des vecteurs vent a 3000m -RCT_Z_3000_ON_UTVT_Z_3000 -! superposition du rapport d eau nuageuse et des vecteurs vent a 5000m -RCT_Z_5000_ON_UTVT_Z_5000 -! concentration CO et ozone à 3000m -COT_Z_3000 -O3T_Z_3000 -! concentration CO et ozone à 5000m -COT_Z_5000 -O3T_Z_5000 -! definition d une coupe verticale -NIDEBCOU=5 NJDEBCOU=2 NLANGLE=47 NLMAX=21 -! trace de la coupe verticale dans le plan horizontal -LTRACECV=T -! rapport de vapeur et vecteurs vent dans la coupe verticale -RVT_CV__ON_ULTWT_CV_ -! plus de trace de la coupe verticale -LTRACECV=F -! rapport de melange d eau nuageuse et rapport d eau de pluie -RCT_CV__ON_RRT_CV_ -! difference pour la temperature potentielle avec le champ initial -THT_CV__MINUS_LSTHM_CV_ -! vitesse verticale en coupe verticale -WT_CV_ -! concentration CO en coupe verticale -COT_CV_ -! concentration HCHO en coupe verticale -HCHOT_CV_ -WC_HCHOT_CV__ON_RCT_CV_ -WR_HCHOT_CV__ON_RRT_CV_ -IC_HCHOT_CV__ON_RST_PLUS_RGT_CV_ -! concentration SO2 en coupe verticale -SO2T_CV_ -WC_SO2T_CV__ON_RCT_CV_ -WR_SO2T_CV__ON_RRT_CV_ -IC_SO2T_CV__ON_RST_PLUS_RGT_CV_ -! concentration HNO3 en coupe verticale -HNO3T_CV_ -WC_HNO3T_CV__ON_RCT_CV_ -WR_HNO3T_CV__ON_RRT_CV_ -IC_HNO3T_CV__ON_RST_PLUS_RGT_CV_ -! PH nuage et pluie en coupe verticale -PHC_CV_ -PHR_CV_ -quit - diff --git a/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/run_diaprog b/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/run_diaprog deleted file mode 100755 index 307811a8f..000000000 --- a/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/run_diaprog +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -#MNH_LIC for details. version 1. -set -x -set -e -ln -sf ../003_convdia/KWRAI.1.SEGCH.004dg.{des,lfi} . -rm -f dir.* -${POSTRUN} diaprog < dir_KW78_chem -#idt gmeta diff --git a/MY_RUN/KTEST/011_KW78CHEM/004_python/clean_python b/MY_RUN/KTEST/011_KW78CHEM/004_python/clean_python new file mode 100644 index 000000000..d75604a6a --- /dev/null +++ b/MY_RUN/KTEST/011_KW78CHEM/004_python/clean_python @@ -0,0 +1,4 @@ +#!/bin/bash +rm -f *.png *.pdf *.nc +rm -Rf __pycache__ +find . -type l -delete diff --git a/MY_RUN/KTEST/011_KW78CHEM/004_python/plot_011_KW78CHEM.py b/MY_RUN/KTEST/011_KW78CHEM/004_python/plot_011_KW78CHEM.py new file mode 100644 index 000000000..5fe37d73f --- /dev/null +++ b/MY_RUN/KTEST/011_KW78CHEM/004_python/plot_011_KW78CHEM.py @@ -0,0 +1,297 @@ +#!/usr/bin/env python3 +""" + +@author: Quentin Rodier +Creation : 07/01/2021 + +Last modifications +""" + +import matplotlib as mpl +mpl.use('Agg') +from read_MNHfile import read_netcdf +from Panel_Plot import PanelPlot +from misc_functions import oblique_proj, windvec_verti_proj, mean_operator +import os + +os.system('rm -f tempgraph*') +# +# User's parameter / Namelist +# +output_name = '011_KW78CHEM.pdf' #Name of the output PDF file +path="" +LnameFiles = ['KWRAI.1.SEGCH.004.nc','KWRAI.1.SEGCH.004dg.nc' ] + +Dvar_input = { +'f1':['ZS', 'UT','VT', 'WT','THT', + 'ni_u','nj_u','level','ZTOP', 'ni','nj','level_w','time', + 'INPRR','ACPRR','PABST','RCT','RVT','RRT','RGT', 'LSTHM', + 'COT','O3T','HCHOT','WC_HCHOT','IC_HCHOT', 'WR_HCHOT','SO2T','WC_SO2T','WR_SO2T', + 'IC_SO2T','HNO3T','WC_HNO3T','WR_HNO3T','IC_HNO3T','PHC','PHR',], +'f2':['ALT_CLOUD', 'ALT_U', 'ALT_V', 'ni','nj'] +} + +# Read the variables in the files +Dvar = {} +Dvar = read_netcdf(LnameFiles, Dvar_input, path=path, removeHALO=True) + +################################################################ +######### PANEL 1 +############################################################### +Panel1 = PanelPlot(2,3, [25,14],'', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.01) + +Lplot = [ Dvar['f1']['INPRR'], Dvar['f1']['ACPRR'], Dvar['f1']['PABST'],Dvar['f2']['ALT_CLOUD'],Dvar['f2']['ALT_CLOUD'] ] + +LaxeX = [Dvar['f1']['ni']]*len(Lplot) +LaxeY = [Dvar['f1']['nj']]*len(Lplot) +Ltitle = ['Instantaneous precipitation INPRR', 'Accumulated precipitation ACPRR','Absolute pressure','Mixing ratio of liquid droplets at z=3000m','Mixing ratio of liquid droplets at z=5000m' ] +Lcbarlabel = ['mm/h', 'mm','hPa','g/kg','g/kg'] +Lxlab = ['x (m)']*len(Lplot) +Lylab = ['y (m)']*len(Lplot) +Lminval = [0, 0, 982.25, 0, 0] +Lmaxval = [13.5, 0.36, 983.45, 2.5, 1.8] +Lstep = [0.5, 0.005, 0.05, 0.05, 0.05] +Lstepticks = [0.5, 0.02, 0.2, 0.5, 0.5] +Lfacconv = [1, 1, 1./100.0,1,1] +Lcolormap = ['gist_rainbow_r']*len(Lplot) +Llvl = [0,0,0,0,1] +Ltime = [Dvar['f1']['time']]*len(Lplot) +LaddWhite = [True]*len(Lplot) +Lpltype = ['cf']*len(Lplot) + +fig1 = Panel1.psectionH(lon=LaxeX, lat=LaxeY, Lvar=Lplot, Llevel=Llvl, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv, + Ltime=Ltime, LaddWhite_cm=LaddWhite) +fig1.tight_layout() + +# Wind vectors +Lplot1 = [ Dvar['f1']['UT'], Dvar['f2']['ALT_U'], Dvar['f2']['ALT_U']] +Lplot2 = [ Dvar['f1']['VT'], Dvar['f2']['ALT_V'], Dvar['f2']['ALT_V']] +Ltitle = ['Wind at K=2', 'Wind at 3000m', 'Wind at 5000m'] +Lxlab = ['x (m)']*len(Lplot) +Lylab = ['y (m)']*len(Lplot) +Llegendval = [10,10,10] +Lcbarlabel = ['m/s']*len(Lplot) +Larrowstep = [1]*len(Lplot) +Lwidth = [0.002]*len(Lplot) +Lcolor = ['black']*len(Lplot) +Llvl = [0,0,1] +lon = [Dvar['f1']['ni_u'], Dvar['f2']['ni'], Dvar['f2']['ni'] ] +lat = [Dvar['f1']['nj_u'], Dvar['f2']['nj'], Dvar['f2']['nj'] ] +Lscale = [200]*len(Lplot) +fig2 = Panel1.pvector(Lxx=lon, Lyy=lat, Lvar1=Lplot1, Lvar2=Lplot2, Lcarte=[500,23500,500,23500], Llevel=Llvl, + Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lwidth=Lwidth, Larrowstep=Larrowstep, + Lcolor=Lcolor, Llegendval=Llegendval, Lcbarlabel=Lcbarlabel, Lid_overlap=[4,6,8], ax=fig1.axes, Lscale=Lscale) +# Oblique projection +i_beg, j_beg = (2,0) +i_end, j_end = (21,22) +# Black line +Panel1.addLine(fig2.axes[6],[Dvar['f1']['ni'][i_beg],Dvar['f1']['nj'][j_beg]],[Dvar['f1']['ni'][i_end],Dvar['f1']['nj'][j_end]],'black',2) +Panel1.save_graph(1,fig2) + +################################################################ +######### PANEL 2 +############################################################### +Panel2 = PanelPlot(2,2, [20,20],'', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.01, colorbaraspect=40, labelcolorbarpad = 13) + +# Interpoler COT','O3T à 3000 et 5000m avec une moyenne sur2 niveaux +Dvar['f1']['COT3000m'] = (Dvar['f1']['COT'][6,:,:] + Dvar['f1']['COT'][5,:,:])/2.0 +Dvar['f1']['O3T3000m'] = (Dvar['f1']['O3T'][6,:,:] + Dvar['f1']['O3T'][5,:,:])/2.0 +Dvar['f1']['COT5000m'] = (Dvar['f1']['COT'][10,:,:] + Dvar['f1']['COT'][9,:,:])/2.0 +Dvar['f1']['O3T5000m'] = (Dvar['f1']['O3T'][10,:,:] + Dvar['f1']['O3T'][9,:,:])/2.0 +Lplot = [Dvar['f1']['COT3000m'], Dvar['f1']['O3T3000m'],Dvar['f1']['COT5000m'], Dvar['f1']['O3T5000m'] ] + +LaxeX = [Dvar['f1']['ni']]*len(Lplot) +LaxeY = [Dvar['f1']['nj']]*len(Lplot) +Ltitle = ['CO at z = 3000m', 'Ozone O3 at z = 3000m ', 'CO at z = 5000m', 'Ozone O3 at z = 5000m '] +Lcbarlabel = ['kg/kg']*len(Lplot) +Lxlab = ['x (m)']*len(Lplot) +Lylab = ['y (m)']*len(Lplot) +Lminval = [0, 0, 0, 0] +Lmaxval = [1E-7, 0.4E-7, 0.95E-7, 0.4E-7] +Lstep = [0.05E-7, 0.02E-7, 0.05E-7, 0.02E-7] +Lstepticks = Lstep +Lcolormap = ['gist_rainbow_r']*len(Lplot) +Ltime = [Dvar['f1']['time']]*len(Lplot) +LaddWhite = [True]*len(Lplot) + +fig2 = Panel2.psectionH(lon=LaxeX, lat=LaxeY, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, + Ltime=Ltime, LaddWhite_cm=LaddWhite) + +Panel2.save_graph(2,fig2) + +################################################################ +######### PANEL 3 : Oblique projection +############################################################### +Panel3 = PanelPlot(2,2, [17,17],'Oblique section (angle = 47)', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.01, lateralminmaxpad=0.9) + +Dvar['f1']['THT-LSTHM'] = Dvar['f1']['THT'] - Dvar['f1']['LSTHM'] + +tomass = mean_operator() +Dvar['f1']['UM'] = tomass.MXM(Dvar['f1']['UT']) +Dvar['f1']['VM'] = tomass.MYM(Dvar['f1']['VT']) +Dvar['f1']['WM'] = tomass.MZM(Dvar['f1']['WT']) + + +angle_sec1, RVT_sec1, axe_m1 = oblique_proj(Dvar['f1']['RVT'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +WIND_proj = windvec_verti_proj(Dvar['f1']['UM'], Dvar['f1']['VM'], Dvar['f1']['level'], angle_sec1) +angle_sec1, WIND_sec1, axe_m1 = oblique_proj(WIND_proj, Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, WT_sec1, axe_m1 = oblique_proj(Dvar['f1']['WM'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, RCT_sec1, axe_m1 = oblique_proj(Dvar['f1']['RCT'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, RRT_sec1, axe_m1 = oblique_proj(Dvar['f1']['RRT'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, anoTHT_sec1, axe_m1 = oblique_proj(Dvar['f1']['THT-LSTHM'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) + +Lplot = [RVT_sec1, RCT_sec1, anoTHT_sec1, WT_sec1] +LaxeX = [axe_m1]*len(Lplot) +LaxeZ = [Dvar['f1']['level'], Dvar['f1']['level'], Dvar['f1']['level'],Dvar['f1']['level_w']] +Ltitle = ['Water vapor mixing ratio', 'Liquid cloud mixing ratio', 'Potential temperature anomaly', 'Vertical velocity'] +Lcbarlabel = ['g/kg','g/kg', 'K', 'm/s'] +Lxlab = ['distance (m)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lminval = [0., 0., -5, -18] +Lmaxval = [15, 3.0, 5, 18] +Lstep = [0.5, 0.05, 0.2, 0.5] +Lstepticks = [1, 0.2, 1, 2.5] +Lfacconv = [1000, 1000, 1, 1] +Lcolormap = ['gist_rainbow_r','gist_rainbow_r', 'seismic','seismic'] +Ltime = [Dvar['f1']['time']]*len(Lplot) +Lpltype = ['cf']*len(Lplot) +LaddWhite = [True, True, False, False] + +fig3 = Panel3.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv, + Ltime=Ltime, Lpltype=Lpltype, LaddWhite_cm=LaddWhite) + + +Lplot1 = [ WIND_sec1] +Lplot2 = [ WT_sec1] +Ltitle = ['Wind'] +Llegendval = [25] +Lcbarlabel = ['m/s']*len(Lplot) +Larrowstep = [1]*len(Lplot) +Lwidth = [0.004]*len(Lplot) +Lscale = [200]*len(Lplot) + +fig4 = Panel3.pvector(Lxx=LaxeX, Lyy=LaxeZ, Lvar1=Lplot1, Lvar2=Lplot2, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lwidth=Lwidth, Larrowstep=Larrowstep, + Llegendval=Llegendval, Lcbarlabel=Lcbarlabel, Lid_overlap=[0], ax=fig3.axes, Lscale=Lscale) + + +Lplot = [RRT_sec1] +LaxeX = [axe_m1] +LaxeZ = [Dvar['f1']['level']] +Ltitle = ['precipitation'] +Lcbarlabel = ['g/kg']*len(Lplot) +Lxlab = ['distance (m)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,10000.1)]*len(Lplot) +Lminval = [0.] +Lmaxval = [3.5] +Lstep = [0.5] +Lstepticks = [0.5] +Lfacconv = [1000]*len(Lplot) +LcolorLine = ['black']*len(Lplot) +Ltime = [Dvar['f1']['time']] +Lpltype = ['c']*len(Lplot) +LaddWhite = [True]*len(Lplot) + +fig5 = Panel3.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, LcolorLine=LcolorLine, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv, + Ltime=Ltime, Lpltype=Lpltype, LaddWhite_cm=LaddWhite, ax=fig4.axes,Lid_overlap=[2],colorbar=False) + +Panel3.save_graph(3,fig5) + +################################################################ +######### PANEL 4 : Oblique projection of chemical variables +############################################################### +Panel4 = PanelPlot(2,3, [25,14],'Oblique projection of chemical variables', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.01, colorbaraspect=40, labelcolorbarpad = 13) + +angle_sec1, RGT_sec1, axe_m1 = oblique_proj(Dvar['f1']['RGT'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, COT_sec1, axe_m1 = oblique_proj(Dvar['f1']['COT'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, O3T_sec1, axe_m1 = oblique_proj(Dvar['f1']['O3T'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, HCHOT_sec1, axe_m1 = oblique_proj(Dvar['f1']['HCHOT'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, WC_HCHOT_sec1, axe_m1 = oblique_proj(Dvar['f1']['WC_HCHOT'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, WR_HCHOT_sec1, axe_m1 = oblique_proj(Dvar['f1']['WR_HCHOT'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, SO2T_sec1, axe_m1 = oblique_proj(Dvar['f1']['SO2T'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, WC_SO2T_sec1, axe_m1 = oblique_proj(Dvar['f1']['WC_SO2T'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, WR_SO2T_sec1, axe_m1 = oblique_proj(Dvar['f1']['WR_SO2T'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, IC_SO2T_sec1, axe_m1 = oblique_proj(Dvar['f1']['IC_SO2T'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, IC_HCHOT_sec1, axe_m1 = oblique_proj(Dvar['f1']['IC_HCHOT'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, HNO3T_sec1, axe_m1 = oblique_proj(Dvar['f1']['HNO3T'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, WC_HNO3T_sec1, axe_m1 = oblique_proj(Dvar['f1']['WC_HNO3T'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, WR_HNO3T_sec1, axe_m1 = oblique_proj(Dvar['f1']['WR_HNO3T'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, IC_HNO3T_sec1, axe_m1 = oblique_proj(Dvar['f1']['IC_HNO3T'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, PHC_sec1, axe_m1 = oblique_proj(Dvar['f1']['PHC'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) +angle_sec1, PHR_sec1, axe_m1 = oblique_proj(Dvar['f1']['PHR'], Dvar['f1']['ni'], Dvar['f1']['nj'], Dvar['f1']['level'], i_beg, j_beg, i_end, j_end) + +Lplot = [COT_sec1, HCHOT_sec1, SO2T_sec1, HNO3T_sec1, PHC_sec1, PHR_sec1 ] + +LaxeX = [axe_m1]*len(Lplot) +LaxeZ = [Dvar['f1']['level']]*len(Lplot) +Ltitle = ['CO', 'HCHO', 'SO2', 'HNO3', 'pH in cloud','pH in rain'] +Lcbarlabel = ['ppp', 'ppp', 'ppp','ppp', '', '' ] +Lxlab = ['distance (m)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lminval = [0., 0., 0., 0., 0., 0.] +Lmaxval = [1E-7, 0.23E-9, 0.51E-10, 0.13E-9, 6, 6] +Lstep = [0.05E-7, 0.1E-10, 0.25E-11, 0.01E-9, 0.25, 0.25] +Lstepticks = Lstep +Lcolormap = ['gist_rainbow_r']*len(Lplot) +Ltime = [Dvar['f1']['time']]*len(Lplot) +Lpltype = ['cf']*len(Lplot) +LaddWhite = [True]*len(Lplot) + +fig6 = Panel4.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, + Ltime=Ltime, Lpltype=Lpltype, LaddWhite_cm=LaddWhite) +fig1.tight_layout() +Panel4.save_graph(4,fig6) + +################################################################ +######### PANEL 5 : Oblique projection of chemical variables +############################################################### +Panel5 = PanelPlot(3,3, [25,14],'', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.01, colorbaraspect=40, labelcolorbarpad = 13) + +Lplot = [WC_HCHOT_sec1, WR_HCHOT_sec1, IC_HCHOT_sec1, WC_SO2T_sec1, WR_SO2T_sec1, IC_SO2T_sec1, WC_HNO3T_sec1, WR_HNO3T_sec1, IC_HNO3T_sec1] + +LaxeX = [axe_m1]*len(Lplot) +LaxeZ = [Dvar['f1']['level']]*len(Lplot) +Ltitle = ['WC_HCHO', 'WR_HCHO', 'IC_HCHO','WC_SO2', 'WR_SO2', 'IC_SO2','WC_HNO3', 'WR_HNO3', 'IC_HNO3'] +Lcbarlabel = ['ppp']*len(Lplot) +Lxlab = ['distance (m)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lminval = [0., 0., 0., 0., 0., 0., 0., 0., 0.] +Lmaxval = [0.6E-10, 1E-10, 0.17E-9, 0.9E-11, 0.68E-11, 0.62E-12, 0.85E-10, 0.12E-9, 0.18E-9] +Lstep = [0.3E-11, 0.05E-10, 0.1E-10, 0.5E-12, 0.04E-11, 0.25E-13, 0.05E-10, 0.05E-10, 0.1E-10] +Lstepticks = Lstep +Lcolormap = ['gist_rainbow_r']*len(Lplot) +Ltime = [Dvar['f1']['time']]*len(Lplot) +Lpltype = ['cf']*len(Lplot) +LaddWhite = [True]*len(Lplot) + +fig7 = Panel5.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, + Ltime=Ltime, Lpltype=Lpltype, LaddWhite_cm=LaddWhite) +fig7.tight_layout() + +Lplot = [RCT_sec1, RRT_sec1, RGT_sec1, RCT_sec1, RRT_sec1, RGT_sec1, RCT_sec1, RRT_sec1, RGT_sec1 ] +LaxeX = [axe_m1]*len(Lplot) +LaxeZ = [Dvar['f1']['level']]*len(Lplot) +Ltitle = ['cloud mixing ratio (g/kg)', 'precipitation mixing ratio (g/kg)', 'graupel mixing ratio (g/kg)']*3 +Lcbarlabel = ['g/kg']*len(Lplot) +Lxlab = ['distance (m)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,10000.1)]*len(Lplot) +Lminval = [0.]*len(Lplot) +Lmaxval = [6]*len(Lplot) +Lstep = [0.5]*len(Lplot) +Lstepticks = [0.5]*len(Lplot) +Lfacconv = [1000]*len(Lplot) +LcolorLine = ['black']*len(Lplot) +Lpltype = ['c']*len(Lplot) + +fig8 = Panel5.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, LcolorLine=LcolorLine, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv, + Lpltype=Lpltype, ax=fig7.axes,Lid_overlap=[0, 2, 4, 6, 8, 10, 12, 14, 16],colorbar=False) + +Panel5.save_graph(5,fig8) diff --git a/MY_RUN/KTEST/011_KW78CHEM/004_python/run_python b/MY_RUN/KTEST/011_KW78CHEM/004_python/run_python new file mode 100644 index 000000000..1fa7219f5 --- /dev/null +++ b/MY_RUN/KTEST/011_KW78CHEM/004_python/run_python @@ -0,0 +1,13 @@ +#!/bin/bash +#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC for details. version 1. +set -x +set -e +ln -sf ${SRC_MESONH}/src/LIB/Python/* . +ln -sf ../003_diag/KWRAI.1.SEGCH.004*.nc . + +python3 plot_011_KW78CHEM.py +${POSTRUN} convert *.png 011_KW78CHEM.pdf +${POSTRUN} evince 011_KW78CHEM.pdf diff --git a/MY_RUN/KTEST/011_KW78CHEM/005_ncl/clean_ncl b/MY_RUN/KTEST/011_KW78CHEM/005_ncl/clean_ncl index 3f7a799f1..6d1fcfec2 100755 --- a/MY_RUN/KTEST/011_KW78CHEM/005_ncl/clean_ncl +++ b/MY_RUN/KTEST/011_KW78CHEM/005_ncl/clean_ncl @@ -3,4 +3,4 @@ #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. -rm -f *.nc *.ps +rm -f *.nc *.ps *.png diff --git a/MY_RUN/KTEST/011_KW78CHEM/Makefile b/MY_RUN/KTEST/011_KW78CHEM/Makefile index e50e3b333..dc5b0ef17 100644 --- a/MY_RUN/KTEST/011_KW78CHEM/Makefile +++ b/MY_RUN/KTEST/011_KW78CHEM/Makefile @@ -1,13 +1,13 @@ all: cd 001_prep_ideal_case && run_prep_ideal_case_xyz cd 002_mesonh && run_mesonh_xyz - cd 003_convdia && run_conv2dia - cd 004_diaprog && run_diaprog + cd 003_diag && run_diag_xyz + cd 004_python && run_python cd 005_ncl && run_ncl clean: cd 001_prep_ideal_case && clean_prep_ideal_case_xyz cd 002_mesonh && clean_mesonh_xyz - cd 003_convdia && clean_conv2dia - cd 004_diaprog && clean_diaprog + cd 003_diag && clean_diag_xyz + cd 004_python && clean_python cd 005_ncl && clean_ncl diff --git a/MY_RUN/KTEST/012_dust/005_conv2dia/clean_conv2dia b/MY_RUN/KTEST/012_dust/005_conv2dia/clean_conv2dia deleted file mode 100755 index 9b1176bdf..000000000 --- a/MY_RUN/KTEST/012_dust/005_conv2dia/clean_conv2dia +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -set -x -rm -f DUST7* -rm -f dirconv FICJD LISTING_DIA OUT_DIA pipe_name diff --git a/MY_RUN/KTEST/012_dust/005_conv2dia/dir_conv2dia1 b/MY_RUN/KTEST/012_dust/005_conv2dia/dir_conv2dia1 deleted file mode 100644 index 858d45891..000000000 --- a/MY_RUN/KTEST/012_dust/005_conv2dia/dir_conv2dia1 +++ /dev/null @@ -1,6 +0,0 @@ -1 -DUST7.1.SEG02.004 -DUST7.1.SEG02.004_dia -n -n -0 diff --git a/MY_RUN/KTEST/012_dust/005_conv2dia/run_conv2dia b/MY_RUN/KTEST/012_dust/005_conv2dia/run_conv2dia deleted file mode 100755 index 730b717df..000000000 --- a/MY_RUN/KTEST/012_dust/005_conv2dia/run_conv2dia +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -set -x -set -e -ln -sf ../004_restart/DUST7.1.SEG02.004.lfi . -rm -f DUST7.1.SEG02.004_dia* -${POSTRUN} conv2dia < dir_conv2dia1 - diff --git a/MY_RUN/KTEST/012_dust/005_python/clean_python b/MY_RUN/KTEST/012_dust/005_python/clean_python new file mode 100644 index 000000000..d75604a6a --- /dev/null +++ b/MY_RUN/KTEST/012_dust/005_python/clean_python @@ -0,0 +1,4 @@ +#!/bin/bash +rm -f *.png *.pdf *.nc +rm -Rf __pycache__ +find . -type l -delete diff --git a/MY_RUN/KTEST/012_dust/005_python/plot_012_dust.py b/MY_RUN/KTEST/012_dust/005_python/plot_012_dust.py new file mode 100644 index 000000000..9c0a1f180 --- /dev/null +++ b/MY_RUN/KTEST/012_dust/005_python/plot_012_dust.py @@ -0,0 +1,124 @@ +#!/usr/bin/env python3 +""" +@author: Quentin Rodier +Creation : 07/01/2021 + +Last modifications +""" +import matplotlib as mpl +mpl.use('Agg') +from read_MNHfile import read_netcdf +from Panel_Plot import PanelPlot +from misc_functions import mean_operator, convert_date +import cartopy.crs as ccrs +import numpy as np +import os + +os.system('rm -f tempgraph*') +# +# User's parameter / Namelist +# +output_name = '012_dust.pdf' #Name of the output PDF file +path="" +LnameFiles = ['DUST7.1.SEG02.004.nc'] + +Dvar_input = { +'f1':['ZS', 'UT','VT', 'WT','THT', + 'DSTM03T','DSTM33T','DSTM02T','DSTM32T','DSTM01T','DSTM31T','F_DST001P1','F_DST002P1','F_DST003P1', + 'latitude','longitude','level', + 'INPRR','ACPRR','PABST','RCT','RVT','RRT','LSTHM']} + +# Read the variables in the files +Dvar = {} +Dvar = read_netcdf(LnameFiles, Dvar_input, path=path, removeHALO=True) +Dvar['f1']['date'] = convert_date(Dvar['f1']['date'], Dvar['f1']['time']) +################################################################ +######### PANEL 1 +############################################################### +Panel1 = PanelPlot(1,2, [20,10],'012_dust', titlepad=25, minmaxpad=1.04, timepad=-0.10, colorbarpad=0.01, colorbaraspect=30) +tomass = mean_operator() +Dvar['f1']['UM'] = tomass.MXM(Dvar['f1']['UT']) +Dvar['f1']['VM'] = tomass.MYM(Dvar['f1']['VT']) +Dvar['f1']['WIND'] = np.sqrt(Dvar['f1']['VM']**2 + Dvar['f1']['UM']**2) + +Lplot = [ Dvar['f1']['WIND'],Dvar['f1']['THT']] +lon = [Dvar['f1']['longitude']]*len(Lplot) +lat = [Dvar['f1']['latitude']]*len(Lplot) +Ltitle = ['Wind speed', 'Potential Temperature at 1st level'] +Lcbarlabel = ['m/s','K'] +Lxlab = ['longitude']*len(Lplot) +Lylab = ['latitude']*len(Lplot) +Lminval = [0, 296.5] +Lmaxval = [10.5, 307.5] +Lstep = [0.5, 0.5] +Lstepticks = Lstep +Lcolormap = ['gist_rainbow_r']*len(Lplot) +Lprojection = [ccrs.PlateCarree()]*len(Lplot) +Llvl = [0, 0] +LaddWhite = [True, False] +Ltime = [Dvar['f1']['date']]*len(Lplot) + +fig1 = Panel1.psectionH(lon=lon, lat=lat, Lvar=Lplot, Llevel=Llvl, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, + Ltime=Ltime, LaddWhite_cm=LaddWhite, Lproj=Lprojection) + +Lplot1 = [ Dvar['f1']['UM']] +Lplot2 = [ Dvar['f1']['VM']] +Ltitle = [' vectors at 1st level'] +Llegendval = [20] +Lcbarlabel = ['m/s']*len(Lplot) +Larrowstep = [1]*len(Lplot) +Lwidth = [0.002]*len(Lplot) +Lcolor = ['black']*len(Lplot) +Lscale = [200]*len(Lplot) + +fig2 = Panel1.pvector(Lxx=lon, Lyy=lat, Lvar1=Lplot1, Llevel=Llvl, Lvar2=Lplot2, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lwidth=Lwidth, Larrowstep=Larrowstep, + Llegendval=Llegendval, Lcbarlabel=Lcbarlabel, Lid_overlap=[0], ax=fig1.axes, Lscale=Lscale) + +Panel1.save_graph(1,fig2) +################################################################ +######### PANEL 2 +############################################################### +Panel2 = PanelPlot(2,3, [25,14],'', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.03, labelcolorbarpad = 13, colorbaraspect=40) +Lplot = [ Dvar['f1']['DSTM03T'],Dvar['f1']['DSTM33T'],Dvar['f1']['DSTM02T'],Dvar['f1']['DSTM32T'],Dvar['f1']['DSTM01T'],Dvar['f1']['DSTM31T']] +lon = [Dvar['f1']['longitude']]*len(Lplot) +lat = [Dvar['f1']['latitude']]*len(Lplot) +Ltitle = ['DSTM03T','DSTM33T','DSTM02T','DSTM32T','DSTM01T','DSTM31T'] +Lcbarlabel = ['kg/kg']*len(Lplot) +Lxlab = ['longitude']*len(Lplot) +Lylab = ['latitude']*len(Lplot) +Lminval = [0,0,0,0,0,0] +Lmaxval = [0.11E-21, 0.62E-9, 0.33E-17, 0.44E-6, 0.45E-16, 0.17E-7] +Lcolormap = ['gist_rainbow_r']*len(Lplot) +Lprojection = [ccrs.PlateCarree()]*len(Lplot) +LaddWhite = [True]*len(Lplot) +Ltime = [Dvar['f1']['time']]*len(Lplot) +Llvl = [0]*len(Lplot) +fig3 = Panel2.psectionH(lon=lon, lat=lat, Lvar=Lplot, Llevel=Llvl, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=[], Lstepticks=[], Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, + Ltime=Ltime, LaddWhite_cm=LaddWhite, Lproj=Lprojection, ax=[]) + +Panel2.save_graph(2,fig3) +################################################################ +######### PANEL 3 +############################################################### +Panel3 = PanelPlot(2,3, [25,14],'', titlepad=25, minmaxpad=1.04, timepad=-0.10, colorbarpad=0.03, labelcolorbarpad = 13, colorbaraspect=50) +Lplot = [ Dvar['f1']['F_DST001P1'],Dvar['f1']['F_DST002P1'],Dvar['f1']['F_DST003P1']] +lon = [Dvar['f1']['longitude']]*len(Lplot) +lat = [Dvar['f1']['latitude']]*len(Lplot) +Ltitle = ['F_DST001P1','F_DST002P1','F_DST003P1'] +Lcbarlabel = ['kg/m2/s']*len(Lplot) +Lxlab = ['longitude']*len(Lplot) +Lylab = ['latitude']*len(Lplot) +Lminval = [0,0,0] +Lmaxval = [0.54E-9,0.76E-7, 0.28E-8] +Lcolormap = ['gist_rainbow_r']*len(Lplot) +Lprojection = [ccrs.PlateCarree()]*len(Lplot) +LaddWhite = [True]*len(Lplot) +Ltime = [Dvar['f1']['date']]*len(Lplot) +Lcarte = [Dvar['f1']['longitude'].min(),Dvar['f1']['longitude'].max(), Dvar['f1']['latitude'].min(), Dvar['f1']['latitude'].max()] +fig4 = Panel3.psectionH(lon=lon, lat=lat, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=[], Lstepticks=[], Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel,Lcarte=Lcarte, + Ltime=Ltime, LaddWhite_cm=LaddWhite, Lproj=Lprojection, ax=[]) + +Panel3.save_graph(3,fig4) diff --git a/MY_RUN/KTEST/012_dust/005_python/run_python b/MY_RUN/KTEST/012_dust/005_python/run_python new file mode 100644 index 000000000..f40025c3c --- /dev/null +++ b/MY_RUN/KTEST/012_dust/005_python/run_python @@ -0,0 +1,13 @@ +#!/bin/bash +#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC for details. version 1. +set -x +set -e +ln -sf ${SRC_MESONH}/src/LIB/Python/* . +ln -sf ../004_restart/DUST7.1.SEG02.004.nc . + +python3 plot_012_dust.py +${POSTRUN} convert *.png 012_dust.pdf +${POSTRUN} evince 012_dust.pdf diff --git a/MY_RUN/KTEST/012_dust/006_diaprog/clean_diaprog b/MY_RUN/KTEST/012_dust/006_diaprog/clean_diaprog deleted file mode 100755 index b43ef143f..000000000 --- a/MY_RUN/KTEST/012_dust/006_diaprog/clean_diaprog +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -set -x -rm -f dir.* gmeta DUST* OUT_DIA diff --git a/MY_RUN/KTEST/012_dust/006_diaprog/dirdust b/MY_RUN/KTEST/012_dust/006_diaprog/dirdust deleted file mode 100644 index 355cf5afc..000000000 --- a/MY_RUN/KTEST/012_dust/006_diaprog/dirdust +++ /dev/null @@ -1,34 +0,0 @@ -_file_'DUST7.1.SEG02.004_dia' -LCOLAREA=T -LISO=F -print groups -nigrnc=1 -lcolzero=f -ncolzero=1 -LVPTUSER=.T. -XVPTVL=0.1 -XVPTVR=0.8 -XVPTVB=0.1 -XVPTVT=0.9 -LFACTIMP=T -LMINMAX=T -LCOLAREA=.T. -LCOLZERO=.T. -NCOLZERO=1 -LCOLINE=F -LISO=.F. - -niskip=1 -xvrl=0.1 -MUTVT_k_2_t_time1_on_UTVT_k_2_t_time1 -THT_K_2 -DSTM03T_K_2 -DSTM33T_K_2 -DSTM02T_K_2 -DSTM32T_K_2 -DSTM01T_K_2 -DSTM31T_K_2 -F_DST001P1 -F_DST002P1 -F_DST003P1 -quit diff --git a/MY_RUN/KTEST/012_dust/006_diaprog/run_diaprog b/MY_RUN/KTEST/012_dust/006_diaprog/run_diaprog deleted file mode 100755 index ab5bc445e..000000000 --- a/MY_RUN/KTEST/012_dust/006_diaprog/run_diaprog +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -set -x -set -e -ln -sf ../005_conv2dia/DUST7.1.SEG02.004_dia.lfi . -rm -f dir.0* -${POSTRUN} diaprog < dirdust - diff --git a/MY_RUN/KTEST/012_dust/006_ncl/clean_ncl b/MY_RUN/KTEST/012_dust/006_ncl/clean_ncl new file mode 100755 index 000000000..2bb66b885 --- /dev/null +++ b/MY_RUN/KTEST/012_dust/006_ncl/clean_ncl @@ -0,0 +1,3 @@ +#!/bin/bash +set -x +rm -f *.nc *.ps *.png diff --git a/MY_RUN/KTEST/012_dust/007_ncl/plot_dust.ncl b/MY_RUN/KTEST/012_dust/006_ncl/plot_dust.ncl similarity index 100% rename from MY_RUN/KTEST/012_dust/007_ncl/plot_dust.ncl rename to MY_RUN/KTEST/012_dust/006_ncl/plot_dust.ncl diff --git a/MY_RUN/KTEST/012_dust/007_ncl/run_ncl b/MY_RUN/KTEST/012_dust/006_ncl/run_ncl similarity index 100% rename from MY_RUN/KTEST/012_dust/007_ncl/run_ncl rename to MY_RUN/KTEST/012_dust/006_ncl/run_ncl diff --git a/MY_RUN/KTEST/012_dust/007_ncl/clean_ncl b/MY_RUN/KTEST/012_dust/007_ncl/clean_ncl deleted file mode 100755 index aa9f92814..000000000 --- a/MY_RUN/KTEST/012_dust/007_ncl/clean_ncl +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -set -x -rm -f *.nc -rm -f *.ps diff --git a/MY_RUN/KTEST/012_dust/Makefile b/MY_RUN/KTEST/012_dust/Makefile index ee078671a..5348e24c0 100644 --- a/MY_RUN/KTEST/012_dust/Makefile +++ b/MY_RUN/KTEST/012_dust/Makefile @@ -1,4 +1,4 @@ -all: E001_pgd1 E002_ecmwf2lfi E003_run E004_restart E005_conv2dia E006_diaprog E007_ncl +all: E001_pgd1 E002_ecmwf2lfi E003_run E004_restart E005_python E006_ncl E001_pgd1 : cd 001_pgd1 && run_prep_pgd_xyz @@ -8,17 +8,14 @@ E003_run: cd 003_run && run_mesonh_xyz E004_restart: cd 004_restart && run_mesonh_xyz -E005_conv2dia: - cd 005_conv2dia && run_conv2dia -E006_diaprog: - cd 006_diaprog && run_diaprog -E007_ncl: - cd 007_ncl && run_ncl +E005_python: + cd 005_python && run_python +E006_ncl: + cd 006_ncl && run_ncl clean: cd 001_pgd1 && clean_prep_pgd_xyz cd 002_ecmwf2lfi && clean_ecmwf2lfi_xyz cd 003_run && clean_mesonh_xyz cd 004_restart && clean_mesonh_xyz - cd 005_conv2dia && clean_conv2dia - cd 006_diaprog && clean_diaprog - cd 007_ncl && clean_ncl + cd 005_python && clean_python + cd 006_ncl && clean_ncl diff --git a/MY_RUN/KTEST/014_LIMA/002_mesonh/EXSEG1.nam b/MY_RUN/KTEST/014_LIMA/002_mesonh/EXSEG1.nam index ee3b30710..0d8a9c340 100644 --- a/MY_RUN/KTEST/014_LIMA/002_mesonh/EXSEG1.nam +++ b/MY_RUN/KTEST/014_LIMA/002_mesonh/EXSEG1.nam @@ -68,13 +68,13 @@ NBUMOD = 1, XBULEN=3600., XBUWRI=3600., - NBUKL = 2, - NBUKH = 51, + NBUKL = 1, + NBUKH = 50, LBU_KCP = .FALSE., - NBUIL = 2, - NBUIH = 181, - NBUJL = 2, - NBUJH = 2, + NBUIL = 1, + NBUIH = 180, + NBUJL = 1, + NBUJH = 1, LBU_ICP = .FALSE., LBU_JCP = .FALSE. / diff --git a/MY_RUN/KTEST/014_LIMA/003_ncl/clean_ncl b/MY_RUN/KTEST/014_LIMA/003_ncl/clean_ncl deleted file mode 100755 index ef83c16a5..000000000 --- a/MY_RUN/KTEST/014_LIMA/003_ncl/clean_ncl +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -rm -f *.nc *.png diff --git a/MY_RUN/KTEST/014_LIMA/003_ncl/plot_LIMA.ncl b/MY_RUN/KTEST/014_LIMA/003_ncl/plot_LIMA.ncl deleted file mode 100644 index a7daead65..000000000 --- a/MY_RUN/KTEST/014_LIMA/003_ncl/plot_LIMA.ncl +++ /dev/null @@ -1,121 +0,0 @@ -;================================================; -load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" -load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" -; ================================================; -;================================================; -begin -;=================================================; -; open file and read in data -;=================================================; - fichier1 = addfile("XPREF.1.SEG01.000.nc", "r") -;==================================================; -; Open the workstation -;==================================================; - type = "png" - wks = gsn_open_wks(type,"visu_LIMA") -;=================================================; -; lecture des différents champs -;=================================================; -vname = "RI___0001___PROC3" -RI___0001_P3= fichier1->$vname$(0,0,:,0,:) -RI___0001_P3@long_name="ice water content" -RI___0001_P3@units="g/kg" - -vname2 = "SV0050001___PROC3" -NI___0001_P3= fichier1->$vname2$(0,0,:,0,:) -NI___0001_P3@long_name="ice concentration" -NI___0001_P3@units="/kg" - -vname3 = "RS___0001___PROC3" -RS___0001_P3= fichier1->$vname3$(0,0,:,0,:) -RS___0001_P3@long_name="snow water content" -RS___0001_P3@units="g/kg" - -vname4 = "RG___0001___PROC3" -RG___0001_P3= fichier1->$vname4$(0,0,:,0,:) -RG___0001_P3@long_name="graupel water content" -RG___0001_P3@units="g/kg" - -vname5 = "SV0060001___PROC3" -N_IFN_FREE_P3= fichier1->$vname5$(0,0,:,0,:) -N_IFN_FREE_P3@long_name="concentration of free IFN" -N_IFN_FREE_P3@units="/kg" - -vname6 = "SV0070001___PROC3" -N_IFN_NUCL_P3= fichier1->$vname6$(0,0,:,0,:) -N_IFN_NUCL_P3@long_name="concentration of nucleated IFN" -N_IFN_NUCL_P3@units="/kg" - - -zhat = fichier1->ZHAT(1:50) -xhat = fichier1->XHAT(1:180) -zs = fichier1->ZS(0,1:180) ; ZS - -xconf=conform(RI___0001_P3,xhat(0:179),1) - -;=================================================; -; Altitude des niveaux modèles -;=================================================; -; Unstagger zhat (from grid 4 to 1) - nzh=new(50,double) - do k=0,48 - nzh(k)=(zhat(k)+zhat(k+1))/2. - end do - nzh(49)=2*zhat(49)-zhat(48) - -; Create z (altitude des niveaux modèle) - z=new((/50,180/),double) - zcoef=new(180,double) - zcoef=1.-zs/nzh(49) - - do i=0,179 - z(:,i) = nzh*zcoef(i)+zs(i) - end do -;=================================================; -; Set some other basic resources -;=================================================; - resmap = True - resmap@gsnFrame = False - resmap@gsnDraw = False - resmap@gsnMaximize = True - resmap@gsnPaperOrientation = "portrait" - resmap@gsnSpreadColors = True ; use full range of colormap - resmap@tiYAxisString =" " - resmap@cnFillOn = True ; turn on color fill - resmap@cnLinesOn = False ; turn off contour lines - - resmap@tiXAxisPosition="Left" - resmap@tiXAxisFontHeightF=0.015 -; resmap@gsnSpreadColorStart = 0 ; force la première couleur en blanc(= couleur 0 de la palette) - resmap@sfYArray = z ; 2D - resmap@sfXArray = xconf ; 2D - resmap@trGridType = "TriangularMesh" -;=================================================; -; TRACE -;=================================================; - gsn_define_colormap(wks,"rainbow") ; Choose colormap - res=resmap - res@cnLevelSelectionMode = "AutomaticLevels" - plot = gsn_csm_contour(wks,RI___0001_P3(:,:),res) - draw(plot) - frame(wks) - - plot2 = gsn_csm_contour(wks,NI___0001_P3(:,:),res) - draw(plot2) - frame(wks) - - plot3 = gsn_csm_contour(wks,RS___0001_P3(:,:),res) - draw(plot3) - frame(wks) - - plot4 = gsn_csm_contour(wks,RG___0001_P3(:,:),res) - draw(plot4) - frame(wks) - plot5 = gsn_csm_contour(wks,N_IFN_FREE_P3(:,:),res) - draw(plot5) - frame(wks) - plot6 = gsn_csm_contour(wks,N_IFN_NUCL_P3(:,:),res) - draw(plot6) - frame(wks) - -end diff --git a/MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl b/MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl deleted file mode 100755 index 2444be340..000000000 --- a/MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -#MNH_LIC for details. version 1. -set -x - -ln -sf ../002_mesonh/XPREF.1.SEG01.000.nc . - -rm -f visu_LIMA.*.png - -ncl plot_LIMA.ncl - -${POSTRUN} display visu_LIMA.000001.png -${POSTRUN} display visu_LIMA.000002.png -${POSTRUN} display visu_LIMA.000003.png -${POSTRUN} display visu_LIMA.000004.png -${POSTRUN} display visu_LIMA.000005.png -${POSTRUN} display visu_LIMA.000006.png -exit 0 diff --git a/MY_RUN/KTEST/014_LIMA/004_python/clean_python b/MY_RUN/KTEST/014_LIMA/004_python/clean_python new file mode 100644 index 000000000..d75604a6a --- /dev/null +++ b/MY_RUN/KTEST/014_LIMA/004_python/clean_python @@ -0,0 +1,4 @@ +#!/bin/bash +rm -f *.png *.pdf *.nc +rm -Rf __pycache__ +find . -type l -delete diff --git a/MY_RUN/KTEST/014_LIMA/004_python/plot_014_LIMA.py b/MY_RUN/KTEST/014_LIMA/004_python/plot_014_LIMA.py new file mode 100644 index 000000000..c48e10c2c --- /dev/null +++ b/MY_RUN/KTEST/014_LIMA/004_python/plot_014_LIMA.py @@ -0,0 +1,69 @@ +#!/usr/bin/env python3 +""" + +@author: Quentin Rodier +Creation : 07/01/2021 + +Last modifications +""" + +import matplotlib as mpl +mpl.use('Agg') +from read_MNHfile import read_netcdf +from Panel_Plot import PanelPlot +from misc_functions import comp_altitude1DVar +import os + +os.system('rm -f tempgraph*') +# +# User's parameter / Namelist +# +output_name = '014_LIMA.pdf' #Name of the output PDF file +path="" +LnameFiles = ['XPREF.1.SEG01.000.nc' ] + +Dvar_input = {'f1':['RI', 'CICE', 'RS','RG', 'CIFNFREE01','CIFNNUCL01' ]} +Dvar_input_coord_budget = {'f1':['cart_level', 'cart_ni']} +Dvar_input_coord = {'f1':['ZS','ZTOP']} + +# Add ___AVED to all variables +for i,var in enumerate(Dvar_input['f1']): + Dvar_input['f1'][i] = var + '___AVEF' +# +# Read the variables in the files +Dvar, Dvar_coord_budget, Dvar_coord = {}, {}, {} +Dvar = read_netcdf(LnameFiles, Dvar_input, path=path, removeHALO=False) +Dvar_coord_budget = read_netcdf(LnameFiles, Dvar_input_coord_budget, path=path, removeHALO=False) +Dvar_coord = read_netcdf(LnameFiles, Dvar_input_coord, path=path, removeHALO=True) + +Dvar['f1']['altitude'], Dvar['f1']['ni_2D'] = comp_altitude1DVar(Dvar['f1']['CIFNFREE01'], Dvar_coord['f1']['ZS'],Dvar_coord['f1']['ZTOP'], Dvar_coord_budget['f1']['cart_level'],Dvar_coord_budget['f1']['cart_ni']) + +################################################################ +######### PANEL 1 +############################################################### +Panel1 = PanelPlot(2,3, [25,14],'014_LIMA', titlepad=25, minmaxpad=1.04, timepad=-0.07, colorbarpad=0.03, labelcolorbarpad = 13, colorbaraspect=40) + +Lplot = [Dvar['f1']['RI'],Dvar['f1']['CICE'], Dvar['f1']['RS'], + Dvar['f1']['RG'],Dvar['f1']['CIFNFREE01'], Dvar['f1']['CIFNNUCL01']] +LaxeX = [Dvar['f1']['ni_2D']]*len(Lplot) +LaxeZ = [Dvar['f1']['altitude']]*len(Lplot) +Ltitle = ['Ice water content', 'Ice concentration', 'Snow water content', + 'Graupel water content', 'Concentration of free IFN', 'Concentration of nucleated IFN'] +Lcbarlabel = ['g/kg', '/kg', 'g/kg','g/kg',r'x $10^6$/kg','/kg'] +Lxlab = ['x (m)']*len(Lplot) +Lylab = ['altitude (m)']*len(Lplot) +Lylim = [(0,16000)]*len(Lplot) +Lminval = [0, 0, 0, 0, 0.8 ,0] +Lmaxval = [3.75E-2, 5400, 3E-1, 3E-1, 7, 1800] +Lstep = [0.25E-2,400,0.01,0.01,0.25, 100] +Lstepticks = Lstep +Lfacconv = [1000, 1, 1000, 1000, 1E-6, 1] +orog = Dvar_coord['f1']['ZS'] +Lcolormap = ['gist_rainbow_r']*len(Lplot) +LaddWhite = [True, True, True, True, False, True] + +fig1 = Panel1.psectionV(Lxx=LaxeX, Lzz=LaxeZ, Lvar=Lplot, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval, + Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lfacconv=Lfacconv,Lylim=Lylim, + orog=orog, LaddWhite_cm=LaddWhite) + +Panel1.save_graph(1,fig1) \ No newline at end of file diff --git a/MY_RUN/KTEST/014_LIMA/004_python/run_python b/MY_RUN/KTEST/014_LIMA/004_python/run_python new file mode 100644 index 000000000..42793a84d --- /dev/null +++ b/MY_RUN/KTEST/014_LIMA/004_python/run_python @@ -0,0 +1,13 @@ +#!/bin/bash +#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC for details. version 1. +set -x +set -e +ln -sf ${SRC_MESONH}/src/LIB/Python/* . +ln -sf ../002_mesonh/XPREF.1.SEG01.000.nc . + +python3 plot_014_LIMA.py +${POSTRUN} convert *.png 014_LIMA.pdf +${POSTRUN} evince 014_LIMA.pdf diff --git a/MY_RUN/KTEST/014_LIMA/Makefile b/MY_RUN/KTEST/014_LIMA/Makefile index 5ef01ca8d..5e7d29a80 100644 --- a/MY_RUN/KTEST/014_LIMA/Makefile +++ b/MY_RUN/KTEST/014_LIMA/Makefile @@ -1,9 +1,8 @@ all: cd 001_prep_ideal_case && run_prep_ideal_case_xyz cd 002_mesonh && run_mesonh_xyz - cd 003_ncl && run_ncl - + cd 004_python && run_python clean: cd 001_prep_ideal_case && clean_prep_ideal_case_xyz cd 002_mesonh && clean_mesonh_xyz - cd 003_ncl && clean_ncl + cd 004_python && clean_python -- GitLab