Changeset 846 in lmdz_wrf


Ignore:
Timestamp:
Jun 16, 2016, 6:14:51 PM (9 years ago)
Author:
lfita
Message:

Towards the definitive general script of plotting and analysing multiple models

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/model_graphics.bash

    r835 r846  
    1 #!/bin/bash -x
    2 main='WRF+LMDZ_graphics.bash'
     1#!/bin/bash
     2# L. Fita, June 2016. Generic script to plot model outputs
     3
     4main='model_graphics.bash'
    35errormsg='ERROR -- error -- ERROR -- error'
    4 HOMEpy=/home/lfita/etudes/WRF_LMDZ/svn/LMDZ_WRF/tools
    5 
    6 function variables_values(){
    7 ## Function to provide values to plot the different variables
    8 #    return:
    9 #      1: var name
    10 #      2: std name
    11 #      3: minimum
    12 #      4: maximum
    13 #      5: long name ('|' for spaces)
    14 #      6: units
    15 #      7: color palette (following:
    16 #        http://matplotlib.org/1.3.1/examples/color/colormaps_reference.html)
    17 #
    18 #    $ variables_values 'WRFght'
    19 #    zg geopotential_height 0. 80000. geopotential|height m2s-2 rainbow
    20 
    21   fname='variables_values'
    22 
    23   variablesfile=${HOME}/bats/variables.inf
    24 
    25   if test ! -f ${variablesfile}; then
     6warnmsg='ERROR -- error -- ERROR -- error'
     7
     8function uploadvars() {
     9# Function to upload variables to the system from an ASCII file as:
     10#   [varname] = [value]
     11  fileval=$1
     12  errormsg='ERROR -- error -- ERROR -- error'
     13
     14  if test ! -f ${fileval}; then
    2615    echo ${errormsg}
    27     echo "  "${fname}": variables file '"${variablesfile}"' does not exist !!!"
    28   fi
    29 
    30   case $1 in
    31     'a_tht'|'LA_THT') varname='a_tht' ;;
    32     'bils'|'LBILS') varname='bils' ;;
    33     'clt'|'CLT'|'cldt'|'Total cloudiness') varname='clt' ;;
    34     'cll'|'cldl'|'Low-level cloudiness') varname='cll' ;;
    35     'clm'|'cldm'|'Mid-level cloudiness') varname='clm' ;;
    36     'clh'|'cldh'|'High-level cloudiness') varname='clh' ;;
    37     'dtcon'|'LDTCON') varname='dtcon' ;;
    38     'evspsbl'|'QFX'|'evap'|'LEVAP') varname='evspsbl' ;;
    39     'hfls'|'LH'|'flat'|'LFLAT') varname='hfls' ;;
    40     'hfss'|'sens'|'LSENS') varname='hfss' ;;
    41     'hus'|'WRFrh'|'LMDZrh') varname='hus' ;;
    42     'huss'|'WRFrhs'|'LMDZrhs') varname='huss' ;;
    43     'lat'|'XLAT') varname='lat' ;;
    44     'lon'|'XLONG') varname='lon' ;;
    45     'pr'|'RAINTOT'|'precip'|'Precip Totale liq+sol') varname='pr' ;;
    46     'pracc'|'ACRAINTOT') varname='pracc' ;;
    47     'prc'|'WRFprc'|'LPLUC'|'pluc') varname='prc' ;;
    48     'pres'|'presnivs'|'pressure') varname='pres' ;;
    49     'prls'|'WRFprls'|'LPLUL'|'plul') varname='prls' ;;
    50     'prw'|'WRFprw') varname='prw' ;;
    51     'ps'|'psfc'|'PSFC'|'psol'|'Surface Pressure') varname='ps' ;;
    52     'q_th') varname='q_th' ;;
    53     'r'|'QVAPOR') varname='r' ;;
    54     'rsds'|'SWdnSFC'|'SWdn at surface'|'SWDOWN') varname='rsds' ;;
    55     'rsdsacc') varname='rsdsacc' ;;
    56     's_pblh'|'LS_PBLH') varname='zmla' ;;
    57     's_pblt'|'LS_PBLT') varname='tmla' ;;
    58     's_therm'|'LS_THERM') varname='s_therm' ;;
    59     'ta'|'WRFt'|'temp'|'Air temperature') varname='ta' ;;
    60     'tmlap'|'LS_PBLT'|'s_pblt') varname='tmla' ;;
    61     'tas'|'T2'|'t2m'|'Temperature 2m') varname='tas' ;;
    62     'time'|'time_counter') varname='time' ;;
    63     'ua'|'vitu'|'U'|'Zonal wind') varname='ua' ;;
    64     'uas'|'u10m'|'U10'|'Vent zonal 10m') varname='uas' ;;
    65     'va'|'vitv'|'V'|'Meridional wind') varname='va' ;;
    66     'vas'|'v10m'|'V10'|'Vent meridien 10m') varname='vas' ;;
    67     'wake_h'|'LWAKE_H') varname='wakeh' ;;
    68     'wake_s'|'LWAKE_S') varname='wakes' ;;
    69     'wss'|'SPDUV') varname='wss' ;;
    70     'xtime'|'XTIME') varname='xtime' ;;
    71     'zg'|'WRFght'|'Geopotential height') varname='zg' ;;
    72     'zmax_th'|'LZMAX_TH') varname='zmax_th' ;;
    73     'zmla'|'LS_PBLH'|'s_pblh') varname='zmla' ;;
    74     *)
    75       echo $errormsg
    76       echo "  "${fname}": variable '"$1"' not defined !!!"
    77       exit
    78     ;;
    79   esac
    80 
    81   varvals=`cat ${variablesfile} | grep ' '${varname}' ' | tr '@' ' '`
    82   varvalsT=`cat ${variablesfile} | grep ' '${varname}' ' | tr ' ' '#'`
    83   Lvarvals=`expr length ${varvalsT}'0'`
    84 
    85   if test ${Lvarvals} -le 1; then
    86     echo ${errormsg}
    87     echo "  "${fname}": variable name '"${varname}"' not defined in file '"          \
    88       ${variablesfile}"' !!!"
     16    echo "  "${fname}": file '"${fileval}"' does not exist!!"
    8917    exit
    9018  fi
    91  
    92   echo ${varvals}
     19
     20  Nlin=`wc -l ${fileval} | awk '{print $1}'`
     21
     22  ilin=1
     23  while test ${ilin} -le ${Nlin}; do
     24    line=`head -n ${ilin} ${fileval} | tail -n 1`
     25    varname=`echo ${line} | tr '=' ' ' | awk '{print $1}'`
     26    value=`echo ${line} | tr '=' ' ' | awk '{print $2}'`
     27    Lvarname=`expr length ${varname}'0'`
     28
     29    if test ${Lvarname} -gt 1 && test ! ${varname:0:1} = '#'; then
     30      export ${varname}=${value}
     31    fi
     32    ilin=`expr ${ilin} + 1`
     33  done
    9334}
    9435
     
    11152    #######
    11253
    113 ifold='/bdd/PCER/workspace/lfita/etudes/WRF_LMDZ/WaquaL/WRF_LMDZ'
    114 #ofold='/san0/lflmd/etudes/WRF_LMDZ/WaquaL/LMDZ'
    115 ofold='/bdd/PCER/workspace/lfita/etudes/WRF_LMDZ/WaquaL/WRF_LMDZ'
    116 
    117 experiments='AR40:NPv31'
    118 #varkinds='mean:sfc:diag'
    119 varkinds='sfc'
    120 
    121 mean_variables='dim2mean|WRFt:dim2mean|U:dim2mean|V:dim2mean|WRFght:dim2mean|WRFrh'
    122 
    123 # Variables to compute longitudinal means for a Hovmoeller
    124 sfc_variables='dim2mean|T2:dim2mean|U10:dim2mean|V10:dim2mean|PSFC:dim2mean|RAINTOT:'
    125 sfc_variables=${sfc_variables}'dim2mean|SWDOWN:dim2mean|WRFprw:dim2mean|WRFrhs:'
    126 sfc_variables=${sfc_variables}'dim2mean|HFX:dim2mean|LH:dim2mean|Q2:'
    127 sfc_variables=${sfc_variables}'dim2mean|PBLH:dim2mean|QFX:'
    128 sfc_variables='dim2mean|RAINTOT'
    129 sfc_variables_AR40=${sfc_variables}
    130 sfc_variables_NPv31=${sfc_variables}':dim2mean|LWAKE_S:dim2mean|LWAKE_H:dim2mean|LS_THERM:'
    131 sfc_variables_NPv31=${sfc_variables_NPv31}'dim2mean|LZMAX_TH'
    132 
    133 # Variables to get from the diagnostics
    134 diag_variables='dim2mean|clt:dim2mean|cllmh:'
    135 diag_variables=${diag_variables}'dim2mean|WRFprc:dim2mean|WRFprls:'
    136 #diag_variables=${diag_variables}'dim2mean|WRFbils'
    137 
    138 # Variables to compute temporal means on a 2D map
    139 #var2Dtmeans_AR40='WRFprc:WRFprls:PBLH:QFX:HFX:LH:WRFbils'
    140 var2Dtmeans_AR40='WRFprc:WRFprls:PBLH:QFX:HFX:LH'
    141 var2Dtmeans_AR40='WRFprc:WRFprls:PBLH:QFX:HFX:LH:WRFbils:RAINTOT:U10:V10:T2:'
    142 var2Dtmeans_AR40=${var2Dtmeans_AR40}'PSFC:clt:cll:clm:clh:cllmh:WRFprw:Q2:pr:prw'
    143 
    144 var2Dtmeans_NPv31=${var2Dtmeans_AR40}':LWAKE_S:LWAKE_H:LS_THERM:LZMAX_TH'
    145 
    146 #inst_variables='mclt_lmdz:pr_lmdz:mwss'
    147 graph_couples_mean='hus@ta:va@ua'
    148 graph_couples_sfc='tas@ps:uas@vas:pr@rsds:prw@huss:prls@prc:'
    149 #graph_couples_sfc=${graph_couples_sfc}'hfls@hfss:evspsbl@bils'
    150 graph_couples_sfc=${graph_couples_sfc}'hfls@hfss'
    151 graph_couples_sfc_AR40=${graph_couples_sfc}
    152 graph_couples_sfc_NPv31=${graph_couples_sfc}':zmaxth@stherm:wakeh@wakes:zmaxth@stherm'
    153 graph_couples_diag='prls@prc:clt@cll:clh@clm'
    154 #graph_couples_z='dtcon@pluc'
    155 
    156 #graph_couples_diag='prls@prc'
    157 
    158 lon2DZsecvars='WRFt:U:V:WRFrh:WRFght'
    159 lon2DZsecpts=9:15:21
    160 
    161 # Differences between experiments
    162 diffkinds='diffZ:diffH'
    163 diffZvars='ua:va:ta:hus'
    164 diffHvars='uas:vas:ps:pr'
    165 
    166 filenmean='vertical_interpolation_WRFp.nc'
    167 #ifoldmean='/media/data1/etudes/WRF_LMDZ/WaquaL/WRF_LMDZ'
    168 ifoldmean='/bdd/PCER/workspace/lfita/etudes/WRF_LMDZ/WaquaL/WRF_LMDZ'
    169 
    170 filensfc='wrfout_d01_1980-03-01_00:00:00'
    171 #ifoldsfc='/media/data1/etudes/WRF_LMDZ/WaquaL/WRF_LMDZ'
    172 ifoldsfc='/bdd/PCER/workspace/lfita/etudes/WRF_LMDZ/WaquaL/WRF_LMDZ'
    173 
    174 filendiag='diagnostics.nc'
    175 ifolddiag='/bdd/PCER/workspace/lfita/etudes/WRF_LMDZ/WaquaL/WRF_LMDZ'
     54# Uploading environment
     55uploadvars model_graphics.dat
     56
     57export
     58exit
     59
    17660
    17761timeval='tstep'
    17862zval='null'
    17963dimval='lon,lat,pressure,time'
    180 kindval='pdf'
    18164
    18265compute=0
     
    18669lonZsec=false
    18770differences=true
    188 
    189 plevels='100000.,97500.,95000.,92500.,90000.,85000.,80000.,75000.,70000.,'
    190 plevels=${plevels}'65000.,60000.,55000.,50000.,45000.,40000.,35000.,30000.,'
    191 plevels=${plevels}'25000.,20000.,15000.,10000.,5000.,2500.,1000.,'
    192 plevels=${plevels}'500.,250.'
    193 
    194 # Couples to draw on a 2D map
    195 coup2D_AR40='prls@prc::zmla@tmla:hfls@hfss:evspsbl@bils'
    196 coup2D_NPv31=${coup2D_AR40}':wakeh@wakes:zmaxth@stherm'
    19771
    19872combosfile=${HOMEpy}/diagnostics.inf
Note: See TracChangeset for help on using the changeset viewer.