Skip to main content
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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyistp-0.8.2.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyistp-0.8.2-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file pyistp-0.8.2.tar.gz.

File metadata

  • Download URL: pyistp-0.8.2.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for pyistp-0.8.2.tar.gz
Algorithm Hash digest
SHA256 0d6f91c15cd8ed400e4c673223e13c4c2ec015d96e959d018cab20907470262d
MD5 900ff8c6b0285297edd515cea1f32497
BLAKE2b-256 4390604bfdcabd78e64e909285404f9a6a631b02bdd57cb386be054e2f7d6b8f

See more details on using hashes here.

File details

Details for the file pyistp-0.8.2-py3-none-any.whl.

File metadata

  • Download URL: pyistp-0.8.2-py3-none-any.whl
  • Upload date:
  • Size: 13.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for pyistp-0.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b07ed6ed985cc00b74cc3c7a6113c10ea79f63711499436ba44eff6eb6f5b1ad
MD5 445e2d01b133aa0f96163bbbcefc8f26
BLAKE2b-256 5ca181574a57d66003d5b93ab7c26c1a4d8cbd2023de55e1595b9887b8a8ef9f

See more details on using hashes here.

Release history Release notifications | RSS feed

0.9.0

2 files

This release

0.8.2 This release

2 files

0.8.1

2 files

0.8.0

2 files

0.7.3

2 files

0.7.2

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.3

2 files

0.1.2

2 files

0.1.0

2 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