Skip to main content

ESIS

tests codecov Black Ruff docs PyPI version DOI

The EUV Snapshot Imaging Spectrograph (ESIS) is a NASA sounding rocket mission designed to measure the speed of plasma in the solar atmosphere. ESIS was launched from White Sands Missile Range on September 30th, 2019, and is planning to launch again in 2027.

ESIS on the rail

ESIS is a computed tomography imaging spectrometer (CTIS): four cameras look at the Sun through gratings mounted at different azimuths, so every camera records a dispersed image of the whole field of view in a single exposure. Inverting the four overlapping projections recovers a spatial-spectral cube, which measures the Doppler shift of the spectral lines in the ESIS passband without ever scanning a slit across the target.

This repository provides a Python package that models the ESIS optical system and analyzes the images captured during flight in terms of physically-meaningful quantities.

Installation

ESIS is published on PyPI and can be installed using pip:

pip install euv-snapshot-imaging-spectrograph

To work on the package itself, install it from source:

git clone https://github.com/esis-mission/esis
cd esis
pip install -e .[test]

The Level-0 flight images are too large to ship with the package, so they are downloaded the first time they are needed and unpacked into ~/.esis/data (override with the ESIS_DATA_DIR environment variable). Derived products are memoized under ~/.esis/cache.

Features

  • A parametric model of the ESIS optical system (front aperture, central obscuration, primary mirror, field stop, gratings, thin-film filters, and cameras) built on optika.
  • Raytrace-based characterization of the instrument: point spread function, effective area, throughput, vignetting, and distortion.
  • Both the final optical design and an as-built model of the instrument that actually flew, along with the best-fit distortion parameters recovered from the flight images.
  • A data-reduction pipeline organized by processing level, from the raw FITS files (Level 0) to calibrated maps of the photons incident on each sensor (Level 1), with bias and dark subtraction and cosmic-ray removal.
  • Synthetic solar scenes assembled from SDO/AIA and IRIS observations, for validating the forward model against a known truth.
  • Flight-specific configurations for both the 2019 flight (f1) and the planned 2027 flight (f2), including the NSROC timelines.
  • Every model and dataset is an n-dimensional named-arrays object, so wavelength, field, pupil, channel, and time are addressed by name, and uncertainties propagate automatically.

Mission Requirements

Quantity Requirement
Spatial resolution 1.5 Mm
Spectral resolution 18 km/s
Field of view 10 arcmin
Signal-to-noise ratio 17.3
Cadence 15 s
Observation length 150 s

These are available programmatically from esis.flights.f1.optics.requirements().

Quickstart

Load the final optical design of the first flight:

import esis

instrument = esis.flights.f1.optics.design()

Load the calibrated images gathered during the 2019 flight and plot one frame. The flight data is downloaded on the first call and the Level-1 product is cached, so subsequent calls load the stored result:

import matplotlib.pyplot as plt
import named_arrays as na
import esis

a = esis.flights.f1.data.level_1()
a = a[{a.axis_channel: 2, a.axis_time: 15}]

fig, ax = plt.subplots(constrained_layout=True)
na.plt.pcolormesh(
    a.inputs.pixel,
    C=a.outputs.value,
    ax=ax,
    vmin=0,
    vmax=a.outputs.percentile(99.9).ndarray.value,
)
plt.show()

Documentation

The full documentation, including the API reference and a gallery of reports that reproduce the instrument characterization and the data reduction, is hosted at esis-mission.github.io.

Citation

If you use this package in your research, please cite both the package and the ESIS mission paper.

The citation metadata for the package is kept in CITATION.cff, which the "Cite this repository" button on GitHub can export as BibTeX or APA.

Every release of the package is archived on Zenodo with its own DOI. The concept DOI, 10.5281/zenodo.23113153, always resolves to the latest version, and the Zenodo page lists the DOI of every version. Please include the version of the package that you used, which is given by importlib.metadata.version("euv-snapshot-imaging-spectrograph"). The BibTeX entry below uses the concept DOI. To cite a specific version instead, replace doi with the DOI of that version.

@software{esis,
  author = {Smart, Roy T. and Parker, Jacob D. and Kankelborg, Charles C.},
  title = {esis},
  version = {X.Y.Z},
  doi = {10.5281/zenodo.23113153},
  url = {https://github.com/esis-mission/esis},
}

The mission paper describes the instrument and the results of the first flight:

Parker, J. D., Smart, R. T., Kankelborg, C., Winebarger, A., and Goldsworth, N. 2022, "First Flight of the EUV Snapshot Imaging Spectrograph (ESIS)", The Astrophysical Journal, 938, 116. doi:10.3847/1538-4357/ac8eaa

The Level-0 flight data is archived separately: doi:10.5281/zenodo.21997280

Metadata

Release files for euv-snapshot-imaging-spectrograph 1.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for euv-snapshot-imaging-spectrograph 1.2.1
File Size Uploaded
euv_snapshot_imaging_spectrograph-1.2.1.tar.gz 304.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for euv-snapshot-imaging-spectrograph 1.2.1
File Interpreter ABI Platform
euv_snapshot_imaging_spectrograph-1.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 418.3 kB

Release files / euv_snapshot_imaging_spectrograph-1.2.1.tar.gz

Download URL euv_snapshot_imaging_spectrograph-1.2.1.tar.gz
Size 304.9 kB
Tags Source
SHA-256 checksum
How to use checksums
9b1b75d1aeda695facd6abceb26d6e99b173fce5d3cde55c4ae89cefabea2ff1
BLAKE2b-256 checksum
How to use checksums
47af71118c1a8a511be2b2c0ea201a97392ebf65de460b0e0276b786ca364b0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / euv_snapshot_imaging_spectrograph-1.2.1-py3-none-any.whl

Download URL euv_snapshot_imaging_spectrograph-1.2.1-py3-none-any.whl
Size 113.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9b13f39a075989363648dfc15235562dbbc0ef093a73b32b365c394bad17aafa
BLAKE2b-256 checksum
How to use checksums
de59cd95e7566d0014bd4d0063914a01a0ac87b1cf4d50df4225d80179416750
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release history Release notifications | RSS feed

1.9.0

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

This release

1.2.1 This release

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page