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

Clone the repository and enter the project directory:

git clone https://github.com/Jagathesh04/aiatresp.git && cd aiatresp

Install aiatresp directly into your active environment (Conda or .venv):

pip install .

For editable/development installation:

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 and numerical validation against SolarSoft IDL aia_get_response across all calibration versions (V1 to V10) 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

License

Distributed under the terms of the MIT License.

Metadata

Release files for aiatresp 0.1.0

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.0
File Size Uploaded
aiatresp-0.1.0.tar.gz 20.3 kB Details

Built distribution (wheel)

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

Total release size: 38.9 kB

Release files / aiatresp-0.1.0.tar.gz

Download URL aiatresp-0.1.0.tar.gz
Size 20.3 kB
Tags Source
SHA-256 checksum
How to use checksums
1d84deb2a3ad198029b95c0808463e484923faddec300dcb6cd662119467000f
BLAKE2b-256 checksum
How to use checksums
7e17a365eca23b316e3751290d18a0a324f21c9f5260bc3b452fc934b8eaf84c
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.0-py3-none-any.whl

Download URL aiatresp-0.1.0-py3-none-any.whl
Size 18.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8ee668c59e35a13037853eb5ec742ff0d993a9b95e56ae8def4a2c5cd97782b5
BLAKE2b-256 checksum
How to use checksums
a9afc7f923e4fe6afcd106f9fedd42f4dfd90aa0c75c5b469cb6f2b7d1542db0
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

0.1.1

2 release files

This release

0.1.0 This release

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