def test_omni_default(): start_time = datetime(1970, 1, 1, 0, 0, 0) end_time = datetime(1970, 1, 3, 0, 0, 0) xr_omni = load_data(mission='omni', start_time=start_time, end_time=end_time) try: xr_omni['all1'] except: raise ValueError
def test_cluster(): start_time = datetime(2004, 6, 18, 11, 35, 0) end_time = datetime(2004, 6, 18, 11, 36, 0) settings = {'probes': ['3'], 'prod': ['dc_mag']} xr_cluster = load_data('cluster', start_time, end_time, **settings) cluster_b_x = xr_cluster['dc_mag3'].sel( B_vec_xyz_gse__C3_CP_FGM_SPIN='x').values cluster_b_x_units = cluster_b_x * u.Unit( xr_cluster['dc_mag3'].attrs['Units']['B_vec_xyz_gse__C3_CP_FGM_SPIN']) target = np.array([ 26.827, 27.212, 27.296, 27.799, 28.264, 28.686, 28.911, 29.206, 29.473, 29.483, 29.597, 29.73, 29.896, 30.127 ]) * u.nT assert u.allclose(target, cluster_b_x_units)
def _init_rotations_matrices(self, time_par, start_time, end_time): """ Returns rotations matrices interpolated at time_par. """ probe_ID = self.settings['probes'][0] key_str = 'sc_att{}'.format(probe_ID) quat_eci_to_gse = self._obj[key_str].values time_quat = self._obj[key_str].coords[self._get_time_key( key_str)].values #################### settings = { 'prod': ['sc_att'], 'probes': [probe_ID], 'coords': 'gse', 'mode': 'high_res', 'frame': 'dbcs' } from aidapy import load_data xr_mms_tmp = load_data(mission='mms', start_time=start_time, end_time=end_time, **settings) quat_eci_to_dbcs = xr_mms_tmp['sc_att{}'.format(probe_ID)].values # time_quat2 = self._obj['sc_att1'].coords['time1'].values ##################### f = interp1d(mpl.dates.date2num(time_quat), quat_eci_to_gse.T, bounds_error=False, fill_value=np.nan) quat_interp = f(mpl.dates.date2num(time_par)) itk = np.isnan(quat_interp[0]) quat_interp[:, itk] = 1. r = R.from_quat(quat_interp.T) self.R_eci_to_gse = r.as_matrix() self.R_gse_to_eci = np.transpose(self.R_eci_to_gse, axes=(0, 2, 1)) self.R_eci_to_gse[itk] *= np.nan self.R_gse_to_eci[itk] *= np.nan # f = interp1d(mpl.dates.date2num(time_quat), quat_eci_to_dbcs.T, bounds_error=False, fill_value=np.nan) quat_interp = f(mpl.dates.date2num(time_par)) itk = np.isnan(quat_interp[0]) quat_interp[:, itk] = 1. r = R.from_quat(quat_interp.T) self.R_eci_to_dbcs = r.as_matrix() R_dbcs_to_eci = np.transpose(self.R_eci_to_dbcs, axes=(0, 2, 1)) self.R_eci_to_dbcs[itk] *= np.nan R_dbcs_to_eci[itk] *= np.nan
def test_omni(): start_time = datetime(1970, 1, 1, 0, 0, 0) end_time = datetime(1970, 1, 3, 0, 0, 0) settings = {'prod': ['dc_mag']} xr_omni = load_data(mission='omni', start_time=start_time, end_time=end_time, **settings) omni_b_x = xr_omni['dc_mag1'].sel(products='BX_GSE').values omni_b_x_units = omni_b_x * u.Unit( xr_omni['dc_mag1'].attrs['Units']['BX_GSE']) target = np.array([ -1.4, -0.3, -2.5, -1.2, -3.5, -2.5, -0.5, -1.6, -2.4, -2.4, -1.7, -1.5, -0.8, -4.4, -4.8, -3.6, -6.3, -6.7, -1.4, -2.7, 0.8, 0.8, -0.4, -4.4, -5.4, -6.2, -6.3, -4.2, -8.1, -7., -2.2, -5.2, -2.6, -8.4, -5.7, -2.1, -2.7, -1.1, 0., -3.8, -4.7, -1.5, -0.9, -1.3, -2.9, -2., -3.2 ]) * u.nT assert u.allclose(target, omni_b_x_units)
def test_vdf_mms(): '''Integration test on a complete interpolation.''' start_time = datetime(2019, 3, 8, 13, 54, 53) end_time = datetime(2019, 3, 8, 13, 57, 00) settings = { 'prod': ['i_dist', 'dc_mag', 'sc_att', 'i_bulkv'], 'probes': ['1'], 'coords': 'gse', 'mode': 'high_res', 'frame': 'gse' } xr_mms = load_data(mission='mms', start_time=start_time, end_time=end_time, **settings) species = 'ion' frame = 'B' grid_geom = 'spher' v_max = 8.e5 resolution = 60 interp_schem = 'lin' start_time_sub = datetime(start_time.year, start_time.month, start_time.day, 13, 56, 23, 160000) end_time_sub = datetime(start_time.year, start_time.month, start_time.day, 13, 56, 24, 225000) xr_mms = xr_mms.vdf.interpolate(start_time, end_time, start_time_sub, end_time_sub, species=species, frame=frame, grid_geom=grid_geom, v_max=v_max, resolution=resolution, interp_schem=interp_schem, verbose=False) target = np.array([ 1.7031225e-10, 1.5537861e-10, 1.4097469e-10, 1.4718438e-10, 3.0006439e-10, 1.6751817e-10, 1.2765614e-10 ]).astype(np.float32) result = np.nanmean(xr_mms['vdf_interp_time'].values, axis=(1, 2)).astype(np.float32) # This test will potentially fail if MMS data are updated... assert np.allclose(target, result, atol=1.e-24)
def test_mms(): start_time = datetime(2018, 4, 8, 0, 0, 0) end_time = datetime(2018, 4, 8, 0, 0, 10) settings = {'probes': ['1'], 'prod': ['dc_mag']} xr_mms = load_data('mms', start_time, end_time, **settings) mms_b_x = xr_mms['dc_mag1'].sel(mms1_fgm_b_gse_srvy_l2='x').values mms_b_x_units = mms_b_x * u.Unit( xr_mms['dc_mag1'].attrs['Units']['mms1_fgm_b_gse_srvy_l2']) target = np.array([ 1.712529, 1.7148426, 1.7108021, 1.7265971, 1.7372726, 1.7345928, 1.7192012, 1.7152323, 1.7145348, 1.718118, 1.7249706, 1.7225785, 1.7281982, 1.7349572, 1.7244626, 1.7399646, 1.7466872, 1.7412337, 1.762651, 1.7680929, 1.7699757, 1.7411137, 1.7634461, 1.7464956, 1.7357976, 1.7537696, 1.7317536, 1.7466614, 1.7381922, 1.7112942, 1.717961, 1.7125505, 1.7319726, 1.7341373, 1.7375633, 1.7236018, 1.7285287, 1.7272918, 1.7329324, 1.7352072, 1.7432857, 1.7374923, 1.7280098, 1.7234732, 1.734949, 1.7194895, 1.7201461, 1.7266002, 1.6997541 ]) * u.nT assert u.allclose(target, mms_b_x_units)
from aidapy import load_data import aidapy.aidaxr ############################################################################### # Define data parameters ############################################################################### # Time Interval start_time = datetime(2017, 1, 1, 0, 0, 0) end_time = datetime(2018, 1, 1, 0, 0, 0) # Dictionary of data settings: mission, product, probe, coordinates # Currently available products: 'dc_mag', 'i_dens', and 'all' settings = {'prod': ['i_bulkv'], 'probes': ['1'], 'coords': 'gse', "mode": "low_res"} ############################################################################### # Download and load desired data as aidapy timeseries ############################################################################### xr_mms = load_data(mission='mms', start_time=start_time, end_time=end_time, **settings) print(xr_mms) #print(xr_mms['dc_mag1']) #print(xr_mms['dc_mag2']) ############################################################################### # Plot the loaded aidapy timeseries ############################################################################### #xr_mms.graphical.peek() toto = xr_mms['i_bulkv1'].to_dataframe() toto.to_pickle("df_mms1_ibulkv_2017.pkl")
@author: hbreuill """ from datetime import datetime #AIDApy Modules from aidapy import load_data import aidapy.aidaxr ############################################################################### # Define data parameters ############################################################################### # Time Interval start_time = datetime(2009, 4, 1, 0, 0, 0) end_time = datetime(2009, 4, 2, 0, 0, 0) # Dictionary of data settings: mission, product, probe, coordinates # Currently available products: 'dc_mag', 'i_dens', and 'all' cl_settings = {'prod': ['i_bulkv'], 'probes': ['1'], 'coords': 'gse'} ############################################################################### # Download and load desired data as aidapy timeseries ############################################################################### xr_cluster = load_data('cluster', start_time, end_time, **cl_settings) print(xr_cluster) print(xr_cluster['i_bulkv1']) ############################################################################### # Plot the loaded aidapy timeseries ############################################################################### xr_cluster['i_bulkv1'].graphical.peek()
- to plot mission data @author: hbreuill """ from datetime import datetime #AIDApy Modules from aidapy import load_data import aidapy.aidaxr ############################################################################### # Define data parameters ############################################################################### start_time = datetime(2018, 4, 8, 0, 0, 0) end_time = datetime(2018, 4, 8, 0, 1, 0) # Dictionary of data settings: mission, product, probe, coordinates # Currently available products: 'dc_mag', 'i_dens', and 'all' settings = {'prod': ['dc_mag'], 'probes': ['1', '2'], 'coords': 'gse'} ############################################################################### # Download and load desired data as aidapy timeseries ############################################################################### xr_mms = load_data(mission='mms', start_time=start_time, end_time=end_time, **settings)#, prod=['dc_mag'], probes=['1', '2'], coords='gse') print(xr_mms['dc_mag1']) ############################################################################### # Plot the loaded aidapy timeseries ############################################################################### xr_mms['dc_mag1'].graphical.peek()
- to build the associated timeseries - to plot mission data @author: hbreuill """ from datetime import datetime #AIDApy Modules from aidapy import load_data import aidapy.aidaxr ############################################################################### # Define data parameters ############################################################################### # Time Interval start_time = datetime(2008, 5, 15, 0, 0, 0) end_time = datetime(2008, 5, 16, 0, 0, 0) ############################################################################### # Download and load desired data as aidapy timeseries ############################################################################### #ts_data = TimeSeries(mission=settings['mission'], dl_settings=settings) xr_omni = load_data(mission='omni', start_time=start_time, end_time=end_time) print(xr_omni) #print(xr_omni['all1']) ############################################################################### # Plot the loaded aidapy timeseries ############################################################################### #xr_omni['all1'].graphical.peek()