# This script loops over the wfip data directories # and creates the data availability web table. # define the data availability procedure availnorth() { case "$1" in psd2 ) path=/psd2data/obs/realtime/ case "$2" in Radar* ) case "$3" in WwTemp ) fn="$4$yy$yday"."$hour"t;; WwWind ) fn="$4$yy$yday"."$hour"w;; * ) ;; esac ;; CsiDa* ) case "$3" in SurfaceMet ) fn="$4$yy$yday"."$hour"m;; * ) ;; esac ;; esac ;; wl ) path=/psd3data/wfip/wfipdata/private/$1 case "$2" in Sodar* ) case "$4" in bfl ) fn=WLSODAR172"$wldate".txt;; dst ) fn=WLSODAR169"$wldate".txt;; * ) ;; esac ;; esac ;; llnl ) path=/psd3data/wfip/wfipdata/public/$1 case "$2" in Lidar* ) fn=WLS7-96_"$llnldate"__00_00_00.sta;; * ) ;; esac ;; anl ) path=/psd3data/wfip/wfipdata/public/$1 case "$2" in CsiDa* ) case "$4" in dst ) cd $path/CsiDatalogger/SurfaceFlux/dst if havefiles $anldate; then fp=`ls -1 $path/CsiDatalogger/\ SurfaceFlux/dst/\ dst_flx."$anldate"*.dat|tail -1` fn=${fp##/*/} else fn=nofile.dat fi ;; jyg ) cd $path/CsiDatalogger/SurfaceFlux/jyg if havefiles $anldate; then fp=`ls -1 $path/CsiDatalogger/\ SurfaceFlux/jyg/\ jyg_flx."$anldate"*.dat|tail -1` fn=${fp##/*/} else fn=nofile.dat fi ;; lds ) cd $path/CsiDatalogger/SurfaceFlux/lds if havefiles $anldate; then fp=`ls -1 $path/CsiDatalogger/\ SurfaceFlux/lds/\ lds_flx."$anldate"*.dat|tail -1` fn=${fp##/*/} else fn=nofile.dat fi ;; * ) ;; esac ;; Sodar* ) case "$4" in anw ) cd $path/SodarDoppler/CnsWind/anw if havefiles $anldate; then fp=`ls -1 $path/SodarDoppler/CnsWind/\ anw/anw_sod."$anldate"*.wtb|\ tail -1` fn=${fp##/*/} else fn=nofile.dat fi ;; jyg ) cd $path/SodarDoppler/CnsWind/jyg if havefiles $anldate; then fp=`ls -1 $path/SodarDoppler/CnsWind/\ jyg/jyg_sod."$anldate"*.wtb|\ tail -1` fn=${fp##/*/} else fn=nofile.dat fi ;; lds ) cd $path/SodarDoppler/CnsWind/lds if havefiles $anldate; then fp=`ls -1 $path/SodarDoppler/CnsWind/\ lds/lds_sod."$anldate"*.wtb|\ tail -1` fn=${fp##/*/} else fn=nofile.dat fi ;; * ) ;; esac ;; esac ;; * ) path=/psd3data/wfip/wfipdata/public/$1 ;; esac if [ -z $4 ]; then dn="NoDot" adn="No Dot" else #echo "$path"/"$2"/"$3"/"$4" $fn if [ -d "$path"/"$2"/"$3"/"$4" ]; then cd "$path"/"$2"/"$3"/"$4" #echo `pwd` fn $fn if [ -f $fn ]; then dn="GreenDot" adn="Green Dot" else dn="RedDot" adn="Red Dot" fi else dn="NoDot" adn="No Dot" fi fi cat << EOF $adn EOF } availsouth() { case "$1" in awst ) path=/psd3data/wfip/wfipdata/private/awst case "$2" in Sodar* ) case "$4" in cle ) cd $path/SodarDoppler/CnsWind/cle if havefiles "$date"; then fp=`ls -1 $path/SodarDoppler/\ CnsWind/cle/CPT_*_"$date"*.dat|\ tail -1` fn=${fp##/*/} else fn=nofile.dat fi ;; oza ) cd $path/SodarDoppler/CnsWind/oza if havefiles "$date"; then fp=`ls -1 $path/SodarDoppler/\ CnsWind/oza/OZA_*_"$date"*.dat|\ tail -1` fn=${fp##/*/} else fn=nofile.dat fi ;; rgn ) cd $path/SodarDoppler/CnsWind/rgn if havefiles "$date"; then fp=`ls -1 $path/SodarDoppler/\ CnsWind/rgn/RGN_*_"$date"*.dat|\ tail -1` fn=${fp##/*/} else fn=nofile.dat fi ;; * ) ;; esac ;; esac ;; ncsu ) path=/psd3data/wfip/wfipdata/private/awst case "$2" in Sodar* ) case "$4" in lbk ) fn="$ncsudate".mnd ;; * ) ;; esac ;; esac ;; frd ) path=/psd3data/wfip/wfipdata/public/frd case "$2" in Sodar* ) case "$4" in bdy ) fn=bdy"$date"_sod.txt ;; coc ) fn=coc"$date"_sod.txt ;; jtn ) fn=jtn"$date"_sod.txt ;; * ) ;; esac ;; Radar* ) case "$4" in bdy ) fn=bdy"$date"_pro.txt ;; coc ) fn=coc"$date"_pro.txt ;; * ) ;; esac ;; CsiDa* ) case "$3" in SurfaceMet ) case "$4" in bdy ) fn=bdy"$date"_met.txt ;; * ) ;; esac ;; SurfaceFlux ) case "$4" in bdy ) fn=bdy"$fdat"_son.csv ;; coc ) fn=coc"$fdat"_son.csv ;; jtn ) fn=jtn"$fdat"_son.csv ;; * ) ;; esac ;; * ) ;; esac ;; esac ;; pnnl ) path=/psd3data/wfip/wfipdata/public/pnnl case "$4" in cle ) fn=cle"$date".dat ;; coc ) fn=coc"$date".dat ;; com ) fn=com"$date".dat ;; jtn ) fn=jtn"$date".dat ;; oza ) fn=oza"$date".dat ;; sww ) fn=sww"$date".dat ;; * ) ;; esac ;; psd2 ) path=/psd2data/obs/realtime/ case "$2" in Radar* ) case "$3" in WwTemp ) fn="$4$yy$yday"."$hour"t;; WwWind ) fn="$4$yy$yday"."$hour"w;; * ) ;; esac ;; esac ;; * ) path=/psd3data/wfip/wfipdata/public ;; esac #echo "$path"/"$2"/"$3"/"$4" $fn if [ -z $4 ]; then dn="NoDot" adn="No Dot" else if [ -d "$path"/"$2"/"$3"/"$4" ]; then cd "$path"/"$2"/"$3"/"$4" #echo `pwd` fn $fn if [ -f $fn ]; then dn="GreenDot" adn="Green Dot" else dn="RedDot" adn="Red Dot" fi else dn="NoDot" adn="No Dot" fi fi cat << EOF $adn EOF } # main body of script # generate the date, year day and hour strings dates=`date -u --date="1 hour ago" +%Y%m%d%H%j` wldate=`date -u +%Y%m%d%H` fdat=`date -u --date="1 day ago" +%Y%m%d` llnldate=`date -u --date="1 day ago" +%Y_%m_%d` ncsudate=`date +%y%m%d` anldate=`date -u --date="-1 hour" +%y%m%d%H` date=${dates:0:10} wdate=${dates:0:4}-${dates:4:2}-${dates:6:2} yy=${dates:2:2} yday=${dates:10:3} hour=${dates:8:2} cat << EOF DOE-NOAA Wind Forecast Improvement Project (WFIP)

This server and data are not considered "operational", and we do not guarantee availability or timely delivery of data. We also make no warranties, either expressed or implied, concerning the accuracy, completeness, reliability, or suitability of the information. These data have not been quality controlled, and cannot be published without permission from the Physical Sciences Division.

Data Availability Table
`date -u` (Year Day `date -u +%j`)
EOF #anw cat << EOF EOF availnorth psd2 Radar915 WwTemp anw availnorth psd2 Radar915 WwWind anw availnorth anl SodarDoppler CnsWind anw availnorth llnl LidarWindcube CnsWind availnorth anl CsiDatalogger SurfaceFlux availnorth psd2 CsiDatalogger SurfaceMet anw #bfl cat << EOF EOF availnorth psd2 Radar449 WwTemp bfl availnorth psd2 Radar449 WwWind bfl availnorth wl SodarDoppler CnsWind bfl availnorth llnl LidarWindcube CnsWind availnorth anl CsiDatalogger SurfaceFlux availnorth psd2 CsiDatalogger SurfaceMet bfl #dst cat << EOF EOF availnorth psd2 Radar915 WwTemp dst availnorth psd2 Radar915 WwWind dst availnorth wl SodarDoppler CnsWind dst availnorth llnl LidarWindcube CnsWind dst availnorth anl CsiDatalogger SurfaceFlux dst availnorth psd2 CsiDatalogger SurfaceMet dst #jyg cat << EOF EOF availnorth psd2 Radar915 WwTemp jyg availnorth psd2 Radar915 WwWind jyg availnorth anl SodarDoppler CnsWind jyg availnorth llnl LidarWindcube CnsWind availnorth anl CsiDatalogger SurfaceFlux jyg availnorth psd2 CsiDatalogger SurfaceMet jyg #lds cat << EOF EOF availnorth psd2 Radar915 WwTemp lds availnorth psd2 Radar915 WwWind lds availnorth anl SodarDoppler CnsWind lds availnorth llnl LidarWindcube CnsWind availnorth anl CsiDatalogger SurfaceFlux lds availnorth psd2 CsiDatalogger SurfaceMet lds #mbg cat << EOF EOF availnorth psd2 Radar915 WwTemp mbg availnorth psd2 Radar915 WwWind mbg availnorth wl SodarDoppler CnsWind availnorth llnl LidarWindcube CnsWind availnorth anl CsiDatalogger SurfaceFlux availnorth psd2 CsiDatalogger SurfaceMet mbg #sux cat << EOF EOF availnorth anl Radar915 WwTemp sux availnorth anl Radar915 CnsWind sux availnorth wl SodarDoppler CnsWind availnorth llnl LidarWindcube CnsWind availnorth anl CsiDatalogger SurfaceFlux availnorth pnnl CsiDatalogger SurfaceMet #vlc cat << EOF EOF availnorth psd2 Radar449 WwTemp vlc availnorth psd2 Radar449 WwWind vlc availnorth wl SodarDoppler CnsWind availnorth llnl LidarWindcube CnsWind availnorth anl CsiDatalogger SurfaceFlux availnorth psd2 CsiDatalogger SurfaceMet vlc #wfc cat << EOF EOF availnorth psd2 Radar915 WwTemp wfc availnorth psd2 Radar915 WwWind wfc availnorth psd2 SodarDoppler CnsWind availnorth llnl LidarWindcube CnsWind availnorth anl CsiDatalogger SurfaceFlux availnorth psd2 CsiDatalogger SurfaceMet wfc cat << EOF EOF #bdy cat << EOF EOF availsouth frd Radar915 CnsTemp availsouth frd Radar915 CnsWind bdy #availsouth psd2 Radar915 WwWind bdy availsouth frd SodarDoppler CnsWind bdy availsouth llnl LidarWindcube CnsWind availsouth frd CsiDatalogger SurfaceFlux bdy availsouth frd CsiDatalogger SurfaceMet bdy #cle cat << EOF EOF availsouth awst Radar915 CnsTemp availsouth awst Radar915 CnsWind availsouth awst SodarDoppler CnsWind cle availsouth llnl LidarWindcube CnsWind availsouth frd CsiDatalogger SurfaceFlux availsouth pnnl CsiDatalogger SurfaceMet cle #coc cat << EOF EOF availsouth psd2 Radar915 WwTemp coc availsouth psd2 Radar915 WwWind coc availsouth frd SodarDoppler CnsWind coc availsouth llnl LidarWindcube CnsWind availsouth frd CsiDatalogger SurfaceFlux coc availsouth pnnl CsiDatalogger SurfaceMet coc #com cat << EOF EOF availsouth awst Radar915 CnsTemp availsouth awst Radar915 CnsWind availsouth awst SodarDoppler CnsWind availsouth llnl LidarWindcube CnsWind availsouth frd CsiDatalogger SurfaceFlux availsouth pnnl CsiDatalogger SurfaceMet com #jtn cat << EOF EOF availsouth awst Radar915 CnsTemp availsouth awst Radar915 CnsWind availsouth frd SodarDoppler CnsWind jtn availsouth llnl LidarWindcube CnsWind availsouth frd CsiDatalogger SurfaceFlux jtn availsouth pnnl CsiDatalogger SurfaceMet jtn #lbk cat << EOF EOF availsouth awst Radar915 CnsTemp availsouth awst Radar915 CnsWind availsouth ncsu SodarDoppler CnsWind lbk availsouth llnl LidarWindcube CnsWind availsouth frd CsiDatalogger SurfaceFlux availsouth pnnl CsiDatalogger SurfaceMet #oza cat << EOF EOF availsouth awst Radar915 CnsTemp availsouth awst Radar915 CnsWind availsouth awst SodarDoppler CnsWind oza availsouth llnl LidarWindcube CnsWind availsouth frd CsiDatalogger SurfaceFlux availsouth pnnl CsiDatalogger SurfaceMet oza #rgn cat << EOF EOF availsouth frd Radar915 CnsTemp availsouth frd Radar915 CnsWind availsouth awst SodarDoppler CnsWind rgn availsouth llnl LidarWindcube CnsWind availsouth frd CsiDatalogger SurfaceFlux availsouth pnnl CsiDatalogger SurfaceMet #sww cat << EOF EOF availsouth frd Radar915 CnsTemp availsouth frd Radar915 CnsWind availsouth awst SodarDoppler CnsWind availsouth llnl LidarWindcube CnsWind availsouth frd CsiDatalogger SurfaceFlux availsouth pnnl CsiDatalogger SurfaceMet sww cat << EOF
North Study Area
Site Radar Sodar Lidar In-situ
Name State ID Temp Winds Winds Winds SurfFlux SurfMet
Ainsworth NE anw
Buffalo SD bfl
De Smet SD dst
St James MN jyg
Leeds ND lds
Mobridge SD mbg
Sioux City IA sux
Valley City ND vlc
Watford City ND wfc
South Study Area
Brady TX bdy
Cleburne TX cle
Colorado City TX coc
Coleman TX com
Jayton TX jtn
Lubbock TX lbk
Ozona TX oza
Reagan TX rgn
Sweetwater TX sww
    = data from $wdate hour $hour UTC
    = no data from $wdate hour $hour UTC
EOF