Skip to main content

aiatresp

aiatresp is a pure Python replacement for SolarSoft's aia_get_response() routine.

It computes the SDO/AIA temperature response functions for all coronal channels without requiring IDL or SolarSoft while remaining numerically consistent with the official AIA calibration files.

Workflow Translation

IDL (SolarSoft)
-------------------------------------------------------------
aia_get_response, '2014-03-29', channels, logt, tr, /chianti

                     ↓

Python (aiatresp)
-------------------------------------------------------------
from aiatresp import aia_response

response = aia_response(obstime="2014-03-29")
channels = response.channels
logt = response.logt
tr = response.response  # Array shape: (6, 101) -> (channels, temperature)

Features

  • Pure Python Replacement for aia_get_response: Computes time-dependent AIA temperature responses without any IDL or SolarSoft installation.
  • Dynamic SSW Catalog Tracking: Automatically fetches live SolarSoft calibration indices (https://hesperia.gsfc.nasa.gov/ssw/sdo/aia/response/) to auto-discover active calibration versions (V1–V10, preflight, and future releases like V11) without hardcoded lookup tables.
  • Time-Dependent Degradation & Crosstalk: Full support for time-dependent EVE degradation corrections and channel crosstalk.
  • On-Demand Storage Discipline: Downloads only the specific single calibration version files needed into cross-platform cache locations (platformdirs).
  • Parallel Downloader & Calculator: Multi-part parallel chunk downloader for maximum speed and vectorized NumPy integration.
  • scipy.io.readsav Drop-in Compatibility: Includes read_aia_response helper exposing .channels, .logt, .tr, and .units.

Installation

pip install aiatresp

Via Conda-Forge

conda install -c conda-forge aiatresp

From Source

git clone https://github.com/Jagathesh04/aiatresp.git && cd aiatresp
pip install -e .

Usage

1. By Observation Date

You can calculate temperature response functions by passing an ISO date string:

from aiatresp import aia_response

response = aia_response(obstime="2017-01-01T00:00:00")
print("Channels:", response.channels)
print("Response shape:", response.response.shape)  # (6, 101) -> (channels, temperature)

2. By Auto-Parsing FITS Directories

Pass obstime="auto" and supply the directory containing AIA FITS files:

from aiatresp import aia_response

response = aia_response(obstime="auto", fits_dir="/path/to/my/fits/directory")

3. Command-Line Interface (CLI)

# Output text and .npz response files from observation time
aia-response --observation-time "2019-01-01T00:00:00" --output resp.npz --text-output resp.dat

# Display environment & cache diagnostics
aia-response info

# Clear cached calibration files
aia-response --clear-cache

Scientific Validation

Full side-by-side comparison plots, error matrices, and numerical validation against SolarSoft IDL aia_get_response across all 13 official calibration releases (preflight, V2 to V10c) are available in COMPARISON.md.

Verification & Testing

Run the automated test suite with pytest:

pytest -v

Run the scientific verification script against SolarSoft reference standards:

python examples/compare_with_ssw.py

Authors & Contributors

Made by Jagatheshwaran R and Aparna G R.

Contributors

License

Distributed under the terms of the MIT License.

Metadata

Release files for aiatresp 0.1.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 aiatresp 0.1.1
File Size Uploaded
aiatresp-0.1.1.tar.gz 20.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aiatresp 0.1.1
File Interpreter ABI Platform
aiatresp-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 39.5 kB

Release files / aiatresp-0.1.1.tar.gz

Download URL aiatresp-0.1.1.tar.gz
Size 20.7 kB
Tags Source
SHA-256 checksum
How to use checksums
96e453bbe2162e25b2fd49b1ac39d0d0af56698b8afa13007cde842ecc5f60f1
BLAKE2b-256 checksum
How to use checksums
ee6c925f09e7b8b01bc9e8c7e6ac2ce3b47f0bc906fc43f605da961c23714168
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / aiatresp-0.1.1-py3-none-any.whl

Download URL aiatresp-0.1.1-py3-none-any.whl
Size 18.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f26228cba44d6e85ed8a1a3cd5be1628eb06c1729623d92a17e2e39126b28da2
BLAKE2b-256 checksum
How to use checksums
22bfaf28220aa54ebaa4764e621613ad0c3dfd351aaec7d936e221fa5016c487
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

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