psdlag-agn/scripts/plot_psdlag.sh

78 lines
2.9 KiB
Bash
Executable File

#!/usr/bin/env bash
ywindow_of () {
max=0
min=-5
while read line
# for line in $(cat $1)
do
read xval yval xerr yerr <<< $line
echo $xval $yval
if (bc <<< "$yval > $max"); then max=$yval; fi
if (bc <<< "$yval < $min"); then min=$yval; fi
# done
done < $1
echo $(bc <<< "$min - 0.5") $(bc <<< "$max + 0.5")
}
mkdir -p analyses/tables
mkdir -p analyses/plots
# Restore the proper naming conventions for any files stripped
# of their unicode characters.
scripts/fix_thor_names.sh
# Create tables and plot the power spectra distributions and time lags.
for analysis in analyses/*
do
# Grab and determine labels of analyses, skip if over the same band.
ref_band=$(basename $analysis|sed 's|\([^≺]*\)[_ ]≺[_ ][^≺_ ]*[_ ]{[^_ ]*}|\1|')
echo_band=$(basename $analysis|sed 's|[^≺]*[_ ]≺[_ ]\([^≺_ ]*\)[_ ]{[^_ ]*}|\1|')
if [[ $ref_band == $echo_band ]]; then continue; fi
err_str=$(basename $analysis|sed 's|[^≺]*[_ ]≺[_ ][^≺_ ]*[_ ]{[^_ ]*;\(σ∊[CLM][MFC]\)}|\1|')
# Prepare files
echo "Plotting PSD and time lags for $echo_band, referred to ${ref_band}."
echoPSD_tabfile=analyses/tables/PSD_${echo_band}_\{${err_str}\}.tab
refPSD_tabfile=analyses/tables/PSD_${ref_band}_\{${err_str}\}.tab
timelag_tabfile=analyses/tables/timelag_${ref_band}_≺_${echo_band}_\{${err_str}\}.tab
PSD_plotfile=analyses/plots/PSD_${ref_band}_≺_${echo_band}_\{${err_str}\}.png
timelag_plotfile=analyses/plots/timelag_${ref_band}_≺_${echo_band}_\{${err_str}\}.png
# Output curves to temporary files using perl script, move tables to
# permanent location. This just assumes there are no conflicts.
scripts/extract_tables.pl $analysis > /dev/null
mv tmp.echoPSD $echoPSD_tabfile
mv tmp.refPSD $refPSD_tabfile
mv tmp.timelag $timelag_tabfile
# Plot PSD and save using gnuplot
# read ymin ymax <<< $(ywindow_of $timelag_tabfile)
# echo $ymin $ymax
cat scripts/templates/psd_freq.gp|
sed "s|%TITLE|Power Spectrum for Lightcurves $echo_band and $ref_band|"|
sed "s|%SUBTITLE|as reported by Fausnaugh et. al, STORM III, 2016|"|
sed "s|%FILE1|$refPSD_tabfile|"|
sed "s|%LABEL1|${ref_band} PSD|"|
sed "s|%FILE2|$echoPSD_tabfile|"|
sed "s|%LABEL2|${echo_band} PSD|"|
sed "s|%YMIN|$ymin|"|sed "s|%YMAX|$ymax|"|
sed "s|%OUTPUTFILE|$PSD_plotfile|" > tmp.gp
gnuplot tmp.gp
# Plot time lags and save using gnuplot
# read ymin ymax <<< $(ywindow_of $timelag_tabfile)
cat scripts/templates/timelag_freq.gp|
sed "s|%TITLE|Time Lag for Lightcurve $echo_band relative to $ref_band|"|
sed "s|%SUBTITLE|as reported by Fausnaugh et. al, STORM III, 2016|"|
sed "s|%FILE1|$timelag_tabfile|"|
sed "s|%LABEL1|${echo_band} Lag|"|
sed "s|%YMIN|$ymin|"|sed "s|%YMAX|$ymax|"|
sed "s|%OUTPUTFILE|$timelag_plotfile|" > tmp.gp
gnuplot tmp.gp
done
rm tmp.*