Removing Warm ACIS Data
![[CXC Logo]](../../imgs/cxc-logo.gif)
CIAO 4.16 Science Threads
Overview
Synopsis:
![[TIP]](../../imgs/tip.png)
Most users will benefit more from the increased exposure time than will suffer from the degraded spectral resolution. Users following this thread should proceed with that in mind.
Users fitting ACIS imaging spectra that fulfill all the following three conditions may see line-centroids shifted by 1-2% from systematic offsets due to calibration uncertainty:
- Spectra with more than 1000 counts on a front-illuminated (FI) chip or more than 2000 counts on a back-illuminated (BI) chip (CCD_ID 5,7).
- More than half of source counts were acquired above the current temperature limit of -109 C (164.15 K).
- More than half of source counts are in emission or absorption lines.
If users choose to filter warm ACIS data, they are strongly encouraged to perform their analysis both with and without the warm data to evaluate the impact to their specific science goals.
Timing analysis and imaging analysis, including source detection, are not affected by changes in focal plane temperature. Variations in ACIS focal plane temperatures while colder than -109 C are not known to impact dispersed grating data from the HETG or LETG.
This thread may be used to remove time periods when the ACIS Focal Plane temperature is warm and the user is attempting to extract spectra from line-rich, high count sources.
Purpose:
To remove times when the ACIS focal plane temperature is warm which may degrade the CCD spectral resolution.
Related Links:
Last Update: 15 Nov 2022 - Substantial updates due to new FP thermal limits.
Contents
- Get Started
- Plot Focal Plane Temperature Values
- Choose Good Time Intervals (GTIs)
- Inspect GTI file
- Apply GTI to Event File
- Parameter files:
- History
- Images
Get Started
Download the sample data: 45549 (ACIS Engineering data --not intended for scientific analysis)
unix% download_chandra_obsid 45549 evt2,mtl
The mission timeline file is stored in the secondary/ directory. For the rest of this thread we assume that both the event file and mtl files have been moved to be in the same directory.
Plot Focal Plane Temperature Values
The ACIS focal plane temperature (FP_TEMP) has increased over the mission's lifetime, and is no longer stable and cold for most observations. During an observation, the FP_TEMP may change by several degrees. Thermal modeling is used during scheduling to help mission planners ensure that data are collected within appropriate temperatures bounds to allow for the reliable calibration of each science investigation.
We begin by plotting the FP_TEMP vs time. FP_TEMP is stored in the mission timeline file in Kelvin. To make the plot more legible, we plot time-offset from the first record.
The resulting plot is shown in Figure 1.
% python
from pycrates import read_file
import matplotlib.pyplot as plt
mtl=read_file("acisf45549_000N001_mtl1.fits.gz[cols time,fp_temp]")
times = mtl.get_column("time").values
time_offset = (times - times[0]) / 1000.0 # sec -> ksec
fp_temp = mtl.get_column("fp_temp").values
p = plt.plot(time_offset,fp_temp)
p[0].set_marker("o")
p[0].set_markersize(1)
p[0].set_linestyle('None')
plt.xlabel("Time offset since {:.3f} [ksec]".format(times[0]))
plt.ylabel("FP_TEMP [k]")
plt.title("OBS_ID : 45549")
ll=plt.axhline(164.15)
ll.set_linestyle(":")
plt.savefig("fptemp.png")
exit()
Figure 1: FP_TEMP and Distance vs Time
![[Thumbnail image: ]](fptemp.300.png)
[Version: full-size]
![[Print media version: ]](fptemp.png)
Figure 1: FP_TEMP and Distance vs Time
Plot of ACIS focal plane temperature (black) vs. time. The horizontal line at 164.15K is the temperature limit chosen (see below).
For roughly the first 3ksec the FP_TEMP value is below the warm temperature limit of 164.15 K (-109 C) and events in this time window are less affected by uncertainties in spectral response associated with warm focal plane temperatures.
Choose Good Time Intervals (GTIs)
We can time filter the event file with a custom good time interval created using the dmgti tool
In this example, we choose the a temperature limit of 164.15 K (-109 C) beyond which the ACIS spectral response is currently being re-calibrated for warmer temperatures.
unix% pset dmgti infile=acisf45549_000N001_mtl1.fits.gz unix% pset dmgti outfile=fp_temp.gti unix% pset dmgti userlimit="fp_temp<164.15" unix% dmgti Input MTL file (acisf45549_000N001_mtl1.fits.gz): Output GTI file (fp_temp.gti): User defined limit string (fp_temp<164.15):
The userlimit parameter is a dmmath expression that should evaluate to TRUE when the data are GOOD. In this example we want to know the times when the FP_TEMP value is less than 164.15.
Inspect GTI file
We can now use dmlist to inspect the good time intervals.
unix% dmlist fp_temp.gti blocks,subspace
--------------------------------------------------------------------------------
Dataset: fp_temp.gti
--------------------------------------------------------------------------------
Block Name Type Dimensions
--------------------------------------------------------------------------------
Block 1: PRIMARY Null
Block 2: FILTER Table 1 cols x 0 rows
Block 3: GTI Table 2 cols x 1 rows
--------------------------------------------------------------------------------
Data subspace for block FILTER: Components: 1 Descriptors: 1
--------------------------------------------------------------------------------
--- Component 1 ---
1 TIME Real8 TABLE GTI
766773190.1659966707:766776310.1660431623
This shows us that there is one time interval during which the FP_TEMP was less than 164.15 K.
Apply GTI to Event File
The good time interval filter can be applied using the "@" dmfiltering datamodel syntax.
unix% dmcopy "acisf45549N001_evt2.fits.gz[@fp_temp.gti]" good_events.fits
We can check the output file to verify that the times have been appropriately recomputed.
unix% dmkeypar acisf45549_000N001_evt2.fits.gz ONTIME echo+ 8117.9113694429 unix% dmkeypar good_events.fits ONTIME echo+ 3119.511294961
We can see that roughly 5ksec, or almost 60% of the time has been removed from the observation using this filter criterion.
This file can now be used in spectral analysis and the correct exposure times will be used when making response files.
Users are strongly encouraged to perform their spectral analysis both with and without filtering the warm times.
Parameters for /home/username/cxcds_param/dmgti.par
infile = acisf45549_000N001_mtl1.fits.gz Input MTL file
outfile = fp_temp.gti Output GTI file
userlimit = fp_temp<164.15 User defined limit string
(mtlfile = none) Optional output smoothed/filtered MTL file
(lkupfile = none) Lookup table defining which MTL columns to check against (NONE|none|<filename>)
(smooth = yes) Smooth the input MTL data?
(clobber = no) Clobber output file if it exists?
(verbose = 0) Debug level
(mode = ql)
Parameters for /home/username/cxcds_param/dmlist.par
infile = fp_temp.gti Input dataset/block specification
opt = blocks,subspace Option
(outfile = ) Output file (optional)
(rows = ) Range of table rows to print (min:max)
(cells = ) Range of array indices to print (min:max)
(verbose = 0) Debug Level(0-5)
(mode = ql)
Parameters for /home/username/cxcds_param/dmcopy.par
infile = acisf45549N001_evt2.fits.gz[@fp_temp.gti] Input dataset/block specification
outfile = good_events.fits Output dataset name
(kernel = default) Output file format type
(option = ) Option - force output type
(verbose = 0) Debug Level
(clobber = no) Clobber existing file
(mode = ql)
Parameters for /home/username/cxcds_param/dmkeypar.par
infile = good_events.fits Input file name
keyword = ONTIME Keyword to retrieve
exist = yes Keyword existence
value = )rval -> 45315.80034852 Keyword value
rval = 45315.80034852 Keyword value -- real
ival = 0 Keyword value -- integer
sval = Keyword value -- string
bval = no Keyword value -- boolean
datatype = real Keyword data type
unit = s Keyword unit
comment = Sum of GTIs Keyword comment
(echo = no) Print keyword value to screen?
(mode = ql)
History
| 02 Aug 2012 | Initial version. |
| 03 Dec 2012 | Review for CIAO 4.5; no changes |
| 25 Nov 2013 | Reviewed for CIAO 4.6. No changes. |
| 16 Dec 2014 | Reviewed for CIAO4.7. Increased visibility of this being an advanced thread to optimize specific science goals. |
| 28 Mar 2019 | Replaced chips plots with matplotlib. |
| 13 Aug 2019 | swapped FP_TEMP and time offset axis-labels, fixed figure |
| 17 May 2021 | Updated for CIAO 4.13 and Repro-5. |
| 13 Jan 2022 | Reviewed for CIAO 4.14. No changes. |
| 15 Nov 2022 | Substantial updates due to new FP thermal limits. |