NASA's Coordinated Data Analysis System Web Service Client Library
Project description
Synopsis
This library provides a simple python interface to the data and services of NASA's Coordinated Data Analysis System (CDAS). This library implements the client side of the CDAS RESTful web services and returns data in the SpacePy data model with all the original ISTP/SPDF metadata. For more details about the CDAS web services, see https://cdaweb.sci.gsfc.nasa.gov/WebServices/REST/.
Code Example
The package contains example code call for most of the available web services. To run the included example, do the following
python -m cdasws
The following code demonstrates how to access magnetic field measurements from the ACE mission dataset
from cdasws import CdasWs
cdas = CdasWs()
data = cdas.get_data('AC_H1_MFI', ['Magnitude', 'BGSEc'],
'2009-06-01T00:00:00Z', '2009-06-01T00:10:00Z')[1]
print(data)
{'Epoch': VarCopy([datetime.datetime(2009, 6, 1, 0, 0),
datetime.datetime(2009, 6, 1, 0, 4),
datetime.datetime(2009, 6, 1, 0, 8)], dtype=object), 'Magnitude': VarCopy([3.495, 3.474, 3.477], dtype=float32), 'BGSEc': VarCopy([[-0.106, 2.521, -2.391],
[-0.412, 2.402, -2.449],
[-0.094, 2.309, -2.587]], dtype=float32), 'cartesian': VarCopy(['x_component', 'y_component', 'z_component'], dtype='<U11'), 'metavar0': VarCopy(['Bx GSE', 'By GSE', 'Bz GSE'], dtype='<U6')}
print(data['Magnitude'].attrs)
{'FIELDNAM': 'B-field magnitude', 'VALIDMIN': 0.0, 'VALIDMAX': 500.0, 'SCALEMIN': 0.0, 'SCALEMAX': 10.0, 'UNITS': 'nT', 'FORMAT': 'F8.3', 'VAR_TYPE': 'data', 'DICT_KEY': 'magnetic_field>magnitude', 'FILLVAL': -1e+31, 'DEPEND_0': 'Epoch', 'CATDESC': 'B-field magnitude', 'LABLAXIS': '<|B|>', 'DISPLAY_TYPE': 'time_series', 'DIM_SIZES': 0}
To have uniformly spaced (with respect to time) values computed, add the binData keyword paramter like this
status, data = cdas.get_data('AC_H1_MFI', ['Magnitude', 'BGSEc'],
'2009-06-01T00:00:00Z', '2009-06-01T00:10:00Z',
binData={
'interval': 60.0,
'interpolateMissingValues': True,
'sigmaMultiplier': 4
})
print(data)
{'Epoch_bin': VarCopy([datetime.datetime(2009, 6, 1, 0, 0, 30),
datetime.datetime(2009, 6, 1, 0, 1, 30),
datetime.datetime(2009, 6, 1, 0, 2, 30),
datetime.datetime(2009, 6, 1, 0, 3, 30),
datetime.datetime(2009, 6, 1, 0, 4, 30),
datetime.datetime(2009, 6, 1, 0, 5, 30),
datetime.datetime(2009, 6, 1, 0, 6, 30),
datetime.datetime(2009, 6, 1, 0, 7, 30),
datetime.datetime(2009, 6, 1, 0, 8, 30),
datetime.datetime(2009, 6, 1, 0, 9, 30)], dtype=object), 'Epoch': VarCopy([datetime.datetime(2009, 6, 1, 0, 0),
datetime.datetime(2009, 6, 1, 0, 4),
datetime.datetime(2009, 6, 1, 0, 8)], dtype=object), 'Magnitude': VarCopy([3.495 , 3.48975, 3.4845 , 3.47925, 3.474 , 3.47475, 3.4755 ,
3.47625, 3.477 , 3.477 ], dtype=float32), 'BGSEc': VarCopy([[-0.106 , 2.521 , -2.391 ],
[-0.1825 , 2.49125 , -2.4055 ],
[-0.259 , 2.4615 , -2.42 ],
[-0.3355 , 2.4317498, -2.4345 ],
[-0.412 , 2.402 , -2.449 ],
[-0.3325 , 2.3787498, -2.4835 ],
[-0.253 , 2.3555 , -2.518 ],
[-0.1735 , 2.33225 , -2.5524998],
[-0.094 , 2.309 , -2.587 ],
[-0.094 , 2.309 , -2.587 ]], dtype=float32), 'MAGNITUDE_NBIN': VarCopy([1., 0., 0., 0., 1., 0., 0., 0., 1., 0.], dtype=float32), 'MAGNITUDE_BIN_DELTA_MINUS_VAR': VarCopy([-1.e+31, -1.e+31, -1.e+31, -1.e+31, -1.e+31, -1.e+31, -1.e+31,
-1.e+31, -1.e+31, -1.e+31], dtype=float32), 'MAGNITUDE_BIN_DELTA_PLUS_VAR': VarCopy([-1.e+31, -1.e+31, -1.e+31, -1.e+31, -1.e+31, -1.e+31, -1.e+31,
-1.e+31, -1.e+31, -1.e+31], dtype=float32), 'BGSEC_NBIN': VarCopy([[ 1., 1., 1.],
[-0., -0., -0.],
[-0., -0., -0.],
[-0., -0., -0.],
[ 1., 1., 1.],
[-0., -0., -0.],
[-0., -0., -0.],
[-0., -0., -0.],
[ 1., 1., 1.],
[-0., -0., -0.]], dtype=float32), 'BGSEC_BIN_DELTA_MINUS_VAR': VarCopy([[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31]], dtype=float32), 'BGSEC_BIN_DELTA_PLUS_VAR': VarCopy([[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31],
[-1.e+31, -1.e+31, -1.e+31]], dtype=float32), 'cartesian_bin': VarCopy(['x_component', 'y_component', 'z_component'], dtype='<U11'), 'cartesian': VarCopy(['x_component', 'y_component', 'z_component'], dtype='<U11'), 'metavar0': VarCopy(['Bx GSE', 'By GSE', 'Bz GSE'], dtype='<U6'), 'metavar1': VarCopy(['# of Bx GSE', '# of By GSE', '# of Bz GSE'], dtype='<U11'), 'metavar2': VarCopy('# of ', dtype='<U5')}
Motivation
This library hides the HTTP, JSON/XML, and CDF details of the CDAS web services. A python developer only has to deal with python objects and methods (primarily the SpacePy data model object with full ISTP/SPDF metadata).
Dependencies
The primary dependency is SpacePy. Refer to the SpacePy documentation for the details of SpacePy's dependencies. In particular, this package depends upon the SpacePy data model's CDF import capability which is not automatically installed with SpacePy.
Installation
As noted in the dependencies above, you must install the CDF library by following the procedures at the CDF web site.
Then, to install this package
$ pip install cdasws
API Reference
Refer to cdasws package API reference
or use the standard python help mechanism.
from cdasws import CdasWs
help(CdasWs)
Tests
The tests directory contains unittest tests.
Contributors
Bernie Harris.
e-mail for support.
License
This code is licensed under the NASA Open Source Agreement (NOSA).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cdasws-0.1.5.tar.gz
.
File metadata
- Download URL: cdasws-0.1.5.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fff29a147f2b15f4c4c967f673abb74e18c7a58e6b9a0af0b3428c73e90a02ff |
|
MD5 | 08586987260a5ebc258b5a9b9b66fead |
|
BLAKE2b-256 | 5cd15f1498038d6eb47fb5a8979f88543df66f817ec89ae47eaf899a81ccdf97 |
File details
Details for the file cdasws-0.1.5-py3-none-any.whl
.
File metadata
- Download URL: cdasws-0.1.5-py3-none-any.whl
- Upload date:
- Size: 20.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21bf2601a2d6472baba0282d75c0c95501af0a873dc5f5c3f3235945e09ea246 |
|
MD5 | f326e41cecac2a3919c0b0b9d305f93e |
|
BLAKE2b-256 | 5abf600b7baa7706cd6b32b382c51ffff8569dfd6acd82b8b26b74e0147ada33 |