Metadata-Version: 2.1
Name: speasy
Version: 0.10.2
Summary: A simple Python package to deal with main Space Physics WebServices (CDA,CSA,AMDA_Webservice,..) mainly written to ease development of SciQLop.
Home-page: https://github.com/SciQLop/speasy
Author: Alexis Jeandet
Author-email: alexis.jeandet@member.fsf.org
License: GNU General Public License v3
Keywords: speasy
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Requires-Dist: Click (>=6.0)
Requires-Dist: requests
Requires-Dist: pandas
Requires-Dist: diskcache
Requires-Dist: appdirs
Requires-Dist: numpy
Requires-Dist: packaging
Requires-Dist: python-dateutil
Requires-Dist: astropy
Requires-Dist: spwc
Provides-Extra: cdf
Requires-Dist: spacepy ; extra == 'cdf'

=======================
Space Physics made EASY
=======================


.. image:: https://matrix.to/img/matrix-badge.svg
        :target: https://matrix.to/#/#speasy:matrix.org
        :alt: Chat on Matrix

.. image:: https://img.shields.io/pypi/v/speasy.svg
        :target: https://pypi.python.org/pypi/speasy

.. image:: https://github.com/SciQLop/speasy/workflows/Tests/badge.svg
        :target: https://github.com/SciQLop/speasy/actions?query=workflow%3A%22Tests%22

.. image:: https://readthedocs.org/projects/speasy/badge/?version=latest
        :target: https://speasy.readthedocs.io/en/latest/?badge=latest
        :alt: Documentation Status

.. image:: https://codecov.io/gh/SciQLop/speasy/coverage.svg?branch=main
        :target: https://codecov.io/gh/SciQLop/speasy/branch/main
        :alt: Coverage Status

.. image:: https://img.shields.io/lgtm/alerts/g/SciQLop/speasy.svg?logo=lgtm&logoWidth=18
        :target: https://lgtm.com/projects/g/SciQLop/speasy/alerts/
        :alt: Total alerts

.. image:: https://img.shields.io/lgtm/grade/python/g/SciQLop/speasy.svg?logo=lgtm&logoWidth=18
        :target: https://lgtm.com/projects/g/SciQLop/speasy/context:python
        :alt: Language grade: Python

.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.4118780.svg
   :target: https://doi.org/10.5281/zenodo.4118780
   :alt: Zendoo DOI

.. image:: https://mybinder.org/badge_logo.svg
    :target: https://mybinder.org/v2/gh/SciQLop/speasy/main?labpath=docs/examples
    :alt: Discover on MyBinder

Speasy is an open source Python client for Space Physics web services such as `CDAWEB <https://cdaweb.gsfc.nasa.gov/index.html/>`_
or `AMDA <http://amda.irap.omp.eu/>`_.
Most space physics data analysis starts with finding which server provides which dataset then figuring out how to download them.
This can be difficult specially for students or newcomers, Speasy try to remove all difficulties by providing an unique and
simple API to access them all.
Speasy aims to support as much as possible web services and also cover a maximum of features they propose.

Quickstart
----------

Installing Speasy with pip (`more details here <https://speasy.readthedocs.io/en/stable/installation.html>`_):

.. code-block:: console

    $ pip install speasy
    # or
    $ pip install --user speasy

Getting data is as simple as:

.. code-block:: python

    import speasy as spz
    ace_mag = spz.get_data('amda/imf', "2016-6-2", "2016-6-5")

Where amda is the webservice and imf is the product id you will get with this request.

Using the dynamic inventory this can be even simpler:

.. code-block:: python

    import speasy as spz
    amda_tree = spz.inventory.data_tree.amda
    ace_mag = spz.get_data(amda_tree.Parameters.ACE.MFI.ace_imf_all.imf, "2016-6-2", "2016-6-5")

Will produce the exact same result than previous example but has the advantage to be easier to manipulate since you can
discover available data from your favourite Python environment completion such as IPython or notebooks (might not work from IDEs).

This also works with `SSCWEB <https://sscweb.gsfc.nasa.gov/>`_, you can easily download trajectories:

.. code-block:: python

    import speasy as spz
    sscweb_tree = spz.inventory.data_tree.ssc
    solo = spz.get_data(sscweb_tree.Trajectories.solarorbiter, "2021-01-01", "2021-02-01")

Documentation
=============

Check out the documentation and examples at `speasy documentation <https://speasy.readthedocs.io/en/stable/>`_.

Features
--------
- Simple and intuitive API (spz.get_data to get them all)
- Pandas DataFrame like interface for variables
- Quick functions to convert a variable to a Pandas DataFrame
- Local cache to avoid repeating twice the same request
- Can take advantage of SciQLop dedicated poxy as a community backed ultra fast cache
- Full support of `AMDA <http://amda.irap.omp.eu/>`_ API.

Examples
========
See `here <https://speasy.readthedocs.io/en/stable/examples/index.html>`_ for a complete list of examples.

Caveats
=======
- installing speasy on both python 3.7 or less and python 3.8 or plus at the same time doesn't work since entries stored in cache by python 3.8+ are not readable by python 3.7-.
- Speasy is not a plotting package, while it provides basic plot features, it is not meant to produce publication ready figures.

Credits
========

This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage

The development of speasy is supported by the `CDPP <http://www.cdpp.eu/>`_.


=======
History
=======

0.10.0 (2022-02-03)
-------------------

* Adds support for all AMDA products, even private ones
* Adds support for AMDA credentials
* Adds dynamic inventory for AMDA and SSC
* Adds possibility to set config values from ENV
* Drops Python 3.6 support and adds 3.10
* New API documentation using numpydoc 
* New user documentation using numpydoc
* Most code examples are tested with doctest
* Renames SSCWeb module get_orbit to get_trajectory 

0.9.1 (2021-11-25)
------------------

* Fix AMDA module bug `#24 downloading multidimensional data fails <https://github.com/SciQLop/speasy/issues/24>`_

0.9.0 (2021-07-29)
------------------

* Adds SPWC migration tool
* Rename SpwcVariable to SpeasyVariable

0.8.3 (2021-07-28)
------------------

* Package renamed from SPWC to SPEASY
* Some doc and CI improvements

0.8.2 (2021-04-20)
------------------

* sscweb trajectories are always in km

0.8.1 (2021-04-18)
------------------

* Fixes minimum request duration for sscweb

0.8.0 (2021-04-18)
------------------

* Full support for trajectories and 0.2 proxy version

0.7.2 (2020-11-13)
------------------

* ccsweb/proxy: Fix missing coordinate system parameter

0.7.1 (2020-11-13)
------------------

* Fix project URL on PyPi

0.7.0 (2020-11-13)
------------------

* SSCWEB support to get satellites trajectories.
* Few bug fixes.
* Totally disabled cdf support for now.

0.1.0 (2019-12-07)
------------------

* First release on PyPI.


