aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
authorAaron LI <aaronly.me@gmail.com>2016-04-06 16:48:06 +0800
committerAaron LI <aaronly.me@gmail.com>2016-04-06 16:48:06 +0800
commit902afb74e35374df2b5314b0537a0e622afb52de (patch)
tree867ae6ca7e141d85dd9268983b0043f9778d5674 /python
parente7faf7f1c7f04149627a2d3dd77edb23dc17a561 (diff)
downloadatoolbox-902afb74e35374df2b5314b0537a0e622afb52de.tar.bz2
correct_crosstalk.py: fix RMF get_rmfimg() for XMM EPIC RMF
Diffstat (limited to 'python')
-rwxr-xr-xpython/correct_crosstalk.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/python/correct_crosstalk.py b/python/correct_crosstalk.py
index e4d956e..7d83912 100755
--- a/python/correct_crosstalk.py
+++ b/python/correct_crosstalk.py
@@ -16,9 +16,11 @@
#
# Weitian LI
# Created: 2016-03-26
-# Updated: 2016-04-02
+# Updated: 2016-04-06
#
# ChangeLog:
+# 2016-04-06:
+# * Fix `RMF: get_rmfimg()' for XMM EPIC RMF
# 2016-04-02:
# * Interpolate ARF in order to match the spectral channel energies
# * Add version and date information
@@ -298,7 +300,10 @@ class RMF: # {{{
to a 2D image/matrix.
"""
def _make_rmfimg_row(n_channel, dtype, f_chan, n_chan, mat_row):
+ # make sure that `f_chan' and `n_chan' are 1-D numpy array
+ f_chan = np.array(f_chan).reshape(-1)
f_chan -= 1 # FITS indices are 1-based
+ n_chan = np.array(n_chan).reshape(-1)
idx = np.concatenate([ np.arange(f, f+n) \
for f, n in zip(f_chan, n_chan) ])
rmfrow = np.zeros(n_channel, dtype=dtype)
@@ -311,7 +316,7 @@ class RMF: # {{{
n_channel = len(self.channel)
rmf_dtype = self.matrix[0].dtype
rmfimg = np.zeros(shape=(n_energy, n_channel), dtype=rmf_dtype)
- for i in range(n_energy):
+ for i in np.arange(n_energy)[self.n_grp > 0]:
rmfimg[i, :] = _make_rmfimg_row(n_channel, rmf_dtype,
self.f_chan[i], self.n_chan[i], self.matrix[i])
self.rmfimg = rmfimg