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.
- Get the latest engine release software, installable with pip
- See the installation instructions
- Get the Synphot data files that support certain target spectra manipulations
- Get the required mission-specific items:
Webb | Roman |
---|---|
|
|
- View usage instructions (Webb-specific)
- View the Input API documentation
- View the Output API documentation
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 Issues | Mission | |
JETC-1957 | JWST Roman | The engine accepts non-integer values for groups, integrations, and exposures , even though these are unphysical. |
JETC-2093 | JWST Roman | Users can now specify "pixel" as an option for extraction units. |
JETC-2109 | JWST | Setting a reference_wavelength to None will now choose a similar wavelength to the "Update to Midpoint" button in the web interface |
JETC-2354 | JWST 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-2358 | JWST Roman | The next release will not support versions of Python older than 3.8 |
JETC-2594 | JWST Roman | Changes have been made to background handling for calculations with no background; their results should be more consistent when compared to calculations with background. |
JETC-2593 | JWST Roman | The 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-1857 | JWST Roman | The 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-2678 | JWST, Roman | SpecApPhot 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-2812 | JWST, Roman | Spectra 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-1909 | JWST, Roman | The 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-2812 | JWST, Roman | Spectra 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-2579 | JWST | The 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-2817 | JWST | All 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-2883 | JWST | The OTE throughput file (telescope internal transmission efficiency) and effective mirror size have been updated to reflect on-orbit measurements. |
JETC-2862 | JWST | Optimal 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-2677 | JWST | NIRCam 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-2861 | JWST | NIRCam 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-2886 | JWST | NIRISS 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-1280 | JWST, Roman | Synphot source errors have been shortened, and the error for normalizing a zero-flux source has been made more descriptive. |
JETC-2781 | JWST Roman | The 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.
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.