Skip to main content

Python ISTP loader

https://img.shields.io/pypi/v/pyistp.svg Documentation Status

An easy to use loader for ISTP-compliant CDF and NetCDF files, as commonly distributed by CDAWeb, AMDA and other space-physics data archives.

Rather than exposing raw variables, PyISTP reads the ISTP metadata conventions (VAR_TYPE, DEPEND_n, *_PTR, LABLAXIS, …) and hands you each data variable together with its resolved axes (time and other support variables), labels and attributes.

Features

  • Loads ISTP-compliant CDF files (via pycdfpp by default, or spacepy).

  • Loads ISTP-compliant NetCDF files (via netCDF4).

  • Reads from a file path or directly from an in-memory bytes buffer (handy for data fetched over HTTP).

  • Supports a separate master/skeleton file holding the metadata while the values come from the data file.

  • Automatically resolves DEPEND_n support variables into axes, with fallback to the master file.

  • Converts CDF epoch types and NetCDF CF/Unix time variables to numpy.datetime64[ns].

  • Lazily materializes variable values (the array is read on first access).

  • Tolerates many non-ISTP-compliant files (CDAWeb, Cluster/CSA) with warnings rather than failures.

Installation

pip install pyistp

The default CDF backend is pycdfpp; spacepy is used as a fallback if available. NetCDF support requires netCDF4. To force a specific CDF backend, set the PYISTP_CDFLIB environment variable to pycdfpp or spacepy.

Usage

Load a file and inspect its data variables:

import pyistp

istp = pyistp.load(file="wi_k0_mfi_20220101_v01.cdf")

istp.data_variables()          # -> ['BGSEc', 'BF1', 'PGSM', ...]
istp.attributes()              # global attribute names

var = istp.data_variable("BGSEc")
var.values                     # numpy array of values (read lazily)
var.axes[0].values             # the time axis (numpy.datetime64[ns])
var.attributes                 # variable attributes
var.labels                     # component labels, if any

Load directly from a buffer, for instance data fetched over HTTP:

import requests, pyistp

raw = requests.get(
    "https://spdf.gsfc.nasa.gov/pub/data/themis/thc/l2/efi/2020/"
    "thc_l2_efi_20200101_v01.cdf").content
istp = pyistp.load(buffer=raw)

var = istp.data_variable("thc_eff_dot0_gsm")
import matplotlib.pyplot as plt
plt.plot(var.axes[0].values, var.values)

Use a separate master/skeleton file for the metadata:

istp = pyistp.load(file="data.cdf", master_file="skeleton.cdf")
# or from buffers:
istp = pyistp.load(buffer=data_bytes, master_buffer=skeleton_bytes)

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

Release files for pyistp 0.9.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 pyistp 0.9.1
File Size Uploaded
pyistp-0.9.1.tar.gz 12.0 kB Details

Built distribution (wheel)

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

Total release size: 26.4 kB

Release files / pyistp-0.9.1.tar.gz

Download URL pyistp-0.9.1.tar.gz
Size 12.0 kB
Tags Source
SHA-256 checksum
How to use checksums
90ef2e51a464fd3f52c8d653b30f13cc40e6dddf99926e4fd72d61f7fa88bbde
BLAKE2b-256 checksum
How to use checksums
7416fb7b98e995fb6ea29f72bb2e62befd3e40eda21be0369d62c46819df041a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / pyistp-0.9.1-py3-none-any.whl

Download URL pyistp-0.9.1-py3-none-any.whl
Size 14.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eadbaa10df630c4b2152d16ed429a0ff87962f937adbe0f33c9bb6ff35a4bf99
BLAKE2b-256 checksum
How to use checksums
0753ca22270b5a13eb27804f6fd6ad333f08f87ff823bb8f7a56f3f0cfc71898
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.21

Release history Release notifications | RSS feed

This release

0.9.1 This release

2 release files

0.9.0

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

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