Metadata-Version: 2.1
Name: pysat
Version: 3.2.1
Summary: Supports science analysis across disparate data platforms
Author-email: "Russell Stoneback, et al." <pysat.developers@gmail.com>
License: Copyright (c) 2016, Russell Stoneback
        All rights reserved.
        
        Redistribution and use in source and binary forms, with or without
        modification, are permitted provided that the following conditions are met:
        
        * Redistributions of source code must retain the above copyright notice, this
          list of conditions and the following disclaimer.
        
        * Redistributions in binary form must reproduce the above copyright notice,
          this list of conditions and the following disclaimer in the documentation
          and/or other materials provided with the distribution.
        
        * Neither the name of pysat nor the names of its
          contributors may be used to endorse or promote products derived from
          this software without specific prior written permission.
        
        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
        AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
        DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
        FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
        SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
        CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
        OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        
        
Project-URL: Documentation, https://pysat.readthedocs.io/en/latest/
Project-URL: Source, https://github.com/pysat/pysat
Keywords: pysat,ionosphere,atmosphere,thermosphere,magnetosphere,heliosphere,observations,models,space,satellites,analysis
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Astronomy
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: dask
Requires-Dist: netCDF4
Requires-Dist: numpy>=1.19
Requires-Dist: pandas>=1.1.5
Requires-Dist: portalocker
Requires-Dist: pytest
Requires-Dist: scipy>=1.5.4
Requires-Dist: toolz
Requires-Dist: xarray>=0.16.2
Provides-Extra: test
Requires-Dist: flake8; extra == "test"
Requires-Dist: flake8-docstrings; extra == "test"
Requires-Dist: hacking>=1.0; extra == "test"
Requires-Dist: pysatSpaceWeather<0.1.0; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest-ordering; extra == "test"
Provides-Extra: doc
Requires-Dist: extras_require; extra == "doc"
Requires-Dist: ipython; extra == "doc"
Requires-Dist: m2r2; extra == "doc"
Requires-Dist: numpydoc; extra == "doc"
Requires-Dist: readthedocs-sphinx-search==0.3.2; extra == "doc"
Requires-Dist: sphinx; extra == "doc"
Requires-Dist: sphinx_rtd_theme<2.0.0,>=1.2.2; extra == "doc"

<div align="center">
        <img height="0" width="0px">
        <img width="20%" src="https://raw.githubusercontent.com/pysat/pysat/main/docs/images/logo.png" alt="The pysat logo: A snake orbiting a blue sphere" title="pysat"</img>
</div>

# pysat: Python Satellite Data Analysis Toolkit
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pysat)
[![PyPI Package latest release](https://img.shields.io/pypi/v/pysat.svg)](https://pypi.python.org/pypi/pysat)
[![Build Status](https://github.com/pysat/pysat/actions/workflows/main.yml/badge.svg)](https://github.com/pysat/pysat/actions/workflows/main.yml/badge.svg)
[![Documentation Status](https://readthedocs.org/projects/pysat/badge/?version=latest)](http://pysat.readthedocs.io/en/latest/?badge=latest)
[![Coverage Status](https://coveralls.io/repos/github/pysat/pysat/badge.svg?branch=main)](https://coveralls.io/github/pysat/pysat?branch=main)
[![DOI](https://zenodo.org/badge/33449914.svg)](https://zenodo.org/badge/latestdoi/33449914)

The Python Satellite Data Analysis Toolkit (pysat) provides a simple and
flexible interface for robust data analysis from beginning to end - including
downloading, loading, cleaning, managing, processing, and analyzing data.
Pysat's plug-in design allows analysis support for any data, including user
provided data sets. The pysat team provides a variety of plug-ins to support
public scientific data sets in packages such as pysatNASA, pysatMadrigal, and
more, available as part of the general [pysat ecosystem](https://github.com/pysat).

Full [Documentation](http://pysat.readthedocs.io/en/latest/index.html)

JGR-Space Physics [Publication](https://doi.org/10.1029/2018JA025297)

Pysat Ecosystem [Publication](https://www.frontiersin.org/articles/10.3389/fspas.2023.1119775/full)

[Citation Info](https://pysat.readthedocs.io/en/latest/citing.html)

Come join us on Slack! An invitation to the pysat workspace is available
in the 'About' section of the
[pysat GitHub Repository.](https://github.com/pysat/pysat)
Development meetings are generally held fortnightly.

# Main Features
* Instrument independent analysis routines.
* Instrument object providing an interface for downloading and analyzing a wide
  variety of science data sets.
  * Uses pandas or xarray for the underlying data structure;
    capable of handling the many forms scientific measurements take in a
    consistent manner.
  * Standard scientific data handling tasks (e.g., identifying, downloading,
    and loading files and cleaning and modifying data) are built into the
    Instrument object.
  * Supports metadata consistent with the netCDF CF-1.6 standard. Each variable
    has a name, long name, and units. Note units are informational only.
* Simplifies data management
  * Iterator support for loading data by day/file/orbit, independent of data
    storage details.
  * Orbits are calculated on the fly from loaded data and span day breaks.
  * Iterate over custom seasons
* Supports rigorous time-series calculations that require spin up/down time
  across day, orbit, and file breaks.
* Includes helper functions to reduce the barrier in adding new science
  instruments to pysat

# Installation

The following instructions provide a guide for installing pysat and give some
examples on how to use the routines.

## Prerequisites

pysat uses common Python modules, as well as modules developed by and for the
Space Physics community.  This module officially supports Python 3.X+.

| Common modules | Community modules |
| -------------- | ----------------- |
| dask           | netCDF4           |
| numpy >= 1.12  |                   |
| pandas         |                   |
| portalocker    |                   |
| pytest         |                   |
| scipy          |                   |
| toolz          |                   |
| xarray         |                   |


## PyPi Installation
```
pip install pysat
```
Note that while support for python 3.6 is maintained for opertional purposes, there 
have been issues with installing through PyPi on older systems. Installation through 
GitHub is recommended for older systems.

## GitHub Installation
```
git clone https://github.com/pysat/pysat.git
```

Change directories into the repository folder and run the pyproject.toml or
setup.py file.  For a local install use the "--user" flag after "install".

```
cd pysat/
python -m build .
pip install .
```

# Using pysat

* The first time pysat is run, you will need to specify a directory to store
  the data. In Python, run:
```
pysat.params['data_dirs'] = 'path/to/directory/that/may/or/may/not/exist'
```
  * Nominal organization of data is top_dir/platform/name/tag/inst_id/files

Detailed examples and tutorials for using pysat are available in the
[documentation](http://pysat.readthedocs.io/en/latest/index.html).
