Appendix B: OBSMODE Keywords

In this section, we describe the keywords available for Observation Mode. pysynphot supports science instruments currently installed on HST as of Servicing Mission 4 (SM4) performed in May 2009, legacy HST instruments, and non-HST filter systems. Cross-instrument keywords are also listed.

In all the following tables, the MJD keyword is used to account for time-dependent sensitivity, while the ADC (Analog-to-Digital Converter) gain keyword is used to convert flux unit from electrons to data number (DN). The keywords are also further explained in the following sections. More instrument-specific details can be obtained from their respective Instrument Handbooks.

The complete list of allowed component names that represent the telescope (OTA), Corrective Optics Space Telescope Axial Replacement (COSTAR), and science instruments is as tabulated below:

Description Keywords
Telescope ota noota
COSTAR costar nocostar
Instrument acs cos fgs foc fos hrs hsp nicmos pc stis wf wfc wfc3 wfpc wfpc2

As of September 1993, the default modes for the telescope and COSTAR components are ota and nocostar, respectively. Soon after COSTAR was installed in the telescope, the default mode was changed to costar for original instruments. Once the second-generation instruments were installed, with their built-in optical corrections, the default mode for costar or nocostar became instrument-specific. Note that for the WF/PC-1 instrument, the names wf, wfc, and wfpc are all equivalent and correspond to the Wide Field Camera.

In-Flight Instruments

This section contains science instruments that are currently installed on HST.



HRC is currently not operational.

The ACS keywords consist of a list of detectors, filters, extraction apertures, and MJD specifications. For example:

>>> bp = S.ObsBandpass('acs,wfc1,f555w')
Description Keywords
Detector hrc sbc wfc1 wfc2
Filter HRC f220w f250w f330w f344n f435w f475w f502n f550m f555w f606w f625w f658n f660n f775w f814w f850lp f892n pol_uv pol_v
WFC f435w f475w f502n f550m f555w f606w f625w f658n f660n f775w f814w f850lp f892n pol_uv pol_v
SBC f115lp f125lp f140lp f150lp f165lp f122m
Ramp filter HRC fr388n fr459m fr505n fr656n fr914m
WFC fr1016n fr388n fr423n fr459m fr462n fr505n fr551n fr601n fr647m fr656n fr716n fr782n fr853n fr914m fr931n
Disperser HRC g800l pr200l
WFC g800l
SBC pr110l pr130l
EE radius aper#0.0 aper#0.1 aper#0.2 aper#0.3 aper#0.4 aper#0.5 aper#0.6 aper#0.8 aper#1.0 aper#1.5 aper#2.0 aper#4.0
MJD mjd#
Coronographic (HRC only) coron

Ramp Filter

The WFC detector has 15 ramp filters available for use, while the HRC has 6. To use a ramp filter in simulations, use the keyword syntax filtername#cenwave, where filtername is the name of the ramp filter and cenwave the desired central wavelength in Angstroms. Also see Parameterized Keyword for more information. For example:

>>> bp = S.ObsBandpass('acs,wfc1,fr388n#3880')


The COS keywords consist of a list of detectors, apertures, mirrors, gratings, central wavelengths, and MJD specifications.

FUV spectral simulations are performed by specifying one of the FUV gratings along with a central wavelength. NUV spectral simulations are performed by specifying one of the NUV gratings along with a central wavelength. In both cases, only first-order light is included in the calculation, and the resulting spectrum will include all three stripes on the detector.

Imaging simulations are performed by specifying one of the mirrors (mirrorb for bright objects) with the NUV detector.

Either the Primary Science Aperture (psa) or the Bright Object Aperture (boa) may be specified with any simulation; the Primary Science Aperture will be included by default if neither is specified.

For example:

>>> bp = S.ObsBandpass('cos,nuv,g185m,c1786')
Description Keywords
Detector fuv nuv
Aperture boa psa
Mirror mirrora mirrorb
Grating FUV g130m g140l g160m
NUV g185m g225m g230l g285m
Central wavelength g130m c1291 c1300 c1309 c1318 c1327
g140l c1105 c1230
g160m c1577 c1589 c1600 c1611 c1623
g185m c1786 c1817 c1835 c1850 c1864 c1882 c1890 c1900 c1913 c1921 c1941 c1953 c1971 c1986 c2010
g225m c2186 c2217 c2233 c2250 c2268 c2283 c2306 c2325 c2339 c2357 c2373 c2390 c2410
g230l c2635 c2950 c3000 c3360
g285m c2617 c2637 c2657 c2676 c2695 c2709 c2719 c2739 c2850 c2952 c2979 c2996 c3018 c3035 c3057 c3074 c3094
MJD mjd#


The FGS instrument keywords consist of a list of filters plus a coordinate axis. Some of the filter names are aliases for other filters. For instance, astroclear is an alias for F605W, clear for F583W, red for F650W, and yellow for 550W. For example:

>>> bp = S.ObsBandpass('fgs,f583w,y')
Description Keywords
Filter f550w (yellow) f583w (clear) f605w (astroclear) f650w (red) nd5 pupil
Axis x y



NICMOS is currently not operational.

The NICMOS keywords consist of a list of filters, grisms, polarizers, and detectors.

Both the filter name and camera number are required in the observation mode. The detector keyword tacq is another way to specify Detector 2. For thermal calculations, all component keywords, except the detector, may be parameterized for temperature.

For example:

>>> bp = S.ObsBandpass('nicmos,1,f090m,dn,primary#270')
Description Keywords
Detector 1 2 3 tacq
Filter Detector 1 blank f090m f095n f097n f108n f110m f110w f113n f140w f145m f160w f164n f165m f166n f170m f187n f190n pol0s pol120s pol240s
Detector 2 blank f100w f160w f165m f171m f180m f187n f187w f190n f204m f205w f207m f212n f215n f216n f222m f237m pol0l pol120l pol240l
Detector 3 blank f108n f110w f113n f150w f160w f164n f166n f175w f187n f190n f196n f200n f212n f215n f222m f240m g096 g141 g206
ADC gain dn
Thermal component spider primary pads hole sec edge bend1 reimag pupil image para1 para2 bend dewar cmask dqe


The STIS keywords consist of filters, apertures, gratings, central wavelengths, and ADC gains.

In the STIS instrument, imaging mirrors and gratings are contained in the Mode Select Mechanism (MSM) while filters and slits are in the aperture wheel. Each grating or imaging mirror can be used with only one of the 3 STIS detectors (CCD, NUVMAMA, or FUVMAMA); Therefore, specifying the grating automatically determines the detector.

Each central wavelength is intended for use with a particular grating. See the STIS Instrument Handbook for a listing of which central wavelengths are allowed with each grating. The low order gratings (G140L, G230L, G230LB, G430L, and G750L) have only one allowed setting; Thus, central wavelength should not be specified for those. If no central wavelength is specified, results will be calculated for the entire bandpass of the grating.

In principle, any filter or slit (aperture) could be used with any grating or mirror, although in practice, certain combinations are restricted or forbidden. Since the slits and filters are in the same wheel, it is not possible to use both a slit and a filter at the same time. Some small slits also contain built-in neutral density filters. In addition to the aperture names listed, those used for HST Phase 2 proposals are also acceptable. For example, the 52X0.05 is equivalent to s52x005 listed in the table below. If no aperture or filter is specified, the calculation is done for the “clear” aperture.

The MJD keyword only applies to FUV and NUV MAMAs. The ADC gain keyword only applies to CCD; It is used to convert results from units of electrons to DN.

These obsmode strings are all equivalent, with 50CCD being the unobstructed full-field aperture for the CCD detector:

>>> bp = S.ObsBandpass('stis,g430l')
>>> bp = S.ObsBandpass('stis,ccd,g430l')
>>> bp = S.ObsBandpass('stis,ccd,g430l,50ccd')

This assumes that an imaging mirror is being used because the detector name is specified without a grating:

>>> bp = S.ObsBandpass('stis,ccd,f28x50lp')

This will calculate results for the entire bandpass of the instrument because no central wavelength is specified:

>>> bp = S.ObsBandpass('stis,ccd,g430m,52X0.2')

This will only calculate results for the wavelength range covered by the specified wavelength setting:

>>> bp = S.ObsBandpass('stis,ccd,g430m,52X0.2,c4451')
Description Keywords
Filter 25mama 50ccd 50coron f25ciii f25cn182 f25cn270 f25lya f25mgii f25nd3 f25nd5 f25ndq1 f25ndq2 f25ndq3 f25ndq4 f25qtz f25srf2 f28x50lp f28x50oii f28x50oiii
Aperture s005x29 s005x31nda s005x31ndb s009x29 s01x003 s01x006 s01x009 s01x02 s02x005nd s02x006 s02x006fpa s02x006fpb s02x006fpc s02x006fpd s02x006fpe s02x009 s02x02 s02x02fpa s02x02fpb s02x02fpc s02x02fpd s02x02fpe s02x05 s02x29 s03x005nd s03x006 s03x009 s03x02 s05x05 s10x006 s10x02 s2x2 s31x005nda s31x005ndb s31x005ndc s36x005n45 s36x005p45 s36x06n45 s36x06p45 s52x005 s52x01 s52x02 s52x05 s52x2 s6x006 s6x02 s6x05 s6x6
Grating e140h e140hb e140m e140mb e230h e230m g140l g140lb g140m g140mb g230l g230lb g230m g230mb g430l g430m g750l g750m prism x140 x140m x230 x230h
Mirror acq ccd fuvmama nuvmama
Central wavelength all c1687 c1769 c1851 c1933 c2014 c2095 c2176 c2257 c2338 c2419 c2499 c2579 c2659 c2739 c2818 c2898 c2977 c3055 c3134 i1884 i2600 i2800 i2828 c1713 c1854 c1995 c2135 c2276 c2416 c2557 c2697 c2836 c2976 c3115 i2794 c1978 c2707 i2124 i2269 i2415 i2561 c1763 c2013 c2263 c2513 c2762 c3012 i1813 i1863 i1913 i1963 i2063 i2113 i2163 i2213 i2313 i2363 i2413 i2463 i2563 i2613 i2663 i2713 i2812 i2862 i2912 i2962 c3165 c3423 c3680 c3936 c4194 c4451 c4706 c4961 c5216 c5471 i3305 i3843 i4781 i5093 c1173 c1222 c1272 c1321 c1371 c1420 c1470 c1518 c1567 c1616 c1665 c1714 i1218 i1387 i1400 i1540 i1550 i1640 c1425 c1234 c1416 c1598 i1271 i1307 i1343 i1380 i1453 i1489 i1526 i1562 c7751 c8975 c10363 c10871 c5734 c6252 c6768 c7283 c7795 c8311 c8825 c9336 c9851 i6094 i6581 i8561 i9286 i9806
ADC gain a2d1 a2d2 a2d3 a2d4
MJD mjd#


The WFC3 keywords consist of a list of detectors, filters, MJD, and extraction apertures for each of its 2 channels (UVIS and IR), in addition to other special keyword, as tabulated below. For example:

>>> bp = S.ObsBandpass('wfc3,uvis1,f218w')
Description Keywords
Detector uvis1 uvis2 ir
Filter UVIS f200lp f218w f225w f275w f280n f300x f336w f343n f350lp f373n f390m f390w f395n f410m f438w f467m f469n f475w f475x f487n f502n f547m f555w f600lp f606w f621m f625w f631n f645n f656n f657n f658n f665n f673n f680n f689m f763m f775w f814w f845m f850lp f953n fq232n fq243n fq378n fq387n fq422m fq436n fq437n fq492n fq508n fq575n fq619n fq634n fq672n fq674n fq727n fq750n fq889n fq906n fq924n fq937n
IR f098m f105w f110w f125w f126n f127m f128n f130n f132n f139m f140w f153m f160w f164n f167n
Grism UVIS g280
IR g102 g141
ADC gain dn
Quantum yield correction qyc
Background calculation bkg
EE radius aper#0.00 aper#0.10 aper#0.15 aper#0.20 aper#0.25a aper#0.30 aper#0.40 aper#0.50 aper#0.60 aper#0.80 aper#1.00 aper#1.50 aper#2.00
MJD mjd#

Quantum Yield Correction

The qyc keyword is used to apply a wavelength-dependent quantum yield correction. At short wavelengths, the UVIS detector has a finite chance of producing two elections for one incoming photon. By default, pysynphot reports the count rate in electrons if the dn keyword is not specified, or data numbers otherwise.

However, the appropriate count rate for SNR calculations should be in electrons with a correction for this quantum yield effect; That is, users should specify the qyc keyword but not dn. For example:

>>> bp = S.ObsBandpass('wfc3,uvis1,f218w,qyc')

Legacy Instruments

The instruments which had previously flown on HST but had been replaced by more modern detectors are included here for completeness.


The FOC keywords consist of a list of detectors, filters, and miscellaneous keywords. The f/48 detector has 2 filter wheels and the f/96 detector has 4. Some of the filters have aliases. For instance, fuvop is an alias for prism1, nuvop for prism2, fopcd for prism3, g450m for F305LP, g225m for F220W, and g150m for F140W. The miscellaneous keywords include the COSTAR and the occulting fingers. For example:

>>> bp = S.ObsBandpass('foc,costar,f/96,f410m')
Description Keywords
Detector f/48 f/96 f/288 spec
f/48 Wheel 1 f140w (g130m) f150w (g150m) f175w f195w f220w (g225m) f305lp (g450m) prism3 (fopcd) (grat-prism)
Wheel 2 f130lp f180lp f275w f342w f430w prism1 (fuvop) prism2 (nuvop)
f/96 Wheel 1 f600m f630m f2nd f4nd f6nd f8nd pol0 pol0_par pol0_per pol0_unp pol60 pol60_par pol60_per pol60_unp pol120 pol120_par pol120_per pol120_unp prism1 (fuvop) prism2 (nuvop)
Wheel 2 f140w f175w f220w f275w f320w f342w f370lp f430w f480lp f486n f501n
Wheel 3 f120m f130m f140m f152m f165w f170m f190m f195w f210m f231m f1nd
Wheel 4 f130lp f253m f278m f307m f346m f372m f410m f437m f470m f502m f550m
Image Format f/48 x48n256 x48n256d x48n512 x48nlrg x48zlrg x48zrec
f/96 x96n128 x96n256 x96n512 x96nlrg x96z512 x96zlrg
Spectral Order order1 order2 order3 order4
Occulting FIngers occ0p23 occ0p4 occ0p8
Detector Format x48n256 x48n256d x48n512 x48nlrg x48zlrg x48zrec x96n128 x96n256 x96n512 x96z512 x96nlrg x96zlrg

Note that the spectroscopic capabilities, and hence the related keywords spec, order1, order2, order3, and order4, are only available for the f/48 camera. Furthermore, the occ0p23 keyword is only available with the f/48 camera, and the occ0p4 and occ0p8 keywords are only available with the f/96 camera.

The x48* and x96* keywords are used to account for the known dependency of DQE on the detector format (see the FOC Instrument Handbook for more details). These keywords invoke throughput tables that contain the (wavelength-independent) relative sensitivities for each format, where the 512x512 format (x48n512 and x96n512) is set to 1.0. The associations between formats and keywords are listed below.

Camera Keyword Camera Format
f/96 x96n128 128 x 128
x96n256 256 x 256
x96n512 512 x 512
x96z512 512z x 512
x96zlrg 512z x 1024
f/48 x48n256 256 x 256
x48n512 512 x 512
x48zrec 256z x 1024
x48nlrg 512 x 1024
x48zlrg 512z x 1024


The FOS keywords consist of a list of detectors, apertures, gratings, and polarimeter waveplates and waveplate position angles. COSTAR keyword is also accepted. For example:

>>> bp = S.ObsBandpass('fos,costar,blue,g160l')

The waveplate keywords indicate whether Waveplate A or B is being used and the angle of the waveplate. The waveplate keyword syntax is POLpa-wp, where pa is the position angle in degrees, and wp is the A or B waveplate:

>>> bp = S.ObsBandpass('fos,blue,g130h,pol135-a')

The upper and lower aperture keywords are only recognized when used in conjunction with one of the paired apertures:

>>> bp = S.ObsBandpass('fos,blue,g130h,upper,1.0-pair')

The order0 keyword is only available in conjunction with the g160l grating and the blue detector:

>>> bp = S.ObsBandpass('fos,blue,g160l,order0')
Description Keywords
Detector blue red
Aperture 0.3 0.5 1.0 4.3 0.1-pair 0.25-pair 0.5-pair 1.0-pair upper lower 0.25x2.0 0.7x2.0-bar 2.0-bar blank failsafe
Grating g130h g190h g270h g400h g570h g780h g160l g650l mirror prism order0
Waveplate pol0-a pol0-b pol22.5-a pol22.5-b pol45-a pol45-b pol67.5-a pol67.5-b pol90-a pol90-b pol112.5-a pol112.5-b pol135-a pol135-b pol157.5-a pol157.5-b pol180-a pol180-b pol202.5-a pol202.5-b pol235-a pol235-b pol257.5-a pol257.5-b pol270-a pol270-b pol292.5-a pol292.5-b pol315-a pol315-b pol337.5-a pol337.5-b


The GHRS keywords consist of a list of detectors, apertures, gratings or mirrors, and Echelle mode orders. COSTAR keyword is also accepted. For example:

>>> bp = S.ObsBandpass('hrs,costar,lsa,g160m')

The Echelle mode orders are used with the keywords echa and echb. Orders 18 to 33 are valid with Echelle mode B, while orders 33 to 53 with mode A. For example:

>>> bp = S.ObsBandpass('hrs,costar,lsa,echa,33')
Description Keywords
Aperture lsa ssa
Grating echa echb g140l g140m g160m g200m g270m
Mirror a1 a2 n1 n2
Echelle Order 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 all


The HSP keywords consist of a list of detectors, filters, apertures, and beams. The beams refer to the two beams that come out of the beam splitter. Not all apertures can be used with all detectors; Refer to the HSP Instrument Handbook for further information. The polarization detector also has angle and type keywords. For example:

>>> bp = S.ObsBandpass('hsp,uv1,f220w,c')
Description Keywords
Detector pmt pol uv1 uv2 vis
Relay mirror norelay relay
Aperture a b c d e f h j s t
Beam blue red
Filter POL f160lp f216m f237m f277m f327m
UV1 f122m f135w f140lp f145m f152m f184w f218m f220w f240w f248m f278n prism
UV2 f122m f140lp f145m f152m f160lp f179m f184w f218m f248m f262m f278n f284m prism
VIS f160lp f184w f240w f262m f355m f400lp f419n f450w f551w f620w prism
Polarization Angle 0 45 90 135
Type ext ord par per


The WF/PC-1 keywords consist of a list of filters, detectors, and miscellaneous keywords. The cal keyword accounts for the flat-field correction. The cont# keyword accounts for changes in sensitivity between decontamination events.

WF/PC-1 has 12 independently positionable filter wheels, each of which has 5 positions, including a “clear” position. Detectors 1-4 correspond to the Wide Field Camera; They are only valid when used in conjunction with the wf, wfc, or wfpc keywords. Meanwhile, Detectors 5-8 correspond to the Planetary Camera; They are only valid when used with the pc keyword. If a detector number is not specified, the default detector for wf is 2, and pc is 6.

For example:

>>> bp = S.ObsBandpass('wfpc,4,f194w,dn')
Decription Keywords
Instrument wfpc wfc wf (all equivalent) pc
Detector 1 2 3 4 5 6 7 8
Filter Wheel 1 f673n f8nd g450 g800
2 f122m f336w f439w g200 g200m2
3 pol0 pol60 pol120 f1083n
4 f157w f194w f230w f284w
5 f569w f658n f675w f791w
6 f631n f656n f664n f702w
7 f375n f437n f502n f588n
8 f368m f413m f492m f622w
9 f547m f555w f648m f718m
10 f785lp f814w f875m f1042m
11 f128lp f469n f487n f517n
12 f606w f725lp f850lp f889n
ADC gain dn
Baum spot baum
Decontamination cont#
Flat-field cal


The WFPC2 keywords consist of a list of detectors, filters, ADC gain, and miscellaneous keywords. The cal keyword accounts for the flat-field response. Meanwhile, the cont# keyword accounts for changes in throughput between decontamination events; Due to the removal of WFPC2 during SM4, this time-dependent effect is only valid for dates prior to SM4.

WFPC2 has 12 filter wheels, each of which has 5 positions, including the “clear” position. Wheel 11 contains quad filters, while Wheel 12 contains linear ramp filters. Detector 1 is the Planetary Camera. Meanwhile, Detectors 2-4 correspond to the Wide Field Camera. If a detector is not specified, the default is Detector 4.

For example:

>>> bp = S.ObsBandpass('wfpc2,2,f450w,a2d7,cont#50180')
Description Keywords
Detector 1 2 3 4
Filter Wheel 1 f122m f157w f160bw f953n
2 f130lp f165lp f785lp f850lp
3 f336w f410m f467m f547m
4 f439w f569w f675w f791w
5 f343n f375n f390n f437n
6 f469n f487n f502n f588n
7 f631n f656n f658n f673n
8 f170w f185w f218w f255w
9 f300w f380w f555w f622w
10 f450w f606w f702w f814w
11 f1042m fquvn fquvn33 fqch4n fqch4n33 fqch4n15 fqch4p15 polq polq_par polq_perp polqn33 polqn18 polqp15
12 lrf#
ADC gain a2d7 a2d15
Decontamination cont#
Flat-field cal

Quad Filter

Filter Wheel 11 contains 3 specialized quadrant (quad) filters. Each quadrant corresponds to a facet of the pyramid, and therefore to a distinct camera relay:

  • FQUVN contains 4 narrow-band, redshifted [O II] filters
  • FQCH4N contains 4 methane (CH4) band filters
  • POLQ contains 4 polarizing elements

For FQUVN and FQCH4N filters, the graph table is constructed such that distinct throughput values are automatically selected for a given quadrant based on the selected detector. For POLQ filter, it can also be specified by the direction its polarization; i.e., polq_perp for perpendicular polarization, and polq_par for parallel.

The quad filters were designed to map onto a 4-faceted WFC configuration. However, in the final design of the instrument, with WF Quadrant 1 replaced by the PC, it is necessary to rotate the quad filters as follow (see the WFPC2 Instrument Handbook for more details):

  • fquvn33, fqch4n33, and polqn33 represent the respective filters rotated by \(-33^{\circ}\) in order to bring Filter Quadrant 1 into the WF2 and WF3 relays
  • fqch4p15 and fqch4n15 represent FQCH4N partially rotated by \(\pm15^{\circ}\) in order to bring 2 of its quadrants into the PC relay
  • polqp15 and polqn18 represent POLQ partially rotated by \(+15^{\circ}\) and \(-18^{\circ}\), respectively, in order to allow observations with different polarization angles

The nominal positions are represented as fquvn, fqch4n, and polq keywords. For example:

>>> bp = S.ObsBandpass('wfpc2,2,fqch4n')

Ramp Filter


This is currently unsupported by pysynphot (see Ticket 218). However, flux calibration for these ramp filters can still be done using PHOT* keywords from image headers.

Filter Wheel 12 contains 4 linearly variable narrow-band ramp filters, which together cover a total wavelength range of 3700 to 9800 Angstroms. The FWHM of the throughput at a given wavelength is typically about 1% of the central wavelength. To use a WFPC2 ramp filter in simulations, use the keyword syntax lrf#cenwave, where cenwave is the desired central wavelength in Angstroms.

The example below is given in IRAF STSDAS SYNPHOT command:

synphot> bandpar wfpc2,3,lrf#4861

Special Keywords

This section contains special keywords that apply to multiple instruments.


The HST OTA transmissivity is included by default in the calculation of all HST-related observation modes. It can be included or excluded explicitly by adding the keywords ota or noota, respectively; For example:

>>> bp = S.ObsBandpass('stis,ccd,f25srf2,noota')


An observation mode that involves a first-generation instrument (FOC, FOS, or GHRS) also automatically accounts for the effects of COSTAR on its wavelength-dependent sensitivity. This includes the product of the reflectivity curves for each pair of the COSTAR mirrors for each of these instruments, as well as the effects on instrument throughput and sensitivity due to the improved point-spread function that is achieved with COSTAR.

Like the OTA, the COSTAR effects on passbands and count rates are included by default for these instruments when using versions of the HST graph table created on or after February 24, 1995. In earlier versions of the graph table, nocostar is the default. To explicitly include or exclude COSTAR, use the keywords costar and nocostar, respectively, anywhere within your observation mode string; For example:

>>> bp = S.ObsBandpass('fos,red,4.3,g270h,costar')

All current HST instruments (except FGS) have built-in corrective optics to compensate for the spherical aberration of the primary mirror. It is not necessary to explicitly exclude COSTAR for the current generation instruments, as it is excluded by default. Inclusion of COSTAR for these instruments are not allowed.


In the case of ACS, COS, STIS, and WFC3, the mjd keyword is used to handle time-dependent sensitivity of certain detectors. To use this capability in simulations, include mjd#ddddd in the obsmode string, where ddddd is the desired Modified Julian Date (MJD) value, which could be an integer or a floating point.

pysynphot interpolates between the dates for which data exist in the table to arrive at an estimate of the throughput on the requested date (see Parameterized Keyword). For example:

>>> bp = S.ObsBandpass('acs,wfc1,f555w,mjd#49486')

If not specified, the default is to use the latest set of throughput values in the THROUGHPUT column without any interpolation or extrapolation. This default column is expected to be updated by the relevant instrument team whenever significant changes to the current trend are identified, such that the throughput should not differ by more than 2% from the one obtained by using the current date.

Encircled Energy

For ACS and WFC3, the aper keyword is used to specify a circular aperture, given by its radius in arcseconds, to calculate the source counts within. If no aperture is given, calculations are done for an infinite aperture, which is also 5.5 arcsec or larger for ACS, and 2 arcsec or larger for WFC3.

This enables pysynphot to be more flexible and accurate, particularly for cases where red targets are observed at long wavelengths. At wavelengths greater than 7500 Angstroms (for ACS/HRC) and about 9000 Angstroms (for ACS/WFC), the observations are affected by a red halo due to light scattered off the CCD substrate. An increasing fraction of the light as a function of wavelength is scattered from the center of the PSF into the wings. This problem affects particularly the very broad z-band F850LP filter, for which the encircled energy (EE) depends on the underlying spectral energy distribution the most.

Supported apertures are instrument-dependent, as listed below. Arbitrary aperture sizes are permitted, but not recommended. This is because pysynphot only provides a linear interpolation between supported apertures (see Parameterized Keyword), which is a poor approximation, especially at small apertures.

For ACS, the following apertures are supported:

  • every 0.1 arcsec between 0 and 0.6 arcsec
  • 0.8 arcsec
  • 1.0 arcsec
  • 1.5 arcsec
  • 2.0 arcsec
  • 4.0 arcsec

For WFC3, the following apertures are supported:

  • every 0.05 arcsec between 0.1 and 0.3 arcsec
  • every 0.1 arcsec between 0.3 and 0.6 arcsec
  • 0.8 arcsec
  • 1.0 arcsec
  • 1.5 arcsec
  • 2.0 arcsec

To use this capability in simulations, include aper#value in the obsmode string, where value is the radius in arcseconds. When “aper#0” is specified, the user will obtain the number of counts in the brightest pixel (i.e., the peak counts of the source centered at that pixel). For example:

>>> bp = S.ObsBandpass('acs,wfc1,f850lp,aper#0.2')


For NICMOS and WFC3 IR detectors, thermal background can be calculated by pysynphot. If no temperature is specified, the default value for each component is used (see Thermal Emissivity Table and Parameterized Keyword).

For WFC3, the calculation can only be done at the default temperature (not yet parameterized). For observation modes using a grism, the bkg keyword is used to perform throughput and emission calculations pertaining to the associated background signal. This is because in grism observations, a given detector pixel will receive source signal from only a small wavelength interval of the dispersed source spectrum, but it will receive background signal from the entire bandpass of the grism. Therefore, a special throughput table is used to correctly compute the detected signal from a background spectrum, which gives the transmission of the grism over its entire bandpass. The bkg keyword cannot be used with non-grism observations. For example:

>>> bp = S.ObsBandpass('wfc3,ir,g102,bkg')

For NICMOS, all keywords except the detector are parameterized for temperature. This includes OTA components that are opaque but thermally emitting. Most of the its optical elements (reimag, pupil, image, para1, para2, bend, dewar, and cmask) are contained in the dewar, and are therefore at the same temperature. However, pysynphot does not enforce this, so the user must specify any non-default temperature for each component individually. For example, to specify a primary mirror temperature of 290 K and then calculate the thermal background:

>>> bp = S.ObsBandpass('nicmos,3,f222m,primary#290.0')
>>> bp.thermback()


The cont# keyword for WF/PC-1 and WFPC2 references the Modified Julian Date, which is used to account for the gradual decline in throughput between decontamination events, as well as for the sudden increase in throughput immediately after a decontamination.

For WF/PC-1, data exists for dates between May 8, 1991 (MJD 48384) and December 8, 1993 (MJD 49329), non-inclusive, in the intervals of 20-30 days. For WFPC2, data currently exists from December 26, 1993 (MJD 49347) until SM4, in intervals of approximately 30 days.

pysynphot interpolates between the dates for which data exist in the table to arrive at an estimate of the throughput on the requested date (see Parameterized Keyword). For example:

>>> bp = S.ObsBandpass('wfpc2,3,f555w,cont#49800')

Non-HST Filter Systems

In addition to the HST instruments, filters, and gratings, the graph table also contains entries for various standard passbands from photometric systems that are not specific to HST. Actively supported systems (i.e., their data files are updated on CRDS as needed) are as tabulated below. Non-HST filters are specified using the name of the filter system, followed by the desired band name. For example:

>>> bp = S.ObsBandpass('cousins,i')
>>> bp = S.ObsBandpass('stromgren,u')

If the name of the filter system is omitted for any of the common UBVRIJHK filters, the defaults are Johnson UBV, Cousins RI, and Bessell JHK. For example, the following are equivalent:

>>> bp = S.ObsBandpass('v')
>>> bp = S.ObsBandpass('johnson,v')
System Name Band Name
cousins r i
galex nuv fuv
johnson u v b r i j k
landolt u v b r i
sdss u g r i z
stromgren u v b y

Comparing pysynphot Results with Observed Non-HST Photometry

There are two issues that are sometimes overlooked when comparing synthetic photometry from pysynphot with observed photometry using a non-HST system.

Firstly, one should be careful whether the throughput data have been defined for a photon-counting or an energy-integrating detector. pysynphot always assumes that a throughput are of the former. In particular, some authors in the past have defined throughput curves for photomultipliers as if these detectors were energy integrators, which they are not. Such curves have to be converted into photon-counting form before they can be correctly used by pysynphot (Maiz Apellaniz 2006). Using the wrong definition can lead to errors of a few percent for broad-band filters.

Secondly, many systems (e.g., Johnson UBV) use Vega as a reference spectrum, but have been calibrated using secondary standards, leading to the existence of finite zero points. In some systems (e.g. Stromgren), those zero points are not even close to 0.0 for some filters. The table below defines the zero point corrections for ground-based filter systems from measurements of zero points collected from the respective literature; These values should be added to the vegamag magnitude in pysynphot before they are compared with the observed data:

System Color/Index Zero point (mag) References
Johnson and Landolt \(V\) 0.026 Bohlin & Gilliland (2004)
\(B-V\) 0.010 Maiz Apellaniz (2006)
\(U-B\) 0.020 Maiz Apellaniz (2006)
Cousins and Landolt \(V-R\) -0.012 Holberg & Bergeron (2006)
\(V-I\) -0.002 Holberg & Bergeron (2006)
Stromgren \(y\) 0.038 Holberg & Bergeron (2006)
\(b-y\) 0.007 Maiz Apellaniz (2006)
\(m_{1}\) 0.154 Maiz Apellaniz (2006)
\(c_{1}\) 1.092 Maiz Apellaniz (2006)

The existence of these issues has led CRDS to divide the non-HST photometric systems into supported (as mentioned above) and not supported.

Systems for which there are analyses in the literature that deal with the issues mentioned above are as follow. CRDS Team is reasonably confident that the possible systematic errors in the pysynphot results for these systems are small:


The 2MASS JHK\(_s\) throughputs are taken from Cohen et al. (2003). These are normalized relative spectral response curves and include the throughputs of all of the appropriate optics from the 2MASS optical system, as well as the atmosphere above the two 2MASS telescopes.

Zero point reference fluxes for 2MASS reproduced from the IPAC 2MASS website are included here for reference (pay special attention to the units):

Band λ (µm) Bandwidth (µm) Fnu ref (Jy) Flambda ref (W/cm^2/µm)
J 1.235 ± 0.006 0.162 ± 0.001 1594 ± 27.8 3.129E-13 ± 5.464E-15
H 1.662 ± 0.009 0.251 ± 0.002 1024 ± 20.0 1.133E-13 ± 2.212E-15
Ks 2.159 ± 0.011 0.262 ± 0.002 666.7 ± 12.6 4.283E-14 ± 8.053E-16

To use the 2MASS throughputs:

>>> bp = S.ObsBandpass('2mass,j')
>>> bp = S.ObsBandpass('2mass,h')
>>> bp = S.ObsBandpass('2mass,ks')

(Note: 2MASS throughput curves were added to the TMG file in January 2020. Users must use a TMG/TMC file and associated throughput tables delivered after this date to use the 2MASS OBSMODEs.)


The Cousins RI throughputs are taken from Bessell (1983). They have been transformed into photon-counting form. For example:

>>> bp = S.ObsBandpass('cousins,i')


The GALEX FUV and NUV throughputs were provided by Tom Barlow on behalf of the GALEX project, as described in Morrissey et al. (2007). They were measured on the ground in units of effective area, and were divided by the full area of the GALEX primary mirror (\(1963.495 \; \mathrm{cm}^{2}\)) to convert them to the dimensionless transmission values required by pysynphot. Therefore, these curves represent the true total throughput, including obscuration by the secondary mirror, reflectivity of the mirrors, sensitivity of the detector, and so forth. For example:

>>> bp = S.ObsBandpass('galex,fuv')


The throughput data for the Johnson UBV bands were obtained from Maiz Apellaniz (2006), while the RIJK bands from Johnson (1965). For example:

>>> bp = S.ObsBandpass('johnson,v')


The Landolt (1983) UBVRI system is made up of the Johnson UBV and the Cousins RI passbands. For example:

>>> bp = S.ObsBandpass('landolt,v')


The Sloan Digital Sky Survey (SDSS) ugriz filter throughputs were provided by Sebastian Jester on behalf of the SDSS team, as described in Gunn et al. (2001). The filter curves are shown in the SDSS filter response plot. For example:

>>> bp = S.ObsBandpass('sdss,g')

The throughput data give the system photon response to point sources of the 2.5-m SDSS survey telescope, including extinction through an airmass of 1.3 at Apache Point Observatory (to which all SDSS photometry is referenced). Originally, the ugriz system was intended to be identical to the \(u^{\prime} g^{\prime} r^{\prime} i^{\prime} z^{\prime}\) system described in Fukugita et al. (1996) and defined by the standard star system in Smith et al. (2002). However, in the course of processing the SDSS data, an unpleasant discovery was made that the filters in the 2.5-m telescope have significantly different effective wavelengths from the filters in the USNO telescope, which was used to observe the \(u^{\prime} g^{\prime} r^{\prime} i^{\prime} z^{\prime}\) standards; The difference originates from the USNO filters being exposed to ambient air, while the survey-telescope filters live in the vacuum of the survey camera. Therefore, it became necessary to distinguish between the primed and unprimed SDSS filter sets.

The response curves in r and i are slightly different for large extended sources (larger than about 80 pixels in size) because the extended IR scattering wings in these bands, which do not affect the photometry of point sources, begin to be included. The modified curves are shown in an updated SDSS system response plot.

The SDSS photometry is intended to be on the AB system (Oke & Gunn 1983), by which a 0-magnitude object should have the same counts as a source of \(F_{\nu} = 3631 \; \mathrm{Jy}\) (except that it used the so-called “asinh” magnitudes defined by Lupton et al. 1999 instead of conventional Pogson magnitudes). However, this is known not to be exactly true, such that the photometric zero points are slightly off the AB standard. The SDSS team continues to work to pin down these shifts. Their estimate, based on comparison to the STIS standards of Bohlin et al. (2001) and confirmed by SDSS photometry and spectroscopy of fainter hot white dwarfs, is that the u band zero point is in error by 0.04 mag, \(u_{\mathrm{AB}} = u_{\mathrm{SDSS}} - 0.04 \; \mathrm{mag}\), and that g, r, and i are close to AB; These statements are certainly not precise to better than 0.01 mag. The z band zero point is not as certain (as of January 2005), but there is mild evidence that it may be shifted by about 0.02 mag in the sense that \(z_{\mathrm{AB}} = z_{\mathrm{SDSS}} + 0.02 \; \mathrm{mag}\).

See Holberg & Bergeron (2006) for a calibration of SDSS magnitudes using Vega as a reference spectrum. Further information about SDSS photometric calibration and the “asinh” magnitude system can be found at SDSS Photometric Flux Calibration webpage.


The Stromgren uvby throughputs are taken from Maiz Apellaniz (2006). For example:

>>> bp = S.ObsBandpass('stromgren,y')


Phase B estimates of the WFIRST integrated system throughputs have been taken from the WFIRST Reference Information page at GSFC. For example:

>>> bp = S.ObsBandpass('wfirst,wfi,f062')

Only the Wide Field Instrument (WFI) is currently supported with the following modes:

Description Keywords
Filter f062, f087, f106, f129, f146, f158, f184
Grating grism, prism

At this time, the estimated throughputs do not differentiate between the different sensor chip assemblies (SCAs). SCA-dependent throughputs will be delivered at a later time.

(Note: WFIRST throughput curves were added to the TMG file in January 2020. Users must use a TMG/TMC file and associated throughput tables delivered after this date to use the WFIRST OBSMODEs.)

Deprecated Systems

As of March 2006, some non-HST bandpass systems were deprecated, as tabulated below. They remain accessible by pysynphot, but mostly for backward compatibility. There will be no updates from CRDS, so use these at your own risk.

System Name Band Name
ans 1550 1550n 1800 2200 2500 3300
baum f336w f439w f547m f555w f569w f606w f622w f675w f702w f725lp f785lp f791w f814w f850lp f1042m
bessell j h k
eso 88 97 100-102 104-106 109-119 121 122 125 127-130 132 136 140 141 145 149 152 154-157 159-161 163-166 168-170 172-179 181-183 185 186 189 192-194 196-199 201-207 209-234 236-242 244 247 248 253 254 260 264 265 537 538
kpno j h k
steward j h k
walraven v b l u w


The Astronomical Netherlands Satellite (ANS) system is a set of UV filters used by the satellite, as described in van Duinen et al. (1975). For example:

>>> bp = S.ObsBandpass('ans,1550')


The Baum filter set is a set of 15 broadband and intermediate-band filters that are copies the ones onboard WF/PC-1 that were used as part of a ground-based calibration campaign for the instrument. In order to match the response of the in-flight passbands as closely as possible, the throughputs for the Baum filters have been multiplied by the spectral response curve of the ground-based CCD (measured in the laboratory) and twice by the spectral reflectance of aluminum (Harris et al. 1991). For example:

>>> bp = S.ObsBandpass('baum,f336w')


The Bessell JHK filter curves are taken from Bessell & Brett (1988), Table IV. These curves include the mean atmospheric transmission equivalent to 1.2 air masses of a standard KPNO atmosphere. For example:

>>> bp = S.ObsBandpass('bessell,k')


The 530 ESO band throughput tables were received from Jan Koornneef in 1990. For example:

>>> bp = S.ObsBandpass('eso,198')


The Kitt Peak National Observatory (KPNO) JHK filter curves are taken from the tracings of the Simultaneous Quad Infrared Image Device (SQIID) filter set, which were provided by Richard Joyce from the observatory. For example:

>>> bp = S.ObsBandpass('kpno,k')


The Steward Observatory JHK filter curves are from data provided by Marcia Rieke from the observatory. For example:

>>> bp = S.ObsBandpass('steward,k')


The throughput data for the Walraven VBLUW bands are from Lub & Pel (1977), Table 6. For example:

>>> bp = S.ObsBandpass('walraven,v')