Source code for pyspedas.vires.load

import logging

from pyspedas.tplot_tools import time_datetime
from pyspedas.tplot_tools import store_data, options


[docs] def load(trange=None, collection=None, measurements=None, models=None, sampling_step=None, auxiliaries=None, residuals=False): """ """ try: from viresclient import SwarmRequest except ImportError: logging.info('The viresclient package is needed for this operation, but does not appear to be installed.') logging.info('To use this feature, install viresclient with "pip install viresclient".') logging.info('If pip install fails, try "conda install viresclient".') from .config import CONFIG if CONFIG['access_token'] == '': logging.error('Invalid access token') return else: access_token = CONFIG['access_token'] if trange is None: logging.error('No time range specified') return tr = time_datetime(trange) if not isinstance(measurements, list): measurements = [measurements] if auxiliaries is not None and not isinstance(auxiliaries, list): auxiliaries = [auxiliaries] if models is not None: if not isinstance(models, list): models = [models] request = SwarmRequest(url="https://vires.services/ows", token=access_token) if isinstance(collection, list): request.set_collection(*collection) else: request.set_collection(collection) if auxiliaries is None: request.set_products(measurements=measurements, models=models, sampling_step=sampling_step, residuals=residuals) else: request.set_products(measurements=measurements, auxiliaries=auxiliaries, models=models, sampling_step=sampling_step, residuals=residuals) data = request.get_between(start_time=tr[0], end_time=tr[1]) return xarray_to_tplot(data.as_xarray())
def xarray_to_tplot(xr): out = [] for key in xr.keys(): times = xr[key].coords['Timestamp'].to_numpy() saved = store_data(key, data={'x': times, 'y': xr[key].data}) options(key, 'ytitle', xr[key].description) options(key, 'ysubtitle', '[' + xr[key].units + ']') # find the legend if this is a vector for item in xr[key].coords: if item != 'Timestamp': options(key, 'legend_names', xr[key].coords[item].values.tolist()) if saved: out.append(key) else: logging.warning('Problem saving: ' + key) return out