Source code for pyspedas.tplot_tools.tplot_math.tcrossp

import numpy as np
from pyspedas.tplot_tools import get_data, store_data


[docs] def tcrossp( v1, v2, newname=None, return_data=False ): """ Calculates the cross product of two tplot variables Parameters ---------- v1: str First tplot variable v2: str Second tplot variable newname: str, optional Name of the output variable Default: v1_cross_v2 return_data: bool Returns the data as an ndarray instead of creating a tplot variable Default: False Returns -------- str Name of the tplot variable created Examples -------- >>> # Compute the cross product of two time series >>> import pyspedas >>> x1 = [0, 4, 8] >>> x2 = [0, 4, 8] >>> time1 = [pyspedas.time_float("2020-01-01") + i for i in x1] >>> time2 = [pyspedas.time_float("2020-01-01") + i for i in x2] >>> pyspedas.store_data("a", data={"x": time1, "y": [[1, 2, 3],[2, 3, 4],[3, 4, 5]]}) >>> pyspedas.store_data("c", data={"x": time2, "y": [[1, 4, 1],[2, 5, 2],[3, 5, 3]]}) >>> n = pyspedas.tcrossp("a", "c", newname="a_cross_c") >>> print('new tplot variable:', n) >>> ac = pyspedas.get_data(n) >>> print(ac) """ v1_data = None v2_data = None if not isinstance(v1, np.ndarray) and isinstance(v1, str): v1_data = get_data(v1) v1_name = v1 if v1_data is not None: data1 = v1_data[1] else: v1_name = 'var1' data1 = v1 if not isinstance(v2, np.ndarray) and isinstance(v2, str): v2_data = get_data(v2) v2_name = v2 if v2_data is not None: data2 = v2_data[1] else: v2_name = 'var2' data2 = v2 if newname is None: newname = v1_name + '_cross_' + v2_name cp = np.cross(data1, data2) if return_data: return cp else: out = cp if v2_data is None: if len(cp.shape) == 1: out = np.atleast_2d(cp) times = np.zeros(out.shape[0]) else: times = v2_data[0] store_data(newname, data={'x': times, 'y': out}) return newname