Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
The Python-based Space Physics Environment Data Analysis Software (PySPEDAS) framework supports multi-mission, multi-instrument retrieval, analysis, and visualization of heliophysics time series data.
Python 3.9+ is required.
We recommend Anaconda which comes with a suite of packages useful for scientific data analysis. Step-by-step instructions for installing Anaconda can be found at: Windows, macOS, Linux
To avoid potential dependency issues with other Python packages, we suggest creating a virtual environment for PySPEDAS; you can create a virtual environment in your terminal with:
python -m venv pyspedas
To enter your virtual environment, run the 'activate' script:
.\pyspedas\Scripts\activate
source pyspedas/bin/activate
To get virtual environments working with Jupyter, in the virtual environment, type:
pip install ipykernel
python -m ipykernel install --user --name pyspedas --display-name "Python (pySPEDAS)"
(note: "pyspedas" is the name of your virtual environment)
Then once you open the notebook, go to "Kernel" then "Change kernel" and select the one named "Python (PySPEDAS)"
PySPEDAS supports Windows, macOS and Linux. To get started, install the pyspedas
package using PyPI:
pip install pyspedas
To upgrade to the latest version of PySPEDAS:
pip install pyspedas --upgrade
The recommended way of setting your local data directory is to set the SPEDAS_DATA_DIR
environment variable. SPEDAS_DATA_DIR
acts as a root data directory for all missions, and will also be used by IDL (if you’re running a recent copy of the bleeding edge).
Mission specific data directories (e.g., MMS_DATA_DIR
for MMS, THM_DATA_DIR
for THEMIS) can also be set, and these will override SPEDAS_DATA_DIR
To get started, import pyspedas and pytplot:
import pyspedas
from pytplot import tplot
You can load data into tplot variables by calling pyspedas.mission.instrument()
, e.g.,
To load and plot 1 day of THEMIS FGM data for probe 'd':
thm_fgm = pyspedas.themis.fgm(trange=['2015-10-16', '2015-10-17'], probe='d')
tplot(['thd_fgs_gse', 'thd_fgs_gsm'])
To load and plot 2 minutes of MMS burst mode FGM data:
mms_fgm = pyspedas.mms.fgm(trange=['2015-10-16/13:05:30', '2015-10-16/13:07:30'], data_rate='brst')
tplot(['mms1_fgm_b_gse_brst_l2', 'mms1_fgm_b_gsm_brst_l2'])
Note: by default, PySPEDAS loads all data contained in CDFs found within the requested time range; this can potentially load data outside of your requested trange. To remove the data outside of your requested trange, set the time_clip
keyword to True
To load and plot 6 hours of PSP SWEAP/SPAN-i data:
spi_vars = pyspedas.psp.spi(trange=['2018-11-5', '2018-11-5/06:00'], time_clip=True)
tplot(['DENS', 'VEL', 'T_TENSOR', 'TEMP'])
To download 5 days of STEREO magnetometer data (but not load them into tplot variables):
stereo_files = pyspedas.stereo.mag(trange=['2013-11-1', '2013-11-6'], downloadonly=True)
trange
: two-element list specifying the time range of interest. This keyword accepts a wide range of formatstime_clip
: if set, clip the variables to the exact time range specified by the trange
keywordsuffix
: string specifying a suffix to append to the loaded variablesvarformat
: string specifying which CDF variables to load; accepts the wild cards * and ?varnames
: string specifying which CDF variables to load (exact names)get_support_data
: if set, load the support variables from the CDFsdownloadonly
: if set, download the files but do not load them into tplotno_update
: if set, only load the data from the local cachenotplot
: if set, load the variables into dictionaries containing numpy arrays (instead of creating the tplot variables)Please see the following notebooks for examples of using PySPEDAS
Additional examples of loading and plotting data can be found in the documentation for the project you're interested in (PySPEDAS projects), as well as the project's README file.
For more information, please see our HTML documentation at:
https://pyspedas.readthedocs.io/
To find the options supported, call help
on the instrument function you're interested in:
help(pyspedas.themis.fgm)
You can ask questions by creating an issue or by joining the SPEDAS mailing list.
Pytplot is a separate project, that replicates the IDL "tplot" functionality. Pyspedas uses a modified version of pytplot with matplotlib as the plotting library.
We welcome contributions to PySPEDAS; to learn how you can contribute, please see our Contributing Guide
An introduction to PySPEDAS plug-in development can be found here:
Introduction to PySPEDAS plug-in development
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. To learn more, please see our Code of Conduct.
For examples of pyspedas, see: https://github.com/spedas/pyspedas_examples
For MMS examples, see: https://github.com/spedas/mms-examples
For pytplot (matplotlib version), see: https://github.com/MAVENSDC/PyTplot/tree/matplotlib-backend
For cdflib, see: https://github.com/MAVENSDC/cdflib
For SPEDAS, see http://spedas.org/
FAQs
Python Space Physics Environment Data Analysis Software (pySPEDAS)
We found that pyspedas demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.