Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

The Pandeia engine of the Exposure Time Calculator is released to the community to support users who wish to script their calculations, run more extensive parameter space studies, and have more direct control of their scenes. We also recognize that the community has developed more extensive wrappers and public tools that depend on the Pandeia engine.

This page is intended to facilitate communication with developers in the community with Pandeia engine dependencies.



The latest release of the Pandeia engine is 1.67.2.

WarningtitleJWST

JWST users must continue to use v1.6.1; there is no v1.6.2 release for JWST.


Next Planned Release

The next release of the Pandeia Engine will be after JWST launch and commissioning.

  • Warning
    title
Alpha Release

This alpha release contains numerous changes to APIs in the engine internals and the reference data structures; there are no changes to the regular external input API and only minor additions to the output API.

The code is being distributed to the community for development purposes only and is not approved for scientific use. For any other purpose (science, papers, posters, etc) please continue to use the official releases linked above. Developers should not make releases based on this alpha release. This code is not feature-complete, and there will be other minor changes prior to the actual 1.7 release.

In brief -

  • If you are using the Pandeia Engine by passing it an input dictionary via perform_calculation.perform_calculation(), you MAY not be affected by the changes.
  • If your code uses the Pandeia Engine as a library and uses (in particular, but not limited to) the Instrument, DetectorSignal, CombinedSignal, DetectorNoise, ConvolvedSceneCube, AdvancedPSF, or ExposureSpec classes, the calc_utils functions, the etc3d.calculate_contrast() function, or otherwise utilizes the Pandeia reference data, your code is highly likely to be affected and you should read the release notes carefully.

Engine: v1.7alpha (or pip install -i https://test.pypi.org/simple/ pandeia.engine==1.7a1)

JWST Data, Release notes, Known Issues

Roman Data, Release notes, Known Issues

Also requires the Synphot dataset.

Release was developed with Python 3.9, numpy 1.21, scipy 1.7.0, astropy 4.2, photutils 1.1.0, synphot 1.1.0, stsynphot 1.1.0

In the next release:

New Features:

KeyMissionRelease noteJETC-1179JWST RomanNew normalization bandpasses: Midcourse Space Experiment (msx) bands: a, b1, b2, c, d, eJETC-1149JWST RomanNew: Additional filter bandpasses are available: 2mass j, h, ks; wise w1, w2, w3, w4; gaia g (EDR3)
JETC-2020
  • JWST
RomanUsers can now specify k93model spectra, the same ones as are available in the HST ETC.

Backwards Incompatible:

KeyMissionRelease
  • note
JETC-1750Refactor:
JWST Roman
  • The JWST support in v1.7 is based entirely on pre-commissioning data and does not reflect any on-orbit values.


Next Planned Release

The next release of the Pandeia Engine will be after JWST commissioning.

DetectorSignal, CombinedSignal, and CalculationConfig classes are now defined in signal.py; the DetectorNoise class is defined in noise.py; etc3d.py now contains only calculate_sn, calculate_contrast, and calculate_time.JETC-418JWSTCreating a calculation with pandeia.engine.calc_utils.build_default_calc() will now produce an identical calculation (except for Background flux) to the webapp.
The API for describing the default calculations has changed to make that possible.JETC-1837JWST RomanThe det_pars section of the configuration file is now 'detector', and has entries for the distinct different types of detector (for instance, NIRCam sw and lw; where sw corresponds to NRCA1-A4, and lw to NRCA5). The 'aperture_config' configuration now contains a detector keyword to indicate which detector each aperture belongs to. This is an internal API only change; regular use of the engine (running perform_calculation() on a dictionary) is not affected.JETC-1663JWST RomanRefactor: ExposureSpec now contains only the functions necessary to compute MultiAccum exposure times; it has child classes for H2RG, H4RG, and SiAs.
The noise-computing methods previously in ExposureSpec have been moved to a new class, Detector (with child classes for H2RG, H4RG, and SiAs detectors) along with the calc_cr_loss method previously in DetectorNoise. The Detector instance for a calculation can be accessed from a DetectorSignal as DetectorSignal.the_detector; exposure parameters in ExposureSpec can now be accessed from DetectorSignal as DetectorSignal.the_detector.exposure_spec. This is an internal API only change; regular use of the engine (running perform_calculation() on a dictionary) is not affected.
The Roman WFI is now properly identified as an H4RG detector, rather than an H2RG. At present, H4RG is identical to H2RG.JETC-2091JWSTSlits (and slit gaps) are now defined in a new parameter, "slit_config" (with associated "slits" list). The engine input dictionary format does not change - JWST users do not need to (and cannot) specify the slit; it is determined by the choice of aperture.

Reference Updates:

KeyMissionRelease noteJETC-1145JWST RomanReference Update: The Spitzer IRAC bandpasses have been updated with new reference values. All normalization bandpasses now require the TRDS supplementary data.JETC-1700JWST RomanUpdate: New exposure time calculation equations: A reset time has been removed from the saturation calculations, and exposures will take longer to saturate.JETC-1941JWST RomanUpdated the Vega normalization spectrum and the Vega template spectrum ('vega' in the 'hst_calspec' set). This will cause results to change for any users that were normalizing sources using Vega, or who were using the Vega template spectrum. The SN change for such calculations should be less than 2%.
Users now need to have the TRDS supplementary dataset to normalize by Vegamags.JETC-1821JWST RomanAnswers using analytic spectra may change at below the 1% level, because the exact wavelength values used have changed.

Other Changes:

KeyMissionRelease noteJETC-1758RomanFix: A bug that affected the brightness of the Roman F062, F087, and F158 filters has been corrected.JETC-1866JWST RomanBug: A bug in wavelength interpolation that could cause abnormally bright fluxes has been fixed. This primarily affected the Roman WFI f062 filter

What support is available?

Questions about the Pandeia engine for Webb may be directed to the JWST help desk; for Roman, email help@stsci.edu with Roman and/or WFIRST in the subject line or body. However, due to the complexity of the engine, support will be limited and response times may be longer than for other tools.

We welcome comments and feature requests, and these will be considered along with other ETC work.

What is the Pandeia Engine?

The Pandeia engine uses a pixel-based 3-dimensional approach to perform calculations on small (typically a few arcseconds) 2-dimensional user-created astronomical scenes. It models both the spatial and the wavelength dimensions, using realistic point spread functions (produced using WebbPSF) for each instrument mode. It natively handles correlated read noise, inter-pixel capacitance, and saturation. Since the signal and noise are modeled for individual detector pixels, the ETC is able to replicate many of the steps that observers will perform when calibrating and reducing their JWST data. This simplifies interpretation of the extracted signal-to-noise ratio (SNR) calculated by the ETC.  

Info
While the Pandeia engine includes many effects not typically included in other ETCs, it is not an observation simulator. It does not simulate the full detector, nor does it include 2-dimensional effects such as distortion.

Details on the algorithms used to compute signal and noise on the detector and the strategies used to compute the extracted products can be found in Pontoppidan et al. 2016.