Skip to main content

Interface to Heliophysics data server API

Project description

DOI Build Status

HAPI Client for Python

Basic usage examples for various HAPI servers are given in hapi_demo.py and the Examples section of a Jupyter Notebook hosted on Google Colab: Open In Colab.

Installation

pip install hapiclient --upgrade
# or
pip install 'git+https://github.com/hapi-server/client-python' --upgrade

The optional hapiplot package provides basic preview plotting capabilities of data from a HAPI server. The Plotting section of the hapiclient Jupyter Notebook shows how to plot the output of hapiclient using many other plotting libraries.

To install hapiplot, use

python -m pip install hapiplot --upgrade
# or
python -m pip install 'git+https://github.com/hapi-server/plot-python' --upgrade

See the Appendix for a fail-safe installation method.

Basic Example

# Get Dst index from CDAWeb HAPI server
from hapiclient import hapi

# See http://hapi-server.org/servers/ for a list of
# other HAPI servers and datasets.
server     = 'https://cdaweb.gsfc.nasa.gov/hapi'
dataset    = 'OMNI2_H0_MRG1HR'
start      = '2003-09-01T00:00:00'
stop       = '2003-12-01T00:00:00'
parameters = 'DST1800'
opts       = {'logging': True}

# Get data
data, meta = hapi(server, dataset, parameters, start, stop, **opts)
print(meta)
print(data)

# Plot all parameters
from hapiplot import hapiplot
hapiplot(data, meta)

Documentation

Basic usage examples for various HAPI servers are given in hapi_demo.py and the Examples section of a Jupyter Notebook hosted on Google Colab.

See http://hapi-server.org/servers/ for a list of HAPI servers and datasets.

All of the features are extensively demonstrated in hapi_demo.ipynb, a Jupyter Notebook that can be viewed an executed on Google Colab.

Metadata Model

See also the examples in the Metadata Model section of the hapiclient Jupyter Notebook.

The HAPI client metadata model is intentionally minimal and closely follows that of the HAPI metadata model. We expect that another library will be developed that allows high-level search and grouping of information from HAPI servers. See also issue #106.

Data Model and Time Format

See also the examples in the Data Model section of the hapiclient Jupyter Notebook. The examples include

  1. Fast and well-tested conversion from ISO 8601 timestamp strings to Python datetime objects
  2. Putting the content of data in a Pandas DataFrame object
  3. Creating an Astropy NDArray

A request for data of the form

data, meta = hapi(server, dataset, parameters, start, stop)

returns the Numpy N-D array data and a Python dictionary meta from a HAPI-compliant data server server. The structure of data and meta mirrors the structure of a response from a HAPI server.

The HAPI client data model is intentionally basic. There is an ongoing discussion of a data model for Heliophysics data among the PyHC community. When this data model is complete, a function that converts data and meta to that data model will be included in the hapiclient package.

Development

git clone https://github.com/hapi-server/client-python
cd client-python; python -m pip install -e .

or, create an isolated Anaconda installation (downloads and installs latest Miniconda3) using

make install PYTHON=python3.6
# Execute command displayed to activate isolated environment

The command pip install -e . creates symlinks so that the local package is used instead of an installed package. You may need to execute python -m pip uninstall hapiclient to ensure the local package is used. To check the version installed, use python -m pip list | grep hapiclient.

To run tests before a commit, execute

make repository-test

To run an individual unit test in a Python session, use, e.g.,

from hapiclient.test.test_hapi import test_reader_short
test_reader_short()

Contact

Submit bug reports and feature requests on the repository issue tracker.

Project details


Download files

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

Source Distribution

hapiclient-0.2.6.tar.gz (33.0 kB view details)

Uploaded Source

File details

Details for the file hapiclient-0.2.6.tar.gz.

File metadata

  • Download URL: hapiclient-0.2.6.tar.gz
  • Upload date:
  • Size: 33.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.13

File hashes

Hashes for hapiclient-0.2.6.tar.gz
Algorithm Hash digest
SHA256 e7993a51815e7447795aff095ccd4d510ef4e0bbc9b9d00ab5bdd1a1000169d1
MD5 8c23c1bbc84415cdba33ecb2f9e39e50
BLAKE2b-256 3328aa511c97a5495f7554a8df5d9b37ec8736f804c9f3fd9f298a96b963995e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page