You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.6 KiB
92 lines
2.6 KiB
#!/bin/bash
|
|
#####################################################################
|
|
# filename: getWxRpt
|
|
#
|
|
# description: Uses festival text-to-speech synthesiser to convert
|
|
# weather data to audio and save as a ul file.
|
|
#
|
|
# usage: getWxRpt
|
|
#
|
|
# history:
|
|
# 2004/08/18 kc6hur Original Release
|
|
#
|
|
# Modified by w0anm
|
|
# $Id: getWxRpt 46 2009-04-10 04:27:25Z $
|
|
######################################################################
|
|
LOGFILE=/tmp/wx1.txt
|
|
# Load config file
|
|
|
|
if [ -f ${CUSTOM}/wx_scripts.conf ] ; then
|
|
source ${CUSTOM}/wx_scripts.conf
|
|
else
|
|
echo "Missing ${CUSTOM}/wx_scripts.conf file, aborting..."
|
|
exit 1
|
|
fi
|
|
|
|
# if ICAO_STN not an argument, then use what is defined in configure file.
|
|
if [ "$1" = "" ] ; then
|
|
ICAO_LIST=$ICAO_STN
|
|
else
|
|
ICAO_LIST=$1
|
|
fi
|
|
|
|
# WXTXT="$WXDIR/report/$ICAO.txt"
|
|
# WXTXT_TMP="/tmp/$ICAO.txt"
|
|
# WXAUD="$WXDIR/report/$ICAO.ul"
|
|
# WXURL="http://weather.noaa.gov/pub/data/observations/metar/stations/$ICAO.TXT"
|
|
|
|
if [ ! -d $WXDIR/report ] ; then
|
|
mkdir -p $WXDIR/report
|
|
fi
|
|
|
|
|
|
#-----------------------------------------------------------------------
|
|
# Get the METAR weather string and convert it to a text file.
|
|
|
|
for ICAO in $ICAO_LIST ; do
|
|
log "Get METAR for $ICAO"
|
|
WXTXT="$WXDIR/report/$ICAO.txt"
|
|
WXTXT_TMP="/tmp/$ICAO.txt"
|
|
WXAUD="$WXDIR/report/$ICAO"
|
|
|
|
WXURL="http://tgftp.nws.noaa.gov/data/observations/metar/stations/$ICAO.TXT"
|
|
|
|
## rm -f $WXTXT &>/dev/null
|
|
|
|
/usr/bin/wget -q -O - $WXURL > /tmp/wx_metar
|
|
|
|
if `/usr/bin/wget -q -O - $WXURL | /metar2text > $WXTXT 2>> $LOGFILE` ; then
|
|
log "Error getting METAR for $ICAO"
|
|
exit 0
|
|
else
|
|
log "Got METAR for $ICAO"
|
|
fi
|
|
# Fix any formating issues:
|
|
sed -f /wxtext_conv.sed $WXTXT > $WXTXT_TMP
|
|
# echo "end of report. . . " >> $WXTXT_TMP
|
|
cp $WXTXT_TMP $WXTXT
|
|
|
|
# Convert text output into a ul file.
|
|
#
|
|
if [ -f $WXTXT ] ; then
|
|
if [ $TEXT2SPEECH = "festival" ] ; then
|
|
#$TEXT2WAVE -F 48000 -otype wav -o $WXAUD1.wav $WXTXT
|
|
#ffmpeg -i $WXAUD.wav -y -ar 48000 $WXAUD1.wav
|
|
pico2wave -w $WXAUD.wav "$(cat $WXTXT)"
|
|
sox --norm -V -v 0.1 $WXAUD.wav -r 48000 $WXAUD1.wav
|
|
/usr/local/bin/wav2dvtool $WXAUD1.wav KD8TUZ_REPORT KD8TUZ_B KD8TUZ_G "Hamilton WX Report" $WXAUD.dvtool
|
|
|
|
# sourced out audio files
|
|
#echo "$WXTXT"
|
|
#espeak $WXTXT $WXAUD
|
|
fi
|
|
if [ $TEXT2SPEECH = "cepstral" ] ; then
|
|
$TEXT2WAVE -m text -f $WXTXT -p audio/encoding=ulaw,audio/sampling-rate=8000,audio/volume=$SWIFT_VOL -o $WXAUD.new
|
|
fi
|
|
#mv $WXTXT_TMP $WXTXT
|
|
#log "$WXAUD has been saved"
|
|
#rm -f $WXTXT &>/dev/null
|
|
fi
|
|
done
|
|
exit 0
|