Skip to content
This repository has been archived by the owner on Jan 26, 2022. It is now read-only.

Add voyager data loading #992

Merged
merged 2 commits into from
Jul 10, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions examples/plot_voyager.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
"""
Voyager
=======
Plotting Voyager magnetic field and plasma data.
"""

###############################################################################
# Import the required packages
from heliopy.data import voyager
from datetime import datetime
import matplotlib.pyplot as plt

###############################################################################
# Download and load the merged dataset for a single year
starttime = datetime(1980, 1, 1)
endtime = datetime(1980, 12, 30)
data = voyager.voyager1_merged(starttime, endtime)
print(data.columns)

###############################################################################
# Plot the data
fig, axs = plt.subplots(nrows=2, figsize=(10, 4), sharex=True)

ax = axs[0]
for var in ['BR', 'BT', 'BN']:
ax.plot(data.index, data.quantity(var), label=var)
ax.set_ylabel('nT')

ax = axs[1]
ax.plot(data.index, data.quantity('V'))
ax.set_ylabel('Velocity (km/s)')

fig.autofmt_xdate()
plt.show()
20 changes: 20 additions & 0 deletions heliopy/data/test/test_voyager.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
from datetime import datetime
import pytest

from .util import check_data_output

voyager = pytest.importorskip('heliopy.data.voyager')
pytestmark = pytest.mark.data

starttime = datetime(1990, 1, 1)
endtime = datetime(1990, 5, 1)


def test_voyager1_merged():
df = voyager.voyager1_merged(starttime, endtime)
check_data_output(df)


def test_voyager2_merged():
df = voyager.voyager2_merged(starttime, endtime)
check_data_output(df)
41 changes: 41 additions & 0 deletions heliopy/data/voyager.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
"""
Methods for importing data from the Voyager spacecraft.
"""
import astropy.units as u
from heliopy.data import cdasrest


def _docstring(identifier, description):
return cdasrest._docstring(identifier, 'V', description)


def _voyager(starttime, endtime, identifier, spacecraft):
"""
Generic method for downloading Voyager data.
"""
dl = cdasrest.CDASDwonloader(f'VOYAGER{spacecraft}', identifier, 'voyager')
dl.intervals = dl.intervals_yearly
return dl.load(starttime, endtime)


# Actual download functions start here
def voyager1_merged(starttime, endtime):
identifier = 'VOYAGER1_COHO1HR_MERGED_MAG_PLASMA'
return _voyager(starttime, endtime, identifier, 1)


voyager1_merged.__doc__ = _docstring(
'VOYAGER1_COHO1HR_MERGED_MAG_PLASMA',
'Voyager 1 merged hourly magnetic field, plasma, proton fluxes, '
'and ephemeris data')


def voyager2_merged(starttime, endtime):
identifier = 'VOYAGER2_COHO1HR_MERGED_MAG_PLASMA'
return _voyager(starttime, endtime, identifier, 2)


voyager2_merged.__doc__ = _docstring(
'VOYAGER2_COHO1HR_MERGED_MAG_PLASMA',
'Voyager 2 merged hourly magnetic field, plasma, proton fluxes, '
'and ephemeris data')
2 changes: 1 addition & 1 deletion heliopy/data/wind.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def _docstring(identifier, description):
def _wind(starttime, endtime, identifier, units=None,
intervals='monthly'):
"""
Generic method for downloading ACE data.
Generic method for downloading WIND data.
"""
dl = cdasrest.CDASDwonloader('wi', identifier, 'wind', units=units)
# Override intervals
Expand Down