summaryrefslogtreecommitdiffstats
path: root/ds9_image.sh
diff options
context:
space:
mode:
authorAaron LI <aaronly.me@outlook.com>2016-04-26 16:59:05 +0800
committerAaron LI <aaronly.me@outlook.com>2016-04-26 16:59:05 +0800
commit682e5dd48ac854fc8a1cc49fd572663284903cf4 (patch)
tree86b57216756f18b416cf63756e673f8ddc563960 /ds9_image.sh
downloadcexcess-682e5dd48ac854fc8a1cc49fd572663284903cf4.tar.bz2
Use git to manage the tools of excess_sample
Diffstat (limited to 'ds9_image.sh')
-rwxr-xr-xds9_image.sh102
1 files changed, 102 insertions, 0 deletions
diff --git a/ds9_image.sh b/ds9_image.sh
new file mode 100755
index 0000000..ab01631
--- /dev/null
+++ b/ds9_image.sh
@@ -0,0 +1,102 @@
+#!/bin/sh
+#
+# Use DS9 to visualize the ACIS image, with useful/handy
+# arguments/options passed.
+# Also touch the output image filename for easier save.
+#
+# Aaron LI
+# 2016-04-16
+#
+
+# Default parameters
+FILE_PATTERN="img_c*_fill.fits"
+REG_FILE="r500.reg"
+REG_FORMAT="ds9"
+REG_FOV="skyfov.fits"
+
+
+case "$1" in
+ -[hH]*)
+ echo "Usage:"
+ echo " `basename $0` <img_dir1> ..."
+ exit 1
+ ;;
+esac
+
+
+analyze_path() {
+ # extract `obs id' and `source name' from path
+ echo "$@" | awk '
+ # main part
+ {
+ if (NF==1) {
+ ## oi & name
+ input=($1 "/")
+ if (input ~ /_oi/) {
+ ## PATTERN: .../$name_oi$oi/...
+ idx_oi = match(input, /oi[0-9]+/) + 2; # "2" skip the "oi"
+ len_oi = RLENGTH - 2;
+ oi = substr(input, idx_oi, len_oi);
+ idx_name = match(input, /\/[a-zA-Z0-9.+-]+_oi/) + 1;
+ len_name = RLENGTH - 4;
+ name = substr(input, idx_name, len_name);
+ owner = "lwt";
+ }
+ else {
+ ## PATTERN: .../$name/$oi/...
+ idx_oi = match(input, /\/[0-9]+\//) + 1;
+ len_oi = RLENGTH - 2;
+ oi = substr(input, idx_oi, len_oi);
+ idx_name1 = match(input, /\/[a-zA-Z0-9_.+-]+\/[0-9]+\//);
+ len_name1 = RLENGTH;
+ name1 = substr(input, idx_name1, len_name1);
+ idx_name = match(name1, /\/[a-zA-Z0-9_.+-]+\//) + 1;
+ len_name = RLENGTH - 2;
+ name = substr(name1, idx_name, len_name);
+ owner = "zzh";
+ }
+ ## output
+ printf("input: %s\n", input)
+ printf("oi: %s\nname: %s\nowner: %s\n", oi, name, owner)
+ }
+ else {
+ printf("*** WARNING: invalid input: %s\n", $0)
+ }
+ }
+ # END { }
+ '
+}
+
+
+INIT_DIR=`pwd -P`
+while [ ! -z "$1" ]; do
+ imgdir="$1"
+ shift
+ cd ${imgdir}
+ echo "====== ${PWD} ======"
+ NAME=`analyze_path "${PWD}" | grep '^name:' | awk '{ print $2 }'`
+ FILE=`\ls ${FILE_PATTERN}`
+ [ -z "${FILE}" ] && continue
+ echo "FITS file: ${FILE}"
+ #
+ PNG_SUFFIX=`echo "${FILE%.fits}" | sed -e 's/_c7//' -e 's/_c0-3//'`
+ PNG_FILE="${NAME}_${PNG_SUFFIX}.png"
+ [ ! -f "${PNG_FILE}" ] && touch ${PNG_FILE}
+ echo "PNG file: ${PNG_FILE}"
+ # FoV region
+ if [ -f "${REG_FOV}" ]; then
+ DS9_REG_FOV="-regions color green -regions ${REG_FOV}"
+ fi
+ #
+ ds9 ${FILE} \
+ -bin factor 1 \
+ -smooth radius 4 -smooth yes \
+ -scale asinh \
+ -cmap sls \
+ -geometry 1288x1026-0+0 \
+ -regions format ${REG_FORMAT} \
+ -regions color white -regions ${REG_FILE} ${DS9_REG_FOV}
+ #
+ cd ${INIT_DIR}
+done
+