Skip to main content

Python tool for downloading, converting and reading OMNI solar wind data.

Project description

pyomnidata

Python tool for downloading, converting and reading OMNI solar wind data.

If you make use of the OMNI data please acknowledge and cite as specified here: https://omniweb.gsfc.nasa.gov/html/citing.html

Installation

Simply install using pip3:

pip3 install pyomnidata --user

Alternatively install from this repository:

git clone https://github.com/mattkjames7/pyomnidata
cd pyomnidata

#EITHER build a wheel and install with pip (better)
python3 setup.py bdist_wheel
pip3 install dist/pyomnidata-1.0.0-py3-none-any.whl --user

#OR directly using setup py (should work, not tested though)
python3 setup.py install --user

For this to work properly - you will need to set up the $OMNIDATA_PATH environment variable to point to a folder where you want to store the data. Do this by adding something along the lines of the following to the bottom of your ~/.bashrc file:

export OMNIDATA_PATH=/path/to/omni/data

Usage

Downloading Data

Download OMNI data like this:

import pyomnidata

#download all available data
pyomnidata.UpdateLocalData()

Download F10.7 index (solar flux at 10.7 cm):

pyomnidata.UpdateSolarFlux(EndDate=2021024)

where EndDate is the last date which you want to request solar flux data for. This should be set to something at least a few days prior to the current date, if you request a date which currently has no available data then the download will fail.

Read Data

Get the OMNI parameters like so:

####OMNI parameters####
#Year can either be a single year:
Year = 2001
#or it can be a range:
Year = [2001,2004]

#5 minute resolution data
data = pyomnidata.GetOMNI(Year,Res=5)

#1 minute data
data = pyomnidata.GetOMNI(Year,Res=1)

####solar flux###
#all of the data
data = pyomnidata.GetSolarFlux()

#a single date
data = pyomnidata.GetSolarFlux(Date=20050101)

#a range of dates
data = pyomnidata.GetSolarFlux(Date=[20020101,20020103])

The returned data object is a numpy.recarray object which contains all of the OMNI data requested. To see what fields are stored use print(data.dtype.names). The units are as presented here: https://omniweb.gsfc.nasa.gov/html/omni_min_data.html#4b

Plot Data

Use the PlotOMNI function, e.g.:

import matplotlib.pyplot as plt

#create a figure
plt.figure(figsize=(11,6))

#plot some stuff in one panel
ax0 = pyomnidata.PlotOMNI(['SymH','SymD'],[20010101,20010120],fig=plt,maps=[2,1,0,0])

#and a second panel
ax1 = pyomnidata.PlotOMNI(['FlowSpeed'],[20010101,20010120],fig=plt,maps=[2,1,1,0])

#fit things a bit nicer
plt.tight_layout()

Which should produce something like the following:

omniexample.png

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

pyomnidata-1.0.1-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file pyomnidata-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: pyomnidata-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 17.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.26.0 setuptools/58.0.4 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.4

File hashes

Hashes for pyomnidata-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 065ce25052156557452aa2039a91c39b99dc54b828bd8c34053a0af1d66e3dc0
MD5 62f0632673039c01b2c36f4e27a153d1
BLAKE2b-256 f99b11ba71e23c276e1227ba9435e356beca8e58f2fd5815c44d9819227e02e1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page