NIRCam Multistripe Subarrays
The JWST NIRCam detector multistripe subarrays expand the normal subarray capabilities by allowing multiple substripes (rows of pixels) to be read out, sampling different locations on the detector, or re-sampling a single substripe multiple times, within the subarray frame time. The ability to split subarrays into multiple substripes is new for Cycle 4, and is only available for NIRCam short wavelength grism time series capability, which is now available within the APT NIRCam Grism Time Series template.
On this page
Overview of multistripe subarray operations for H2RG detectors
Words in bold are GUI menus/
panels or data software packages;
bold italics are buttons in GUI
tools or package parameters.
Multistripe configuration parameters
There are 4 primary parameters controlling the size, number and placement of substripes for a given subarray, as illustrated in Figure 1. All of the substripe parameters are pre-determined and presented in APT as a single subarray choice. The detail provided here is intended to provide a basic understanding of how multistripe exposures operate "under the hood": ovservers will not see them in APT or elsewhere in the planning tools.
- Reads1: Number of rows of pixels to read in the 1st substripe.
- The position of the first row is controlled by the RowCorner of the subarray (configured prior to the start of a multistripe exposure).
- Reads1 is typically set to 4, and the subarray RowCorner set to 1, so that 4 rows of reference pixels are read out at the start of each integration.
- Skips1: Number of rows of pixels to skip after reading "Reads1" rows of pixels.
- Reads2: Number of rows of pixels to read in the 2nd and subsequent substripes.
Note: the number of substripes, nSubstripes, is not explicitly commanded, rather it is determined from the number of rows in the configured subarray, nRowsSubarray, and the values of "Reads1" and "Reads2" as:
nSubstripes = (nRowsSubarray - Reads1) / Reads2, where nRowsSubarray, "Reads1" and "Reads2" are defined such that nSubstripes is an integer. - Skips2: Number of rows of pixels to skip between the first and subsequent sets of "Reads2" rows.
A 5th parameter, RepeatStripe, overrides the "Skips2" parameter, causing the same substripe of "Reads2" rows of pixels to be read out repeatedly during a subarray frame time, and ignoring the value of "Skips2".
For NIRCam, a single subarray configuration is used on all detectors and in both the short and long wavelength channels for a given exposure. That subarray configuration determines the total number of rows and columns within the subarray and the resulting frame time. Multistripe subarrays obey this same logic, with the same number of rows, columns and frame time on all detectors, but the values of the 5 parameters above are individually configurable for each detector within those constraints. The flexibility to individually set the 5 parameters is used, for example, to sample multiple spectra from the target in the short wavelength channel (Figure 1 left panel) while simultaneously sampling the single spectrum from the target in the long wavelength channel (Figure 1 right panel). The cadence of sampling in the long wavelength channel is higher than in the short wavelength channel by a factor of the number of individual substripes in the short wavelength channel. Skipping over rows occurs during existing overheads, so the frame time for a multistripe subarray is the same as for a normal subarray of the same size.
Multistripe timing equations
The substripes of a multistripe subarray frame are read out within the normal frame time for that subarray: no additional overheads are incurred while stepping over the Skips1 or Skips2 rows of pixels. The current NIRCam multistripe subarrays are all read out through 4 outputs and are 2048 columns wide, and the overall subarray frame time for them is computed as usual:
tframe = ((Ncolumns / Noutputs + 12) × (Nrows + 1) + 1) × 10.00 µsec ,
The two +1 terms above represent overheads that occur once at the end of a completed subarray frame.
Because the two +1 terms occur only once per subarray frame, the time to read a substripe is shorter than the time to read a subarray of the same size:
tstripe = (Ncolumns / Noutputs + 12) × Reads# × 10.00 µsec, where Reads# is either "Reads1" or "Reads2".
To obtain the total frame time in terms of the individual stripe times, the frame overhead needs to be added back:
tframe = tstripe(Reads1) + tstripe(Reads2) + ((Ncolumns / Noutputs + 12) × 1 + 1) × 10.00 µsec,
which is equivalent to the first equation because Ncolumns and Noutputs are the same for all substripes in the subarray.
As mentioned above, when RepeatStripe is true, "Reads2" rows of pixels are read out repeatedly during the subarray frame time. The number of repetitions is given by the total number of rows in the subarray, nRowsSubarray minus Reads1, divided by Reads2: nRepeat = (nRowsSubarray - Reads1) / Reads2. (If RepeatStripe = false, the number of substripes is similarly given by nSubStripes = (nRowsSubarray - Reads1) / Reads2.) Figure 2 is a comparison of the timing of reads within a subarray frame without and with RepeatStripe = true. For NIRCam grism time-series observations the short (long) wavelength channel uses RepeatStripe = false (true), respectively. Both channels have the same total frame time, but the Reads2 substripe in the long wavelength channel is read out once for each substripe in the short wavelength channel, as shown in Figure 2.
Click on the figure for a larger view.
Schematic showing the timing of substripe reads for 2 subarrays with the same value of Reads2, one consisting of 5 distinct substripes (RepeatStripe = false, left), and the other with 5 overlapping substripes (RepeatStripe = true, right). In the example at right the single substripe is sampled 5 times more frequently than at left. The solid red lines show the last (first) reset occurring at the beginning (end) of the integration. On the left, the triangles represent the readout of the first pixel of each substripe. The blue-red-blue color sequence of the triangle symbols represents the frames (or groups) within an integration (7 total in this case); the same color scheme is used in the right hand panel and shows the read time of the first pixel of the single substripe: that substripe is read out 5 times per frame time while each substripe at left is read out once per frame time. Note that readout of the Reads1 rows of pixels is not included in the figure: in both panels Reads1 rows would be read out prior to the first substripe sample.