aboutsummaryrefslogtreecommitdiffstats
path: root/astro/xmm/make_regfits.sh
diff options
context:
space:
mode:
Diffstat (limited to 'astro/xmm/make_regfits.sh')
-rwxr-xr-xastro/xmm/make_regfits.sh49
1 files changed, 49 insertions, 0 deletions
diff --git a/astro/xmm/make_regfits.sh b/astro/xmm/make_regfits.sh
new file mode 100755
index 0000000..9a38e50
--- /dev/null
+++ b/astro/xmm/make_regfits.sh
@@ -0,0 +1,49 @@
+#/bin/sh
+#
+# Make a new region FITS file based on the original bkg-region, which
+# is created by SAS tool 'region', and custom ds9 region list.
+# The newly created region FITS file can be used to create a new mask.
+#
+# Aaron LI
+# Created: 2015-11-06
+# Updated: 2015-11-09
+#
+# ChangeLog:
+# * Update sed match pattern to allow '-' minus sign
+#
+
+if [ $# -ne 3 ]; then
+ echo "Usage:"
+ echo " `basename $0` <orig_reg.fits> <ds9.reg> <new_reg.fits>"
+ echo ""
+ echo "Note: only CIRCLE region are supported!"
+ exit 1
+fi
+
+ORIG_REGFITS="$1"
+DS9REG="$2"
+NEW_REGFITS="$3"
+[ ! -e "${ORIG_REGFITS}" ] && \
+ echo "ERROR: ${ORIG_REGFITS} does not exist" && exit 11
+[ ! -e "${DS9REG}" ] && echo "ERROR: ${DS9REG} does not exist" && exit 12
+[ -e "${NEW_REGFITS}" ] && mv -fv ${NEW_REGFITS} ${NEW_REGFITS}_bak
+
+
+TMP_CDFILE="cdfile.tmp$$"
+TMP_DATAFILE="datafile.tmp$$"
+
+flcol "${ORIG_REGFITS}[REGION]" > ${TMP_CDFILE}
+sed -i'' '/^___Column_Names__/d' ${TMP_CDFILE}
+
+grep -i '^circle' ${DS9REG} | tr 'a-z' 'A-Z' | \
+ sed -e 's/\(CIRCLE\)(\([0-9.-]\+\),\([0-9.-]\+\),\([0-9.-]\+\))/"!\1" \2 0 0 0 \3 0 0 0 \4 0 0 0 0 0 0 0 1/' | \
+ tr '"' "'" > ${TMP_DATAFILE}
+
+fcreate cdfile=${TMP_CDFILE} datafile=${TMP_DATAFILE} \
+ outfile=${NEW_REGFITS} tbltype="binary" extname="REGION"
+
+cphead "${ORIG_REGFITS}[Primary]" "${NEW_REGFITS}[Primary]"
+cphead "${ORIG_REGFITS}[REGION]" "${NEW_REGFITS}[REGION]"
+
+rm -f ${TMP_CDFILE} ${TMP_DATAFILE}
+