SPEDAS.jl

DOI version

SciML Code Style Build Status Coverage

A collection of tools for space physics / heliophysics: from data loading and processing to plotting and analysis.

Installation

using Pkg
Pkg.add("SPEDAS")

Explanations

Notes
  • This package began as a Julia port of PySPEDAS but has since expanded beyond a direct translation. While we aim to keep the API broadly consistent with the original, some intentional differences reflect design improvements in the Julia ecosystem. If you need a one-to-one wrapper of the Python library, see PySPEDAS.jl.
  • The package now functions as a meta-package. Much of its functionality has been refactored into separate, modular components to improve maintainability and accelerate development. The broader JuliaSpacePhysics Ecosystem includes tools for coordinate transformations (GeoCotrans.jl), data access (e.g., CDAWeb.jl), data analysis (e.g., VelocityDistributionFunctions.jl), and more specialized applications (e.g., GeoAACGM.jl).
  • The primary goal of this package is to coordinate diverse data sources and analysis methods, providing a unified, high-level interface for scientific workflows. A secondary goal is to ensure consistent interfaces and to validate results against tools such as PySPEDAS.

Plasma wave analysis is supported through the PlasmaWaves.jl package. See, for example, the section on wave polarization analysis. Plasma electromagnetic dispersion-relation solving is supported through PlasmaBO.jl.

Energetic particle analysis is provided by SolarEnergeticParticle.jl. See, for example, the sections on onset analysis and velocity dispersion analysis (VDA).

Multi-spacecraft analysis methods are provided by MultiSpacecraftAnalysis.jl, see the section on using reciprocal vectors to estimate spatial gradients.

SpacePhysicsMakie.jl provides utilities for visualizing and composing space physics time series data.

Contents

  • SPEDAS (IDL) / PySPEDAS : Space Physics Environment Data Analysis Software framework to support loading, plotting, analysis, and integration of data from a number of space- and ground-based observatories
  • SpacePy : A package for Python, targeted at the space sciences, that aims to make basic data analysis, modeling and visualization easier.
  • Kamodo : An official NASA open-source python package built upon the functionalization of datasets
  • autoplot : An interactive browser for data on the web
    • das2: Web-based data delivery, visualization, and analysis system from the The University of Iowa.
  • geospacelab: A python-based library to collect, manage, and visualize the geospace data
    • Data sources: Madrigal/EISCAT, Madrigal/GNSS/TECMAP, Madrigal/DMSP...
  • space-analysis.py : Python utils for data analysis in space physics.
  • SpaceAnalysis.jl : Space physics analysis tool using Julia
    • spectral analysis
    • moving box average for filtering magnetometer data
  • irfu-matlab: Matlab routines to work with space data, particularly with MMS and Cluster/CAA data. Also some general plasma routines.
    • pyrfu: Python version of irfu-matlab to work with space data, particularly the Magnetospheric MultiScale (MMS) mission.
  • QSAS (C/C++) : Science Analysis Software for Space Plasmas
  • pysat: Python Satellite Data Analysis Toolkit

⚠️ Development Status: This package is in active development. While functional, the API may undergo changes in future releases. Please review the documentation and test thoroughly before using in scientific work.

📫 Contributing: We welcome contributions! If you're interested in collaborating or need assistance, please open an issue or reach out through our GitHub repository.

Reproducibility

The documentation of this package was built using these direct dependencies,
Status `~/work/SPEDAS.jl/SPEDAS.jl/docs/Project.toml`
  [950ff2a9] CDAWeb v0.2.1
  [13f3f980] CairoMakie v0.15.8
  [0ca39b1e] Chairmarks v1.3.1
 [0703355e] DimensionalData v0.29.26
  [e30172f5] Documenter v1.17.0
  [daee34ce] DocumenterCitations v1.4.1
  [d0b46c7b] IRBEM v0.1.7
  [162efcab] MultiSpacecraftAnalysis v0.1.1
  [12efb907] PlasmaWaves v0.1.2
  [668d2cef] PySPEDAS v0.1.7
  [6099a3de] PythonCall v0.9.31
  [3930f61c] SPEDAS v0.2.5 `.`
  [0b37b92c] SpaceDataModel v0.2.4
  [0c28ffd8] SpacePhysicsMakie v0.2.5
  [09b745ad] Speasy v0.4.10
  [1986cc42] Unitful v1.28.0
  [8dfed614] Test v1.11.0
Info Packages marked with  have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated`
and using this machine and Julia version.
Julia Version 1.12.5
Commit 5fe89b8ddc1 (2026-02-09 16:05 UTC)
Build Info:
  Official https://julialang.org release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 4 × AMD EPYC 7763 64-Core Processor
  WORD_SIZE: 64
  LLVM: libLLVM-18.1.7 (ORCJIT, znver3)
  GC: Built with stock GC
Threads: 1 default, 1 interactive, 1 GC (on 4 virtual cores)
Environment:
  JULIA_PKG_SERVER_REGISTRY_PREFERENCE = eager
[1]
M. Hapgood. Space Physics Coordinate Transformations: A User Guide. Planetary and Space Science 40, 711–717 (1992).
[2]
G. Paschmann and P. W. Daly. Analysis Methods for Multi-Spacecraft Data (ESA Publications Division, 2000).