One of the main tasks of the TSO WG on FY2020 is to perform testing of the steps made by the JWST Calibration Pipeline for TSO-like data. This tracking sheet contains all the information regarding pipeline testing by the members of the TSO WG. Nestor Espinoza and Sarah Kendrew will be populating this page heavily in the weeks of July 20 and 27, 2020, for NIRISS and MIRI TSO testing, respectively. Nikolay Nikolov and Tony Keyes will be populating at their own pace for NIRCam and NIRSpec, respectively.

General guidelines for Pipeline Testing

  1. Please, test every step identified below. If for some reason you don't have time to test a step, let Nestor Espinoza and Sarah Kendrew know.
  2. Use the comments in the tables to post brief comments about the status of that testing step (think of it as a quick overview for others to know what is going on). For extended commentary, or details on how you performed the testing, use the text below the tables.
  3. If a bug is found, please report it in Jira as a "Bug" Jira ticket. Please copy the links to those tickets in the table below under the comments.
  4. For algorithm improvements/enhancements, please file an "Improvement" Jira ticket. Please copy the links to those tickets in the table below under the comments.

 In general, if bugs are found, the best would be to discuss them first in one of our meetings before going ahead and submitting them (unless this is high-priority, in which case we could schedule a special meeting for this). This is left at the discretion of each TSO WG member.

General comments

Before jumping to read the below table, some important comments to keep in mind while reading them:

Stage 1: Detector Processing TSO testing

Pipeline stepNIRISS statusNIRISS commentsNIRCam statusNIRCam commentsMIRI statusMIRI commentsNIRSpec statusNIRSpec comments
group_scale

The step is supossed to do nothing for NIRISS/SOSS (here, a group = 1 frame). Indeed, nothing changes when running this step, except for the length of the ASDF element in the HDU list object, which is normal.

Runs well without a crash with the run() and call() commands for both imaging and spectroscopy TS. An CRDS - ERROR - Error determining best reference for 'pars-groupscalestep' = Unknown reference type 'pars-groupscalestep'. This seems to be a warning, rather than an error. N/A

Runs without issue.
dq_init

This step correctly initializes the data-quality flags, as it is supposed to do, according to the reference mask in CRDS.

Runs well without a crash with the run() and call() commands for both imaging and spectroscopy TS. The data quality flags are initialized correctly. This step has sufficiently been tested by unit testing.


Runs without issue.
saturation

This step does what is expected to do: it captures saturated pixels and flags them in the GROUPDQ masks. The simulations used for this validation had saturated pixels and they were correctly identified (flagged) by the pipeline.

Runs well without a crash with the run() and call() commands for both imaging and spectroscopy TS. Saturated pixels are identified and flagged in the GQ masks correctly. This step has sufficiently been tested by unit testing.

done for imager. only high level check for LRS.

Runs without issue.
superbias

Tested my own bias substraction using reference files and got exact same results.

Runs well without a crash with the run() and call() commands for both imaging and spectroscopy TS. This step has sufficiently been tested by unit testing.N/A

Runs without issue.
resetN/A
N/A

This was tested on a TSO imaging file separately since this step does not currently run by default. The test passed with no issues.N/A
linearity

Tested linearity correction using reference files and got exact same results.

Runs well without a crash with the run() and call() commands for both imaging and spectroscopy TS. The step performs what is expected and has sufficiently been tested by unit testing.

sufficiently covered by unit testing. 

Runs without issue.
rscdN/A
N/A

Step currently flags frames in integrations higher than the first as 'DO_NOT_USE' in the groupdq array. This has been tested successfully.N/A
dark_current

Dark frames perform expected corrections on the data.

Runs well without a crash with the run() and call() commands for both imaging and spectroscopy TS. Dark subtraction works well.

sufficiently covered by unit testing

Runs without issue.
refpix

Currently, does not do anything to NIRISS/SOSS simulations, as reference pixels there are set to zero. When injecting a fake strain of reference pixels got some deviations that most likely have to do with DMS-detector frame rotations.

Runs well without a crash with the run() and call() commands for both imaging and spectroscopy TS. The step performs what is supposed to do and has sufficiently been tested by unit testing.

Still, I find this step to correct much less for subarrays (i.e. using half of the reference pixels) compared to a subtraction of the median value. This is not a suggestion to improve this for exoplanets, as the 1d cbc spectral extraction would do a better correction. Would be good for the imaging data though.

This step is sufficiently tested in unit tests. It is skipped for MIRI subarray data so only applies to FULL array imaging TSOs, and note that MIRISim's implementation of Refpix is different from the pipeline step, so may give unexpected results. 


Runs without issue.
jump

Step produced no errors. However, currently detecting more jumps than it should — will revisit once some errors on the SOSS simulator are addressed (see below).

Runs without a crash, but identifies too many pixels as cosmic rays or bad with the default threshold of 4 sigma. Results improve if the threshold is increased to >15 sigma.

NOTE: This step names files 'jump', i.e. without the root 'step'. This differs to all of the remaining steps in stage 1. 

high level testing is done. Inserted cosmic rays of varying strengths were detected (based on threshold) and flagged neighboring pixels (based on level above background)

Runs without issue.
ramp_fitting

The pipeline was tested against an OLS ramp fit, and pipeline does exactly as intended.

Runs well without a crash with the run() and call() commands for both imaging and spectroscopy TS. Ramp fitting (including OLS) has sufficiently been tested by unit testing and performs as expected. The run() command accepts weighting = "unweighted", despite the optimal is the only option and produces different results. The call() command has no options for weighting.

Well covered by unit tests. May be a candidate for more detailed testing when time.

Runs without issue.
gain_scale

This step only applies to NIRSpec data. Because no GAINFACT is found in the headers, this step is properly skipped by the pipeline.

Only applies to NIRSpec and skipped for NIRCam.

Documentation states 'This currently only applies to NIRSpec exposures that are read out using a subarray pattern, in which case a gain setting of 2 is used instead of the standard setting of 1.' This step is properly skipped for MIRI data.

Runs without issue. 










Extended comments by instrument branch:

Stage 2: Spectroscopic processing TSO testing

Pipeline stepNIRISS statusNIRISS commentsNIRCam statusNIRCam commentsMIRI statusMIRI commentsNIRSpec statusNIRSpec comments
assign_wcs

Assign WCS indeed adds information to the ASDF name of the files. Tested that ranges of the WCS information made sense.

Runs without a crash and assigns WCS correctly.

done

Build 7.5: Though we do not have a validation test, this is presumably ok since FS passes the test.

This test is not directly performed for BOTS since we do not have ESA intermediary products to compare against.  

JP-1577 - Assign_wcs in spec 2 passes validation test OPEN

extract_2d

This step is not supported for NIRISS/SOSS, and indeed running this steps shows the "not-supported" message. Still, saves an output equal to the input.

Runs without a crash and extracts 2d spectra.

n/a

Build 7.5: Though at present we do not have a validation test, this is presumably ok since FS passes the test.

JP-1578 - Extract_2d step in spec2 passes the validation test OPEN

flat_field

Flat field is correctly applied to NIRISS/SOSS data. 

Runs without a crash and performs flat field correction.

done for LRS B7.5, 7.6, 7.7

Build 7.5: Validated/verified


JP-1071 -NIRSpec: flat_field calspec2 step failing validation for FS ALLSLITS, BOTS, and MOS data 

  • 31/Aug/20 BOTS component has been fixed and delivered


srctype

As stated in the documentation, TSO always defines SRCTYPE to POINT. The pipeline indeed does this for NIRISS/SOSS TSO data.

Runs without a crash. SRCTYPE correctly set to POINT.


Build 7.5: 

Validated/verified

Logic is now correct

JP-1576 - source_type logic in spec2 is not correct for NIRSpec FS and MOS modes  CLOSED

photom

Photometric calibration is performed according to the NIRISS reference files.

Runs without a crash and performs as expected.

done for LRS B7.5, 7.6, 7.7

Build 7.5: N/A 

tso_photometry is skipped for NIRSpec. 

Jul 2020: Logic for the output units was coded in NPTT and tested. All modes passed.

extract_1d

This step currently extracts a big chunk of the whole subarray as a spectrum, which produced order overlap, which makes this step produce an unusable product for science right now. An algorithm is in development for this step. For details, see .

Runs without a crash and extracts spectra. Still need to enable column-by-column background subtraction with a Jira ticked issued 

done for LRS up to B7.7

Build 7.5:                methodology needs to be vetted by TSOWG

This step is currently crashing with BOTS data; additional comments pending

Extended comments by instrument branch:

Stage 2: Image Processing TSO testing

Pipeline stepNIRISS statusNIRISS commentsNIRCam statusNIRCam commentsMIRI statusMIRI commentsNIRSpec statusNIRSpec comments
assign_wcsN/A

Runs without a crash and assigns WCS correctly.

have successfully run imaging TSO simulations through Image2 and TSO3 but no notebooks yet for individual steps. high level checks looked good.

N/A


flat_field

N/A


Runs without a crash and performs flat field correction.


N/A


photom

N/A


Runs without a crash and performs as expected.


N/A


Extended comments by instrument branch:

Stage 3: Time-Series Observations (TSO) Processing testing

Pipeline stepNIRISS statusNIRISS commentsNIRCam statusNIRCam commentsMIRI statusMIRI commentsNIRSpec statusNIRSpec comments
outlier_detection

Testing and validation done. Found some problems both with the documentation () and with the effectiveness of the algorithm itself. On this latter point, the algorithm marks as outliers points that are predominantly on the edges of the SOSS profile (). The algorithm also doesn't use time-series information at all, and only uses the median image to catch outliers (). In my opinion, algorithm currently not optimal for NIRISS/SOSS TSOs at least.



Build 7.5: Validation test needs to be written.  


tso_photometry

N/A


Runs without a crash and performs as expected.

have successfully run TSO imaging simulations through Image2 and TSO3 but no notebooks yet for individual steps. high level checks looked good.

N/A

tso_photometry is not performed by the pipeline for spectroscopy (NIRSpec). 
extract_1d

This step currently extracts a big chunk of the whole subarray as a spectrum, which produced order overlap, which makes this step produce an unusable product for science right now. An algorithm is in development for this step. For details, see .

Runs without a crash and extracts spectra. Still need to enable column-by-column background subtraction with a Jira ticked issued 


Build 7.5: Validation test needs to be written.  Sept 2019: For now, use the same test as for spec2.  

JP-1728 - NIRSpec extract_1d testing OPEN

JP-1729 - labeling of NIRSpec BOTS integrations OPENThe level 3 "x1dints" product for NIRSpec BOTS data contains separate extensions for each integration and detector obtained in the exposure.  Currently, there is no obvious way to distinguish between each extension in terms of its corresponding detector and integration, which is necessary in order for a user to be able to combine the data on both detectors for a given integration. 


white_light


Runs without a crash. Jira ticket issued for defining min/max wavelength for white light curve: 


Build 7.5: Sept 2019: Need to design tests; start with verification


Extended comments by instrument branch: