summaryrefslogtreecommitdiffstats
path: root/build_sample.sh
diff options
context:
space:
mode:
Diffstat (limited to 'build_sample.sh')
-rwxr-xr-xbuild_sample.sh128
1 files changed, 128 insertions, 0 deletions
diff --git a/build_sample.sh b/build_sample.sh
new file mode 100755
index 0000000..08fb76c
--- /dev/null
+++ b/build_sample.sh
@@ -0,0 +1,128 @@
+#!/bin/sh
+#
+# Build and/or update the sample of studying central X-ray brightness
+# excess, by only copying/updating the required products from our complete
+# mass sample.
+#
+# Aaron LI
+# Created: 2016-03-02
+# Updated: 2016-04-15
+#
+# ChangeLog:
+# 2016-04-15:
+# * Add support for zzh's sample
+# * Convert "_" to "-" in NAME
+#
+
+analyze_path() {
+ # extract `obs_id' and `source name' from path
+ #
+ # Weitian LI <liweitianux@gmail.com>
+ # 2013/02/04
+ #
+ # input:
+ # path that include `oi' and `source name'
+ # e.g.:
+ #
+ # output:
+ #
+
+ 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 { }
+ '
+}
+
+
+if [ $# -lt 2 ]; then
+ echo "Usage:"
+ echo " `basename $0` <dest_root_dir> <repro_dir_list>"
+ echo " `basename $0` <dest_root_dir> <repro_dir1> ..."
+ exit 1
+fi
+
+DEST_ROOT="$1"
+[ ! -d "${DEST_ROOT}" ] && mkdir -v "${DEST_ROOT}"
+
+# repro dir's
+if [ -f "$2" ]; then
+ REPRO_LIST="$2"
+elif [ -d "$2" ]; then
+ REPRO_LIST="_tmp_repro_$$.list"
+ [ -f "${REPRO_LIST}" ] && mv -f "${REPRO_LIST}" "${REPRO_LIST}_bak"
+ while [ ! -z "$2" ]; do
+ echo "$2" >> "${REPRO_LIST}"
+ shift
+ done
+else
+ echo "ERROR: invalid arguments: $2"
+ exit 2
+fi
+
+INIT_DIR=`pwd -P`
+cat "${REPRO_LIST}" | while read repro_dir; do
+ OI=`analyze_path "${repro_dir}" | grep '^oi:' | awk '{ print $2 }'`
+ NAME=`analyze_path "${repro_dir}" | grep '^name:' | awk '{ print $2 }'`
+ OWNER=`analyze_path "${repro_dir}" | grep '^owner:' | awk '{ print $2 }'`
+ # avoid "_" in name
+ NAME=`echo "${NAME}" | tr '_' '-'`
+ echo "********* ${NAME}_oi${OI} *********"
+ # create directories
+ DEST="${DEST_ROOT}/${NAME}_oi${OI}"
+ #[ ! -d "${DEST}/repro" ] && mkdir -pv ${DEST}/repro
+ [ ! -d "${DEST}/repro" ] && continue # Only update sample
+ cd "${DEST}/repro"
+ # simply copy the whole sub-directories
+ cp -av ${repro_dir}/acisf*.fits .
+ cp -av ${repro_dir}/acisf*.lis ${repro_dir}/pcadf*.fits .
+ cp -av ${repro_dir}/evt ${repro_dir}/bkg ${repro_dir}/img .
+ cp -av ${repro_dir}/*_INFO.json .
+ if [ "${OWNER}" = "zzh" ]; then
+ cp -av ${repro_dir}/spc/profile/rspec.reg ./img/
+ cp -av ${repro_dir}/../evt2/spc/profile/rspec.reg ./img/rspec2.reg
+ cp -av ${repro_dir}/../evt2/img/sbprofile.reg ./img/sbprofile2.reg
+ cd ./img
+ [ ! -f "rspec.reg" ] && ln -sv rspec2.reg rspec.reg
+ [ ! -f "sbprofile.reg" ] && ln -sv sbprofile2.reg sbprofile.reg
+ fi
+ # apply clean up
+ find . \( -iname '*_bak' -o -iname '_tmp*' \) -delete
+ find . -type l -iname '*.dat' -delete
+ cd "${INIT_DIR}"
+done
+