Source code for pyspedas.analysis.deriv_data

"""
Creates a new tplot variable which is the derivative of the data.

Notes
-----
Similar to deriv_data.pro in IDL SPEDAS.

"""
import logging

import numpy as np

import pyspedas


[docs] def deriv_data(names, newname=None, suffix=None, overwrite=None, edge_order=1): """ Compute the derivative. Parameters ---------- names: str/list of str List of pytplot names. newname: str/list of str, optional List of new names for tplot variables. If not given, then a suffix is applied. suffix: str, optional A suffix to apply. Default is '-avg'. overwrite: bool, optional Replace the existing tplot name. edge_order: int, optional A value passed to np.gradient that specifies how boundaries are treated Returns ------- None. """ old_names = pyspedas.tnames(names) if len(old_names) < 1: logging.error('deriv_data: No valid tplot names were provided.') return if suffix is None: suffix = '-der' if overwrite is not None: n_names = old_names elif newname is None: n_names = [s + suffix for s in old_names] else: n_names = newname if isinstance(n_names, str): n_names = [n_names] if len(n_names) != len(old_names): n_names = [s + suffix for s in old_names] for i, old in enumerate(old_names): data = pyspedas.get_data(old) data_grad = np.gradient(data.y, data.times, axis = 0, edge_order=edge_order) pyspedas.store_data(n_names[i], data={'x': data.times, 'y': data_grad}) logging.info('deriv_data was applied to: ' + n_names[i]) return n_names