aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/event2image.py
diff options
context:
space:
mode:
authorAaron LI <aaronly.me@outlook.com>2017-02-21 20:17:39 +0800
committerAaron LI <aaronly.me@outlook.com>2017-02-21 20:17:39 +0800
commitf50d166f80adcfaaa30a62c1e0b25bfc9d76a2a4 (patch)
tree54634903ef011cdce197820a06289971fe7bb297 /scripts/event2image.py
parentde1fe6cd2a98201cce609f456d0145f6b8c4a8fa (diff)
downloadchandra-acis-analysis-f50d166f80adcfaaa30a62c1e0b25bfc9d76a2a4.tar.bz2
Move various Python tools from 'scripts/' to 'bin/'
Diffstat (limited to 'scripts/event2image.py')
-rwxr-xr-xscripts/event2image.py105
1 files changed, 0 insertions, 105 deletions
diff --git a/scripts/event2image.py b/scripts/event2image.py
deleted file mode 100755
index 44189e0..0000000
--- a/scripts/event2image.py
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright (c) 2017 Weitian LI <liweitianux@live.com>
-# MIT license
-
-"""
-Make image by binning the event file, and update the manifest.
-
-TODO: use logging module instead of print()
-"""
-
-import sys
-import argparse
-import subprocess
-
-from _context import acispy
-from acispy.manifest import get_manifest
-from acispy.pfiles import setup_pfiles
-from acispy.acis import ACIS
-
-
-def make_image(infile, outfile, chips, erange, fov, clobber=False):
- """
- Make image by binning the event file.
-
- Parameters
- ----------
- infile : str
- Path to the input event file
- outfile : str
- Filename and path of the output image file
- chips : str
- Chips of interest, e.g., ``7`` or ``0-3``
- erange : str
- Energy range of interest, e.g., ``700-7000``
- fov : str
- Path to the FoV file
- """
- chips = chips.replace("-", ":")
- erange = erange.replace("-", ":")
- clobber = "yes" if clobber else "no"
- fregion = "sky=region(%s[ccd_id=%s])" % (fov, chips)
- fenergy = "energy=%s" % erange
- fbin = "bin sky=::1"
- subprocess.check_call(["punlearn", "dmcopy"])
- subprocess.check_call([
- "dmcopy", "infile=%s[%s][%s][%s]" % (infile, fregion, fenergy, fbin),
- "outfile=%s" % outfile, "clobber=%s" % clobber
- ])
-
-
-def main():
- parser = argparse.ArgumentParser(
- description="Make image by binning the event file")
- parser.add_argument("-L", "--elow", dest="elow", type=int, default=700,
- help="lower energy limit [eV] of the output image " +
- "(default: 700 [eV])")
- parser.add_argument("-H", "--ehigh", dest="ehigh", type=int,
- help="upper energy limit [eV] of the output image " +
- "(default: 7000 [eV])")
- parser.add_argument("-i", "--infile", dest="infile",
- help="event file from which to create the image " +
- "(default: evt2_clean from manifest)")
- parser.add_argument("-o", "--outfile", dest="outfile",
- help="output image filename (default: " +
- "build in format 'img_c<chip>_e<elow>-<ehigh>.fits')")
- parser.add_argument("-v", "--verbose", dest="verbose", action="store_true",
- help="show verbose information")
- parser.add_argument("-C", "--clobber", dest="clobber", action="store_true",
- help="overwrite existing file")
- args = parser.parse_args()
-
- setup_pfiles(["dmkeypar", "dmcopy"])
-
- manifest = get_manifest()
- fov = manifest.getpath("fov", relative=True)
- if args.infile:
- infile = args.infile
- else:
- infile = manifest.getpath("evt2_clean", relative=True)
- chips = ACIS.get_chips_str(infile, sep="-")
- erange = "{elow}-{ehigh}".format(elow=args.elow, ehigh=args.ehigh)
- if args.elow >= args.ehigh:
- raise ValueError("invalid energy range: %s" % erange)
- if args.outfile:
- outfile = args.outfile
- else:
- outfile = "img_c{chips}_e{erange}.fits".format(
- chips=chips, erange=erange)
- if args.verbose:
- print("infile:", infile, file=sys.stderr)
- print("outfile:", outfile, file=sys.stderr)
- print("fov:", fov, file=sys.stderr)
- print("chips:", chips, file=sys.stderr)
- print("erange:", erange, file=sys.stderr)
-
- make_image(infile, outfile, chips, erange, fov, args.clobber)
-
- # Add created image to manifest
- key = "img_e{erange}".format(erange=erange)
- manifest.setpath(key, outfile)
-
-
-if __name__ == "__main__":
- main()