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.
Full Documentation
JGR-Space Physics Publication
Pysat Ecosystem Publication
Come join us on Slack! An invitation to the pysat workspace is available in the 'About' section of the pysat GitHub Repository. Development meetings are generally held fortnightly.
- 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
The following instructions provide a guide for installing pysat and give some examples on how to use the routines.
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 |
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.
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 .
- 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.