mangle/scripts/graphmasksm.sh
2021-06-21 16:38:06 +02:00

86 lines
3.5 KiB
Bash
Executable file

#!/bin/sh
# © M E C Swanson 2008
#plot the angular mask described by a polygon file in graphics format
#using sm
#
#optional 3rd-6th arguments give the RA and Dec range to plot the mask
#If no range is given, range will be calculated automatically from the data.
#If only an RA range is given, Dec range will be calculated automatically
#to give equal scaling on x and y axes, centered on the range of all the data.
#
#Entering in "0 0 0 0" for the range will also give an automatic range,
#which can be used if you also wish to, e.g., enter a title.
#Likewise entering "0 0" for the Dec range is equivalent to only specifying an RA range.
#
#optional 7th argument gives a title for the graph
#optional 8th argument turns on drawing black outlines around each polygon
#
#if specifying the full path to a file (rather than just running in the directory
#containing the file you want to plot), put the path in double-quotes as shown below.
#
#USAGE: graphmasksm.sh <infile> <outfile> [<ramin> <ramax>] [<decmin> <decmax>] [<title>] [<outlines>]
#EXAMPLES:
#default range, no outlines: graphmasksm.sh "dr4/safe0/sdss_dr4safe0_mask.grph" "dr4/safe0/sdss_dr4safe0_mask.eps"
#defined range, title, no outlines: graphmasksm.sh sdss_slice.grph sdss_slice.eps -45 35 8 21 "SDSS slice"
#defined range, no title, outlines: graphmasksm.sh sdss_slice.grph sdss_slice.eps -45 35 8 21 " " on
#default range, no title, outlines: graphmasksm.sh sdss_slice.grph sdss_slice.eps 0 0 0 0 " " on
#WARNINGS: (a.k.a., reasons to use the matlab plotting script instead!)
# -This script uses the opposite color scheme than the matlab script, i.e.,
# weight 1 = black, weight 0 = white
# -RA and Dec are treated as linear variables (no spherical projection). This means that
# ranges that span RA=0 won't plot properly.
# -SM can only plot square eps files, so if you define both RA and Dec range, they should
# have the same length, otherwise your plot will appear stretched.
# -SM has a line length limit of 1500 characters, which SDSS tends to have no trouble overloading.
# If you get an error reading the file, try making your graphics file with lower precision and
# fewer points per 2pi, i.e., use poly2poly -og12 -p3 instead of poly2poly -og30.
#
if [ "$MANGLESCRIPTSDIR" = "" ] ; then
MANGLESCRIPTSDIR="../../scripts"
fi
if [ ! "$7" = "" ] ; then
title="\"$7\""
else
title=""
fi
if [ "$8" = "on" ] ; then
outlines=1
else
outlines=""
fi
if [ $# -ge 2 ]; then
if [ -e $1 ]; then
echo "Plotting $1 using sm ..."
if [ -e $2 ]; then
rm $2
fi
sm -m $MANGLESCRIPTSDIR/graphmask.sm $1 $2 $3 $4 $5 $6 $title $outlines > sm.temp
else
echo >&2 "ERROR: file $1 not found."
exit 1
fi
else
echo >&2 "USAGE: graphmasksm.sh <infile> <outfile> [<ramin> <ramax>] [<decmin> <decmax>] [<title>] [<outlines>]"
echo >&2 "EXAMPLES:"
echo >&2 "default range, no outlines: graphmasksm.sh \"dr4/safe0/sdss_dr4safe0_mask.grph\" \"dr4/safe0/sdss_dr4safe0_mask.eps\""
echo >&2 "defined range, title, no outlines: graphmasksm.sh sdss_slice.grph sdss_slice.eps -45 35 8 21 \"SDSS slice\""
echo >&2 "defined range, no title, outlines: graphmasksm.sh sdss_slice.grph sdss_slice.eps -45 35 8 21 \" \" on"
echo >&2 "default range, no title, outlines: graphmasksm.sh sdss_slice.grph sdss_slice.eps 0 0 0 0 \" \" on"
exit 1
fi
if [ -e smerr.temp ] || [ ! -e $2 ]; then
echo >&2 "ERROR: error in sm plotting script."
echo >&2 "See log in sm.temp for more details."
if [ -e smerr.temp ]; then
rm smerr.temp
fi
exit 1
fi
rm sm.temp
echo all done!