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.7.

Next Planned Release

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

The next release will require Python 3.8+, as a result of Astropy 5.0

v2.0 alpha release for developers

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 apart from a change to the meaning of the aperture_size and sky_annulus parameters. They now refer to the full-height of the aperture and a full-span distance; see JETC-2678 for more details.
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 Scene, Source, ConvolvedSceneCube, PSFLibrary, or AdvancedPSF classes, you may need to make significant changes to your code.

THIS CODE AND DATA PACKAGE DOES NOT CONTAIN ANY POST-COMMISSIONING DATA.

This code is being distributed to the community for development purposes only and is not approved for scientific use. Developers should not make releases based on this alpha release. This code is not feature-complete, and there will be other major and minor changes prior to the actual 2.0 release.

Engine: v2.0alpha (or pip install -i https://test.pypi.org/simple/ pandeia.engine==2.0a0)
Combined JWST & Roman Data, Release notes, Known Issues
Also requires the Synphot dataset.
Release was developed with Python 3.10, numpy 1.21.2, scipy 1.7.3, astropy 5.0.4, photutils 1.4.0, synphot 1.1.0, stsynphot 1.1.0



In the next release: (Bolded items are new and NOT in the v2.0 alpha)

Known IssuesMission
JETC-1957JWST RomanThe engine accepts non-integer values for groups, integrations, and exposures , even though these are unphysical.
JETC-2093JWST RomanUsers can now specify "pixel" as an option for extraction units.
JETC-2109JWSTSetting a reference_wavelength to None will now choose a similar wavelength to the "Update to Midpoint" button in the web interface
JETC-2354JWST Roman

New normalization bandpasses: johnson_u, johnson_b, johnson_r, cousins_r, galex_fuv, galex_nuv. None of the new normalization bandpasses are within the wavelength range of JWST. 

JETC-2358JWST RomanThe next release will not support versions of Python older than 3.8
JETC-2594JWST RomanChanges have been made to background handling for calculations with no background; their results should be more consistent when compared to calculations with background.
JETC-2593JWST RomanThe Source and Scene class initializers, and calc_utils.build_default_source() function, now require a "telescope" parameter, which must be a string ("jwst" or "roman") relating to the name of a supported telescope. calc_utils.build_empty_source() does NOT accept "telescope", and calc_utils.build_default_calculation() is unchanged.
JETC-1857JWST RomanThe Pandeia Engine now warns if the instrument setup has a filter leak, in the form of substantial flux from a given source coming from wavelengths outside the defined instrument bandpass. Such flux will not be accounted for in the Engine's results.
JETC-2678JWST, RomanSpecApPhot aperture size now defined by the full-height instead of the half-height. Sky Annulus size (which still defines two rectangular regions above and below the aperture) now indicates the distance in arcseconds between the inner edges of the rectangular regions, and between the outer edges of the rectangular regions.
JETC-2812JWST, RomanSpectra with sharp features were previously being incorrectly resampled, resulting in an erroneous reduction in flux. A persistent warning about source spectrum extrapolation was removed.
JETC-1909JWST, RomanThe ConvolvedSceneCube creation and AdvancedPSF class have been refactored to remove redundant operations. Though each AdvancedPSF instance should be identical, it (and its construction) are now very different. The Pandeia Engine should be ~10% faster as a result.
JETC-2812JWST, RomanSpectra with sharp features were previously being incorrectly resampled, resulting in an erroneous reduction in flux. A persistent warning about source spectrum extrapolation was removed.
JETC-2579JWSTThe minzodi_benchmark background has been regenerated for July 19, 2023. The position of the previous file was incorrect by ~6" due to an error in Astropy, now fixed.
JETC-2817JWSTAll JWST Instrument PSFs have been regenerated with WebbPSF 1.1.0, using post-commissioning data and on-orbit optical alignment data from 2022-07-30 (74 nm/80th percentile).
JETC-2883JWSTThe OTE throughput file (telescope internal transmission efficiency) and effective mirror size have been updated to reflect on-orbit measurements.
JETC-2862JWSTOptimal filter-specific PSF positions along the NIRCam bar have been recomputed from post-launch commissioning data. To improve accuracy, the available NIRCam coronagraphy PSF grids have been redesigned to contain PSFs computed at the positions of 0% (fully occulted), 1%, 10%, 50%, 75%, and 99% of total flux. An additional position representing a 3 mas pointing error has also been added.
JETC-2677JWSTNIRCam coronagraphic subarrays have been split up and renamed, based on the mask and module they appear on (for instance, sub320a335r). Apart from the LWB subarray, which has been changed to 400x256 subarrays (sub400x256alwb), none of the readout times have changed.
JETC-2861JWSTNIRCam Coronagraphy now supports secondary coronagraphy observations. Secondary coronagraphy is for data obtained in parallel to a regular NIRCam coronagraphy observation, through the other channel. This has two consequences for Engine scripting: One, all NIRCam coronagraphy observations must now specify the detector ("detector: "sw" or "detector": "lw") in the ["configuration"]["instrument"] dictionary; two, because the NIRCam bar coronagraphic masks have optimal along-bar positions for every primary filter, secondary observations with a bar mask need to specify which primary filter they are to be paired with, using a "paired_filter" keyword, also in the ["configuration"]["instrument"] dictionary. Scripting users who parse the pandeia_refdata files will notice that the internal names of the NIRCam apertures have changed to reflect a combination of mask+detector (e.g. "mask210rsw"); those aperture names may optionally be used directly, as long as the value of "detector" is consistent with that choice.
JETC-2886JWSTNIRISS filter and disperser data has been updated with post-launch commissioning data. NIRISS Imager PSFs (used by imaging, target_acq, and wfss) are now larger (4" on a side), to accommodate the needs of NIRISS WFSS calculations.
JETC-1280JWST, RomanSynphot source errors have been shortened, and the error for normalizing a zero-flux source has been made more descriptive.
JETC-2781JWST RomanThe PSFLibrary class has been refactored to load only the PSFs required for the calculation.

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.  

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.

  • No labels