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 b7471298dbe4522965b9351903c8fbf301b341e5..0000000000000000000000000000000000000000 --- 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 5706e5c9bdc1e19643e39a8561ecd1629906e305..0000000000000000000000000000000000000000 --- 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 b9a9c88712be5b10353d9b5475711b94cfda1bcd..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..d75604a6ad8743f9782400155bb3def9cfd69410 --- /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 0000000000000000000000000000000000000000..3355e0004941fb3d7fa2cf0a70317ce9336800ed --- /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 0000000000000000000000000000000000000000..b7e390b0dfd6889e7e76d5929823f4eb329c1a3d --- /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 fc74351aa873e3b64453331da8378d7fddf1b329..0000000000000000000000000000000000000000 --- 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 9e18e8271f7926ab8437f679b6005120345f83f8..0000000000000000000000000000000000000000 --- 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 03431de5cdfd18131b22dd89fef23b6c6cd3c2c3..0000000000000000000000000000000000000000 --- 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 41eb6d0eabd1d0c4bba10d705dac87a3bd68e58b..bfeaa593ef6d570f496d8ae85a8a249fdbe9c8c2 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 e50e3b333d17d9505c803b9ba51ca34fcdcaafea..057a8452ef862da1039f56b830b5b7860c005ba1 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 4736bbeef2a40269d80176c3795d819bb2a8878b..0000000000000000000000000000000000000000 --- 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 5ba8fe21114ec45e4d73c53c52274b23049da4f8..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..d75604a6ad8743f9782400155bb3def9cfd69410 --- /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 0000000000000000000000000000000000000000..9b24e6d222084c87e58eb59cf79414e9093dcdf9 --- /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 0000000000000000000000000000000000000000..3552ca8e2c234c107d083a448c354165a8b25cb3 --- /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 f1904b54b7017b3dbb9cb024ff32bc31a2672c0e..0000000000000000000000000000000000000000 --- 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 7181757a989b615e609ee3ca41021f23ab1b379b..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..8b82cdb8e78561ded4ce43712ce50580c6423c07 --- /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 233231e1eee2bac48853a70db7af884c517b70bd..0000000000000000000000000000000000000000 --- 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 e50e3b333d17d9505c803b9ba51ca34fcdcaafea..057a8452ef862da1039f56b830b5b7860c005ba1 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 9ba04f4e6b5d7baf4a3832abff01338eaff2dac4..0000000000000000000000000000000000000000 --- 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 b6310ba659e65bdc1ac6cfec31770957b9c07690..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..bde6301da864476969b9ded6ec83edc699b3ad1c --- /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 0000000000000000000000000000000000000000..19b1bf34eb5ca4964c57e9b503ef15a7e940213f --- /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 0000000000000000000000000000000000000000..a1252a72b1b6ef1bf8d6ad58ebe2ffd962e53fc6 --- /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 db41113751bf7e7148be1a6100d95fc55c5aa443..b36518443ebec0529cd0d53901f3adffe95dc551 --- 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 f4e896519cb1fae63eb774815ca52c295b3e1c9a..0000000000000000000000000000000000000000 --- 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 f23437c1cdb46db72e54e3be4890ccbcbb5ae125..0000000000000000000000000000000000000000 --- 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 365ecc11eabe264469d38e41a4d1e10a743215ac..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..d75604a6ad8743f9782400155bb3def9cfd69410 --- /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 0000000000000000000000000000000000000000..811abda26140531db5a1bae760fc9e5177af5441 --- /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 0000000000000000000000000000000000000000..f79953fa7b9a5bfc4609a60a3b70b85a61b0630f --- /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 233231e1eee2bac48853a70db7af884c517b70bd..8b82cdb8e78561ded4ce43712ce50580c6423c07 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 ffd98523395dcc3395c9141c10cdaf375591f2b3..ab46be0a29beaa0b1a96ace425e1ace5867b9b3b 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 43f486a681a58240ba48a5fa53a950b27e684939..0cfaf38928bd2fdc44caa9deff7efc1c63d250e5 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 7530099e2719a131467ac11606935b609be440ce..ac8db97d41aeb9ddafe47a958cd69312f182b741 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 d61f25f709fb56f668221fb1094f9ddfcd6b645e..0000000000000000000000000000000000000000 --- 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 ba3b4e5b27f6a6143d9c57f9322e7a4e41ce3c6d..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..aa4b1ba37f6c5b02d36baadc9be22c391d96e61b --- /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 0000000000000000000000000000000000000000..1d7efa01b7fe0c30d3316c8a456c0eba00b24dc0 --- /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 2ce0351394da80ab713f896060faec8d52a9e013..4f3502cb1f6807a798046f0c61824606e20372f6 --- 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 ab7c07966f324073a71267c1c2fb8bf016eb03e3..0000000000000000000000000000000000000000 --- 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 7fafdea2284ea209c372c3efc69dd859416b6280..0000000000000000000000000000000000000000 --- 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 dd66c99643e3bc11d5f5d094efc44e307328c06e..0000000000000000000000000000000000000000 --- 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 233231e1eee2bac48853a70db7af884c517b70bd..bbfe25caaa31a2e1aae687110d888e9805b34569 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 0000000000000000000000000000000000000000..d75604a6ad8743f9782400155bb3def9cfd69410 --- /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 0000000000000000000000000000000000000000..6afceafa64d073ad4a2ce91440c59231773f89b3 --- /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 0000000000000000000000000000000000000000..d8070e60a56332d02a13e0c8207ad801b9f8d61e --- /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 a4e5c76038ee62d7a08a5090dc346dbedf84b738..5a7f618761b6661455541583376b5e67f816502f 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 5bd665b8535e16da39e66854dbb55394bb027879..cb5a967a5b767fa7ffcf560ff20f2e84c6dda16a 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 159c61110f80d5cc0e5800b4f3c94b6b5eeba74f..0000000000000000000000000000000000000000 --- 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 56cfecac498a0ffd9e24eddcf8dfaf7c8c34dad6..0000000000000000000000000000000000000000 --- 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 15d55af0a576fae01a356cb2aea5ff3f42cc30b9..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..d75604a6ad8743f9782400155bb3def9cfd69410 --- /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 0000000000000000000000000000000000000000..e69e3b9baccecaf408d8e994a7306e6c305c3017 --- /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 6fb30e42f4fd801ec4fff45781196b0530e9af1c..bb2064129afd4a9710c97fd67df488a2de52f106 --- 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 12eeedc8e2098dd3b9af358058400b0dc719d700..0000000000000000000000000000000000000000 --- 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 5d315db0f450055db1dd39d5ee46455146bec67f..0000000000000000000000000000000000000000 --- 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 7fa36570be699763a33bdad50638a95b35f01eb7..0000000000000000000000000000000000000000 --- 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 15aadf169c336aed121259ec56aff30a717057e7..ea3b47d02c482ebfd287cf86e058ea1f156a6b8c 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 5311f8a7dab9f2c6bdc2565bfa4cae145226e94c..c3956ffacac2ae0c695b0fdbe93cc68127728407 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 910e3354493cb77d56ba6ce24158766906ab936a..599bd73b5017c831a10b77fa0e87289a1b4fe684 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 a621eff49d2c59ce2aab1fc0a4cd673b42b9e351..71020a0a80cbaa499561b633d9532f20ace65061 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 ef0cd032d0730ad98b606f17f6e976c12a32a6e4..0000000000000000000000000000000000000000 --- 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 a0e51e0a6694487186cc1cda7f09bf2b7c5aaae8..0000000000000000000000000000000000000000 --- 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 4787f9a32466742f8c4d5af09cd28e71dc7fb28d..0000000000000000000000000000000000000000 --- 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 d6fd020632a5efe7e639b9019c633d7b0c51547c..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..d75604a6ad8743f9782400155bb3def9cfd69410 --- /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 0000000000000000000000000000000000000000..fb752db60d6f09c00e60a90f22884cd48ac6495e --- /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 0000000000000000000000000000000000000000..89305077f372e6c243277588d7c4c88c9b43d44d --- /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 c0d45814101d68a224c6868790970b0e139068be..0000000000000000000000000000000000000000 --- 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 8c12e7a0cae260b94630229a4c48b11f6b910ba3..0000000000000000000000000000000000000000 --- 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 4fec27faf46c42c0b6e5203a548e8575110dd47b..0000000000000000000000000000000000000000 --- 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 aecb1327b1abb58c03dc7db215897ebf77429fcd..bd6cc959703e1f8f7a3f07c3957198eea47178ff 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 9db6cfa78a5a375dc8d1d257473e6f2dfd124cab..d8301acbd9c0935fa4ec90802731afe5f7da1036 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 0000000000000000000000000000000000000000..d75604a6ad8743f9782400155bb3def9cfd69410 --- /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 0000000000000000000000000000000000000000..abe8bf239fa661ee9d6a9c76b0e60bc0a1364bb6 --- /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 0000000000000000000000000000000000000000..bd4f5af3e414e93f7bd353a807eb145ae9c16377 --- /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 047047e15b5c8a08f017c58136424b3481ce3b00..91c67bdc9b433355ab62debddc6b3081f951b993 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 3e4536e706188a81078315a0f0efc8882bc454f9..0000000000000000000000000000000000000000 --- 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 e427dacf03ac44d5078e10b15d7fe4c4f6e383c3..0000000000000000000000000000000000000000 --- 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 15dbc6fa0d9008ce67bf343024a9bffeb869442d..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..4ddee99a9be291870a1b2a752128d1d4f95f5465 --- /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 0000000000000000000000000000000000000000..19b1bf34eb5ca4964c57e9b503ef15a7e940213f --- /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 0000000000000000000000000000000000000000..a1252a72b1b6ef1bf8d6ad58ebe2ffd962e53fc6 --- /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 60db55d108f1af83689bf6ce9a86a3147c97af83..2d50f858e38348e1f5e8afcbdcf61555014043e6 --- 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 9a215110f909a7c8883a8e3d44abb5b8dbe50acb..0000000000000000000000000000000000000000 --- 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 834ade876fb27691c47f1d02cbaaae22a7429f0e..0000000000000000000000000000000000000000 --- 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 307811a8f4af3792ad742348c6e0793551566777..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..d75604a6ad8743f9782400155bb3def9cfd69410 --- /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 0000000000000000000000000000000000000000..5fe37d73fa28695b715811ab6a267b8ffaff963b --- /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 0000000000000000000000000000000000000000..1fa7219f5b2c7340d2dfe9c686b67ebd3b51099f --- /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 3f7a799f163d1faebcae30394e9e40a6de80898a..6d1fcfec203cbd90b4693d08c68964108cd43968 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 e50e3b333d17d9505c803b9ba51ca34fcdcaafea..dc5b0ef174912208faba03f3e17ad57e53c4ca9c 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 9b1176bdf2cc5e00f1cc8d88dafbb5e00c1080eb..0000000000000000000000000000000000000000 --- 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 858d45891459c812d0a8bf1369854aed026ce041..0000000000000000000000000000000000000000 --- 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 730b717dfaa9102e903c349f97b537be2fabc291..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..d75604a6ad8743f9782400155bb3def9cfd69410 --- /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 0000000000000000000000000000000000000000..9c0a1f180b2f5a13e0c4db6ba5ee93af51f0a9a4 --- /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 0000000000000000000000000000000000000000..f40025c3cb3b414b83123d53cb26575c0ebb1fa1 --- /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 b43ef143fa29d857798b07b0725c14c26f9b1d1c..0000000000000000000000000000000000000000 --- 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 355cf5afcceb252104c582b52c0706d9f3fbb770..0000000000000000000000000000000000000000 --- 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 ab5bc445e57ea094c2b5079252a5c3939c5603ab..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..2bb66b885adab3b3c4eef7b62c3fc348e2b5b54d --- /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 aa9f928147719870e032433d1a3ac85b8ed720d9..0000000000000000000000000000000000000000 --- 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 ee078671aee07513f52f91018bf64d747f250039..5348e24c0a76e6b2f81f0536b8707b58d1fd24ad 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 ee3b307108e483a9ae08780bebecf2de7b9d1cbc..0d8a9c3402e73d2443109d3ce917aed225aa493b 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 ef83c16a5de17b683dd873050ef83dedfa0a005d..0000000000000000000000000000000000000000 --- 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 a7daead6570cdc6b4f249031185830640f62fc0d..0000000000000000000000000000000000000000 --- 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 2444be340eda2cb7a5a846cb44cd71694626e1c0..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..d75604a6ad8743f9782400155bb3def9cfd69410 --- /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 0000000000000000000000000000000000000000..c48e10c2cbd8f7cfa91a59463d8236d01a873a18 --- /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 0000000000000000000000000000000000000000..42793a84d9e5d3172ac93a767d1475e8803d343e --- /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 5ef01ca8d4fcc8a5c6caa9a142b53d18c3d74462..5e7d29a80afd56095ef600a25c876349068cfa0b 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