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 module 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 module 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 module
$ pip install cdasws
API Reference
Refer to cdasws module 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).
Metadata
Release files for cdasws 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cdasws-0.1.0.tar.gz | 14.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cdasws-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 33.3 kB
Release files / cdasws-0.1.0.tar.gz
| Download URL | cdasws-0.1.0.tar.gz |
|---|---|
| Size | 14.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fe1da10af4dd114510fc15d51e6818e0d38e17a274b5a55a1a845435eb16c856
|
|
BLAKE2b-256 checksum How to use checksums |
3e8b9d76bed520794d1176fa8090ab1ecaf7eb21820dc6e32b9905e5d2c7cedd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|
Release files / cdasws-0.1.0-py3-none-any.whl
| Download URL | cdasws-0.1.0-py3-none-any.whl |
|---|---|
| Size | 18.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8d54ca9628397d80843ddf6b623e2845bac6beb6b32331b7354968e5ffc17a02
|
|
BLAKE2b-256 checksum How to use checksums |
9cdaef2fc33a6841dac5c8e77b38e34f1389fb89c826f17fc3455339b2f4fbc6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|