Changeset 2023 in lmdz_wrf for trunk/tools


Ignore:
Timestamp:
Aug 3, 2018, 4:24:05 PM (7 years ago)
Author:
lfita
Message:

Adding retrieval of surface 2D maps

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/get_WRFsounding-surface_data.bash

    r2022 r2023  
    294294  fi
    295295}
     296
     297function get_WRFsfc2D_data(){
     298# Function to get the data to compute analysis in a surface map
     299#   filen= name of the file
     300#   sfcdiagnames= diagnostics to compute (as ':' separated list)
     301#   nondiagvs= ':' list of variables which are not from a diagnostics ('None' for
     302#     without)
     303
     304  funcvals=$1
     305
     306  filen=`echo ${funcvals} | tr '#' ' ' | awk '{print $1}'`
     307  sfcdiagnames=`echo ${funcvals} | tr '#' ' ' | awk '{print $2}'`
     308  nondiagvs=`echo ${funcvals} | tr '#' ' ' | awk '{print $3}'`
     309
     310  # Computing sfc diagnostics
     311  sfcmapdiagd='Time@WRFtime:south_north@XLAT:west_east@XLONG'
     312  diagns=`echo ${sfcdiagnames} | tr ':' ' '`
     313
     314  # getting that variables only required for the diagnostics
     315  vardiags=''
     316  idiag=1
     317  for diagn in ${diagns}; do
     318    diagv=`cat $pyHOME/diagnostics.inf | grep WRF | grep ${diagn}',' | tr ',' ' ' |  \
     319      awk '{print $2"|"$3}'`
     320    if test ${idiag} -eq 1; then
     321      sfcdiagvals=${diagv}
     322      vardiags=`echo ${diagv} | tr '|' ' ' | awk '{print $2}' | tr '@' ':'`
     323    else
     324      sfcdiagvals=${sfcdiagvals}','${diagv}
     325      vardiag=`echo ${diagv} | tr '|' ' ' | awk '{print $2}' | tr '@' ' '`
     326      for vd in ${vardiag}; do
     327        if ! $(isin_list ${vardiags} ${vd}); then vardiags=${vardiags}':'${vd}; fi
     328      done
     329    fi
     330    idiag=`expr ${idiag} + 1`
     331  done
     332
     333  # Inlcuding non-diagnostics
     334  if test ! ${nondiagvs} = 'None'; then
     335    nvns=`echo ${nondiagvs} | tr ':' ' '`
     336    for vn in ${nvns}; do
     337      if ! $(isin_list ${vardiags} ${vn}); then vardiags=${vardiags}':'${vn}; fi
     338    done
     339  fi
     340  vardiag=`echo ${vardiags} | tr ':' ','`
     341 
     342  # Getting values
     343  if ${fscratch}; then rm ${simsfcmapf} >& /dev/null; fi
     344  if test ! -f ${simsfcmapf}; then
     345    values='Time,0,-1,1@south_north,0,-1,1@west_east,0,-1,1@south_north_stag,0,-1,1@'
     346    values=${values}'west_east_stag,0,-1,1:False'
     347    python ${pyHOME}/nc_var.py -o DataSetSection_multidims -f ${filen}               \
     348      -S ${values} -v ${vardiag}
     349    if test $? -ne 0; then
     350      echo ${errmsg}
     351      echo "  python failed!!"
     352      echo python ${pyHOME}/nc_var.py -o DataSetSection_multidims -f ${filen}        \
     353        -S "'"${values}"'"  -v ${vardiag}
     354      exit
     355    fi
     356    echo "* get values for 2D map diagnostics: " >> ${ofileins}
     357    echo python ${pyHOME}/nc_var.py -o DataSetSection_multidims -f ${filen}          \
     358      -S "'"${values}"'" -v ${vardiag} >> ${ofileins}
     359    echo " " >> ${ofileins}
     360
     361    ofilen='newfile_multidims.nc'
     362    mv ${ofilen} ${simsfcmapf}
     363  fi
     364
     365  if ${fscratch}; then rm ${simsfcmapdiagsf}; fi
     366  if test ! -f ${simsfcmapdiagsf}; then
     367    python ${pyHOME}/diagnostics.py -f ${simsfcmapf} -d ${sfcmapdiagd}               \
     368      -v ${sfcdiagvals}
     369    if test $? -ne 0; then
     370      echo ${errmsg}
     371      echo "  python failed!!"
     372      echo python ${pyHOME}/diagnostics.py -f ${simsfcmapf} -d "'"${sfcmapdiagd}"'"  \
     373        -v "'"${sfcdiagvals}"'"
     374      exit
     375    fi
     376    echo "* diagnostics for sfc 2D map: " >> ${ofileins}
     377    echo python ${pyHOME}/diagnostics.py -f ${simsfcmapf} -d "'"${sfcmapdiagd}"'"    \
     378      -v "'"${sfcdiagvals}"'" >> ${ofileins}
     379    echo " " >> ${ofileins}
     380    mv diagnostics.nc ${simsfcmapdiagsf}
     381    if $(isin_list ${sfcdiagnames} wds); then
     382      #To rad
     383      python ${pyHOME}/nc_var.py -o valmod -S mulc,0.0174532925199                   \
     384        -f ${simsfcmapdiagsf} -v wds
     385      python ${pyHOME}/nc_var.py -o varaddattr -S 'units|rad' -f ${simsfcmapdiagsf}  \
     386        -v wds
     387    fi
     388
     389    #Adding non-diagnostic variables
     390    if test ! ${nondiagvs} = 'None'; then
     391      varsadd=`echo ${nondiagvs} | tr ':' ' '`
     392      for vadd in ${varsadd}; do
     393        python ${pyHOME}/nc_var.py -o fvaradd -S ${simsfcmapf},${vadd}               \
     394          -f ${simsfcmapdiagsf}
     395        if test $? -ne 0; then
     396          echo ${errmsg}
     397          echo "  python failed!!"
     398          echo python ${pyHOME}/nc_var.py -o fvaradd -S "'"${simsfcmapf},${vadd}"'"  \
     399            -f ${simsfcmapdiagsf}
     400          exit
     401          rm ${simsfcmapdiagsf}
     402        fi
     403        echo "* adding variable '"${vadd}"' at sfc map: " >> ${ofileins}
     404        echo python ${pyHOME}/nc_var.py -o fvaradd -S "'"${simsfcmapf},${vadd}"'"    \
     405          -f ${simsfcmapdiagsf} >> ${ofileins}
     406        echo " " >> ${ofileins}
     407        # CF varname
     408        CFvarn=`python $pyHOME/generic.py -o variables_values -S ${vadd} |           \
     409          tr ':' ' ' | awk '{print $1}'`
     410        if test $? -ne 0; then
     411          echo ${errmsg}
     412          echo "  python failed!!"
     413          echo python $pyHOME/generic.py -o variables_values -S ${vadd}
     414          exit
     415          rm ${simsfcmapdiagsf}
     416        fi
     417        python $pyHOME/nc_var.py -o chvarname -S ${CFvarn} -f ${simsfcmapdiagsf}     \
     418          -v ${vadd}
     419        if test $? -ne 0; then
     420          echo ${errmsg}
     421          echo "  python failed!!"
     422          echo python ${pyHOME}/nc_var.py -o chvarname -S ${CFvarn}                  \
     423            -f ${simsfcmapdiagsf} -v ${vadd}
     424          exit
     425          rm ${simsfcmapdiagsf}
     426        fi
     427      done
     428    fi
     429  fi
     430}
     431
    296432#######    #######
    297433## MAIN
     
    331467  fi
    332468
     469  # Surface maps
     470  if test ! ${sfcmapid} = 'None'; then
     471    simsfcmapf=${odir}'/simout_vars_sfcmap_'${stid}'_'${expl}'_'${fdate}'.nc'
     472    simsfcmapdiagsf=${odir}'/simout_sfcmapdiags_'${stid}'_'${expl}'_'${fdate}'.nc'
     473
     474    fvals=${infilen}'#'${wrfsfcdiags}'#'${wrfsfcnodiags}
     475    get_WRFsfc2D_data ${fvals}
     476
    333477fi
Note: See TracChangeset for help on using the changeset viewer.