diff options
Diffstat (limited to 'astro/xmm/sky2det.sh')
-rwxr-xr-x | astro/xmm/sky2det.sh | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/astro/xmm/sky2det.sh b/astro/xmm/sky2det.sh new file mode 100755 index 0000000..6a7ca22 --- /dev/null +++ b/astro/xmm/sky2det.sh @@ -0,0 +1,53 @@ +#!/bin/sh +# +# Convert from SKY(X,Y) coordinate to (DETX,DETY) coordinate for XMM. +# Using the SAS tool "ecoordconv" +# +# +# Weitian LI +# Created: 2015-11-09 +# Updated: 2015-11-09 +# + +if [ $# -ne 3 ]; then + echo "usage:" + echo " `basename $0` <image> <sky.reg> <det.reg>" + exit 1 +fi + +IMG="$1" +SKY_REG="$2" +DET_REG="$3" +[ -e "${DET_REG}" ] && mv -fv ${DET_REG} ${DET_REG}_bak + +sky2det() { + _img=$1 + _x=$2 + _y=$3 + _detxy=`ecoordconv imageset=${_img} x=${_x} y=${_y} coordtype=POS -w 0 -V 0 | \ + grep -E '^\s*DETX:\s*DETY:' | awk '{ print $3, $4 }'` + echo "${_detxy}" +} + + +cat "${SKY_REG}" | while read line; do + if echo "${line}" | grep -iq '^circle'; then + # Across a circle region + echo "CIRCLE: ${line}" + CIRCLE_X=`echo "${line}" | awk -F'[(,)]' '{ print $2 }'` + CIRCLE_Y=`echo "${line}" | awk -F'[(,)]' '{ print $3 }'` + CIRCLE_R=`echo "${line}" | awk -F'[(,)]' '{ print $4 }'` + DETXY=`sky2det ${IMG} ${CIRCLE_X} ${CIRCLE_Y}` + CIRCLE_DETX=`echo "${DETXY}" | awk '{ print $1 }'` + CIRCLE_DETY=`echo "${DETXY}" | awk '{ print $2 }'` + CIRCLE_REG="circle(${CIRCLE_DETX},${CIRCLE_DETY},${CIRCLE_R})" + echo "${CIRCLE_REG}" >> ${DET_REG} + elif echo "${line}" | grep -iq '^physical'; then + echo "detector" >> ${DET_REG} + else + # Just move to output region file + echo "${line}" >> ${DET_REG} + fi +done + + |