Skip to main content

Interface to Heliophysics data server API

Project description

https://travis-ci.org/hapi-server/client-python.svg?branch=master

HAPI client for Python 2/3

Installation

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

pip install hapiplot --upgrade
# or
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 hapi
hapiplot(data, meta)

Documentation

Basic usage examples for various HAPI servers are given in hapi_demo.py

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

All of the features are extensively demonstrated in the hapi_demo.ipynb Jupyter Notebook.

Data Model and Time Format

A request for data of the form ` data, meta = hapi(server, dataset, parameters, start, stop) `

returns the [Numpy N-D array](https://docs.scipy.org/doc/numpy-1.15.1/user/quickstart.html) 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.

Examples of transforming and manipulating data is given in a Jupyter Notebook. The examples include

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

Development

git clone https://github.com/hapi-server/client-python
cd client-python; python setup.py develop

(The command python setup.py develop creates symlinks so that the local package is used instead of an installed package. You may need to execute pip uninstall hapiclient first to ensure the local package is used.)

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.

Appendix

Fail-safe installation

Python command line:

import os
print(os.popen("pip install hapiclient").read())

The above executes and displays the output of the operating system command pip install hapiclient using the shell environment associated with that installation of Python.

This method addresses a problem that is sometimes encountered when attempting to use pip packages in Anaconda. To use a pip package in Anaconda, one must use the version of pip installed with Anaconda (it is usually under a subdirectory with the name anaconda/) as opposed to the one installed with the operating system. To see the location of pip used in a given Python session, enter print(os.popen("which pip").read()).

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.1.9b2.tar.gz (28.4 kB view details)

Uploaded Source

File details

Details for the file hapiclient-0.1.9b2.tar.gz.

File metadata

  • Download URL: hapiclient-0.1.9b2.tar.gz
  • Upload date:
  • Size: 28.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0.post20201207 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.7.6

File hashes

Hashes for hapiclient-0.1.9b2.tar.gz
Algorithm Hash digest
SHA256 750bf074e3bd49cc48cf71bda3f0e8ddd4ddf0691d222b78b9104791d739ef86
MD5 e1ecd129fdcd651c7caa2537b0fbf07c
BLAKE2b-256 2824fd09ddaca1e1317102b2abe8723595eb182ba725b6bf8657f9c4896f6dde

See more details on using hashes here.

Supported by

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