diff --git a/batch/spawn_stats.generic.sh b/batch/spawn_stats.generic.sh index f51f807..48b88a9 100755 --- a/batch/spawn_stats.generic.sh +++ b/batch/spawn_stats.generic.sh @@ -137,8 +137,8 @@ echo "MSG: Will produce graphics for these forecast lead times --> ${FHRS[*]}" # Get all of the ATCF files so they can be searched later. # If duplicates exist, keep the final ATCF (ATCF2). -ATCF_TMP=( `find ${ATCF2_DIR} -type f -name "*${ATCF2_TAG}" | awk -F'/' '{print $NF $0}' | sort -t. -k2,2n | cut -d'/' -f2- | awk '{a="/"$0; print a}'` ) -ATCF_TMP+=( `find ${ATCF1_DIR} -type f -name "*${ATCF1_TAG}" | awk -F'/' '{print $NF $0}' | sort -t. -k2,2n | cut -d'/' -f2- | awk '{a="/"$0; print a}'` ) +ATCF_TMP=( `find ${ATCF2_DIR} -type f -name "*${SID,,}*${IDATE}*${ATCF2_TAG}" | awk -F'/' '{print $NF $0}' | sort -t. -k2,2n | cut -d'/' -f2- | awk '{a="/"$0; print a}'` ) +ATCF_TMP+=( `find ${ATCF1_DIR} -type f -name "*${SID,,}*${IDATE}*${ATCF1_TAG}" | awk -F'/' '{print $NF $0}' | sort -t. -k2,2n | cut -d'/' -f2- | awk '{a="/"$0; print a}'` ) ATCF_ALL=() for ATCF in ${ATCF_TMP[@]}; do ATCF_BASE="`basename ${ATCF} | cut -d'.' -f-2`" diff --git a/modulefiles/modulefile.gplot.jettcsh b/modulefiles/modulefile.gplot.jettcsh index abb971b..ce23b36 100644 --- a/modulefiles/modulefile.gplot.jettcsh +++ b/modulefiles/modulefile.gplot.jettcsh @@ -33,7 +33,7 @@ setenv NCARG_COLORMAPS $GPLOT_DIR/ncl/colormaps:$NCARG_ROOT/lib/ncarg/colormaps # Python 3 Anaconda if ( "${A}" == "1" ) then - PYDIR "/lfs4/HFIP/hur-aoml/Levi.Cowan/anaconda3" + PYDIR "/lfs1/HFIP/hur-aoml/Ghassan.Alaka/anaconda3" # Python 3 Anaconda # >>> conda initialize >>> # !! Contents within this block are managed by 'conda init' !! diff --git a/ncl/GPLOT_ships.ncl b/ncl/GPLOT_ships.ncl index 4952b5f..62a5998 100644 --- a/ncl/GPLOT_ships.ncl +++ b/ncl/GPLOT_ships.ncl @@ -2775,68 +2775,70 @@ do fff = 0,nFiles-1 gsn_polyline_ndc(wks,(/xleg(ddd)-0.02,xleg(ddd)+0.02/),(/yleg(ddd),yleg(ddd)/),plres) gsn_text_ndc(wks,IDATE2(ddd),xtxt(ddd),ytxt(ddd),txres) end do + + if(isvar("plot"))then + ; Plot a vertical black line at 0 h + LINE01 := new(dimsizes(myHrs),"graphic") + LINE02 := new(dimsizes(IntMjrGrd),"graphic") + + plres@gsLineThicknessF = 10.0 + plres@gsLineColor := "black" + plres@gsLineDashPattern = 0 + plres@tfPolyDrawOrder = "PreDraw" + LINE01(ind(myHrs.eq.0)) = gsn_add_polyline(wks,plot,(/0.,0./),(/res@trYMinF,res@trYMaxF/),plres) + + plres@gsLineThicknessF = 1.5 + plres@gsLineDashPattern = 11 + plres@gsLineColor = "grey70" + do ggg = 0,dimsizes(myHrs)-1 + if(myHrs(ggg).eq.0)then continue end if + LINE01(ggg) = gsn_add_polyline(wks,plot,(/tofloat(myHrs(ggg)),tofloat(myHrs(ggg))/),(/res@trYMinF,res@trYMaxF/),plres) + end do + do ggg = 0,dimsizes(IntMjrGrd)-1 + LINE02(ggg) = gsn_add_polyline(wks,plot,(/res@trXMinF,res@trXMaxF/),(/IntMjrGrd(ggg),IntMjrGrd(ggg)/),plres) + end do - ; Plot a vertical black line at 0 h - LINE01 := new(dimsizes(myHrs),"graphic") - LINE02 := new(dimsizes(IntMjrGrd),"graphic") - - plres@gsLineThicknessF = 10.0 - plres@gsLineColor := "black" - plres@gsLineDashPattern = 0 - plres@tfPolyDrawOrder = "PreDraw" - LINE01(ind(myHrs.eq.0)) = gsn_add_polyline(wks,plot,(/0.,0./),(/res@trYMinF,res@trYMaxF/),plres) - - plres@gsLineThicknessF = 1.5 - plres@gsLineDashPattern = 11 - plres@gsLineColor = "grey70" - do ggg = 0,dimsizes(myHrs)-1 - if(myHrs(ggg).eq.0)then continue end if - LINE01(ggg) = gsn_add_polyline(wks,plot,(/tofloat(myHrs(ggg)),tofloat(myHrs(ggg))/),(/res@trYMinF,res@trYMaxF/),plres) - end do - do ggg = 0,dimsizes(IntMjrGrd)-1 - LINE02(ggg) = gsn_add_polyline(wks,plot,(/res@trXMinF,res@trXMaxF/),(/IntMjrGrd(ggg),IntMjrGrd(ggg)/),plres) - end do + ; Retrieve viewport info from 'plot' + getvalues plot + "vpYF" : vpTOP + "vpXF" : vpLFT + "vpHeightF" : vpHGT + "vpWidthF" : vpWID + end getvalues + vpRGT = vpLFT+vpWID + vpPCTX = 0.01*(vpRGT-vpLFT) + vpBOT = vpTOP-vpHGT + vpPCTY = 0.01*(vpTOP-vpBOT) - ; Retrieve viewport info from 'plot' - getvalues plot - "vpYF" : vpTOP - "vpXF" : vpLFT - "vpHeightF" : vpHGT - "vpWidthF" : vpWID - end getvalues - vpRGT = vpLFT+vpWID - vpPCTX = 0.01*(vpRGT-vpLFT) - vpBOT = vpTOP-vpHGT - vpPCTY = 0.01*(vpTOP-vpBOT) - - ; Graphic Title - add_graphic_title(wks,TITLE,vpLFT,vpTOP+0.045,0.015) - - ; Time Title - TimeTitle = "Init: "+changeTimeFmt(str_sub_str(IDATE,"gfs.",""),"YYYYMMDDHH","HHz DOW, Month DD YYYY",0) - add_time_title(wks,TimeTitle,vpRGT,vpTOP+0.023,0.012,"right") - - ; Storm Title - add_storm_title(wks,str_upper(LONGSID),vpRGT,vpTOP+0.008,0.012,"right") - - ; Add the Model to the Title & Disclaimer to the bottom - if(DO_SRCLBL)then add_model_title(wks,EXPT,ENSID,vpLFT,vpTOP+0.065,0.016) - add_disclaimer(wks,plot,EXPT,-24.,min(IntMjrGrd)+0.05*abs(max(IntMjrGrd)-min(IntMjrGrd)),0.010,"left") + ; Graphic Title + add_graphic_title(wks,TITLE,vpLFT,vpTOP+0.045,0.015) + + ; Time Title + TimeTitle = "Init: "+changeTimeFmt(str_sub_str(IDATE,"gfs.",""),"YYYYMMDDHH","HHz DOW, Month DD YYYY",0) + add_time_title(wks,TimeTitle,vpRGT,vpTOP+0.023,0.012,"right") + + ; Storm Title + add_storm_title(wks,str_upper(LONGSID),vpRGT,vpTOP+0.008,0.012,"right") + + ; Add the Model to the Title & Disclaimer to the bottom + if(DO_SRCLBL)then add_model_title(wks,EXPT,ENSID,vpLFT,vpTOP+0.065,0.016) + add_disclaimer(wks,plot,EXPT,-24.,min(IntMjrGrd)+0.05*abs(max(IntMjrGrd)-min(IntMjrGrd)),0.010,"left") + end if + + ; Finish plot + draw(plot) + frame(wks) + + ; Remove white space on plot + ;if(DO_RMWHITE)then system("convert -trim "+OFILE+".png "+OFILE+".png") end if + if (DO_RMWHITE .and. DO_CONVERTGIF) then + system("convert -trim "+OFILE+".png"+" +repage gif:"+OFILE+".gif && /bin/rm "+OFILE+".png") + else if (DO_CONVERTGIF) then + system("convert "+OFILE+".png"+" +repage gif:"+OFILE+".gif && /bin/rm "+OFILE+".png") + else if (DO_RMWHITE) then + system("convert -trim "+OFILE+".png"+" "+OFILE+".png") + end if end if end if end if - - ; Finish plot - draw(plot) - frame(wks) - - ; Remove white space on plot - ;if(DO_RMWHITE)then system("convert -trim "+OFILE+".png "+OFILE+".png") end if - if (DO_RMWHITE .and. DO_CONVERTGIF) then - system("convert -trim "+OFILE+".png"+" +repage gif:"+OFILE+".gif && /bin/rm "+OFILE+".png") - else if (DO_CONVERTGIF) then - system("convert "+OFILE+".png"+" +repage gif:"+OFILE+".gif && /bin/rm "+OFILE+".png") - else if (DO_RMWHITE) then - system("convert -trim "+OFILE+".png"+" "+OFILE+".png") - end if end if end if end if diff --git a/tbl/ExptInfo.dat b/tbl/ExptInfo.dat index 2fc330c..e3409b7 100755 --- a/tbl/ExptInfo.dat +++ b/tbl/ExptInfo.dat @@ -7,7 +7,7 @@ hafsv0p2a_2021rt, Hurricane Analysis and Forecast System V0.2A HAFSV0.2B_2021_RT, Hurricane Analysis and Forecast System V0.2B HAFSV0.2D_2021_RT, Hurricane Analysis and Forecast System V0.2D - hafsv0p2d_2021rt_test, Hurricane Analysis and Forecast System V0.2D + hafsv0p2d_2021rt, Hurricane Analysis and Forecast System V0.2D HAFSV0.2E_2021_RT, Hurricane Analysis and Forecast System V0.2E H221_ensemble, Hurricane Analysis and Forecast System V0.2E H221_ensemble_00, Hurricane Analysis and Forecast System V0.2E(00)