Source code for pyspedas.projects.erg.satellite.erg.lepi.lepi


import numpy as np
from pyspedas import clip, get_data, options, store_data, ylim, zlim
from pyspedas import tcopy

from ..load import load
from ..get_gatt_ror import get_gatt_ror


from typing import List, Optional

[docs] def lepi( trange: List[str] = ['2017-07-01', '2017-07-02'], datatype: str = 'omniflux', level: str = 'l2', suffix: str = '', get_support_data: bool = False, varformat: Optional[str] = None, varnames: List[str] = [], downloadonly: bool = False, notplot: bool = False, no_update: bool = False, uname: Optional[str] = None, passwd: Optional[str] = None, time_clip: bool = False, ror: bool = True, version: Optional[str] = None, force_download: bool = False, ) -> List[str]: """ This function loads data from the LEP-i experiment from the Arase mission Parameters ---------- trange : list of str time range of interest [starttime, endtime] with the format 'YYYY-MM-DD','YYYY-MM-DD'] or to specify more or less than a day ['YYYY-MM-DD/hh:mm:ss','YYYY-MM-DD/hh:mm:ss'] Default: ['2017-07-01', '2017-07-02'] datatype: str Data type; Valid 'l2' options: '3dflux', 'omniflux' Valid 'l3' options: 'pa' Default: 'omniflux' level: str Data level; Valid options: 'l2','l3' Default: 'l2' suffix: str The tplot variable names will be given this suffix. By default, no suffix is added. get_support_data: bool If Trye, data with an attribute "VAR_TYPE" with a value of "support_data" will be loaded into tplot. Default: False varformat: str The file variable formats to load into tplot. Wildcard character "*" is accepted. Default: None (all variables loaded) varnames: list of str List of variable names to load. If list is empty or not specified, all data variables are loaded. Default: [] (all data loaded) downloadonly: bool Set this flag to download the CDF files, but not load them into tplot variables. Default: False notplot: bool Return the data in hash tables instead of creating tplot variables Default: False no_update: bool If set, only load data from your local cache Default: False time_clip: bool Time clip the variables to exactly the range specified in the trange keyword Default: False ror: bool If set, print PI info and rules of the road Default: False version: str Set this value to specify the version of cdf files (such as "v03_00") Default: None uname: str User name. Default: None passwd: str Password. Default: None force_download: bool Download file even if local version is more recent than server version Default: False Returns ------- List of tplot variables created. Examples -------- >>> import pyspedas >>> from pyspedas import tplot >>> lepi_vars = pyspedas.projects.erg.lepi(trange=['2017-04-09', '2017-04-10']) >>> tplot('erg_lepi_l2_omniflux_FODO') """ initial_notplot_flag = False if notplot: initial_notplot_flag = True if level == 'l3': datatype = 'pa' file_res = 3600. * 24 prefix = 'erg_lepi_'+level+'_' + datatype + '_' pathformat = 'satellite/erg/lepi/'+level+'/'+datatype + \ '/%Y/%m/erg_lepi_'+level+'_'+datatype+'_%Y%m%d_' if version is None: pathformat += 'v??_??.cdf' else: pathformat += version + '.cdf' loaded_data = load(pathformat=pathformat, trange=trange, file_res=file_res, prefix=prefix, suffix=suffix, get_support_data=get_support_data, varformat=varformat, varnames=varnames, downloadonly=downloadonly, notplot=notplot, time_clip=time_clip, no_update=no_update, uname=uname, passwd=passwd, force_download=force_download) flag_FPDO = False # In case it doesn't get set later if (len(loaded_data) > 0) and ror: try: gatt = get_gatt_ror(downloadonly, loaded_data) # --- print PI info and rules of the road print(' ') print( '**************************************************************************') print(gatt["LOGICAL_SOURCE_DESCRIPTION"]) print('') print('Information about ERG LEPi') print('') print('PI: ', gatt['PI_NAME']) print("Affiliation: ", gatt["PI_AFFILIATION"]) print('') print('RoR of ERG project common: https://ergsc.isee.nagoya-u.ac.jp/data_info/rules_of_the_road.shtml.en') print( 'RoR of LEPi L2: https://ergsc.isee.nagoya-u.ac.jp/mw/index.php/ErgSat/Lepi') print( 'RoR of ERG/LEPi: https://ergsc.isee.nagoya-u.ac.jp/mw/index.php/ErgSat/Lepi#Rules_of_the_Road') print('') print('Contact: erg_lepi_info at isee.nagoya-u.ac.jp') print( '**************************************************************************') except: print('printing PI info and rules of the road was failed') if initial_notplot_flag or downloadonly: return loaded_data if (datatype == 'omniflux') and (level == 'l2'): tplot_variables = [] if prefix + 'FPDO' + suffix in loaded_data: store_data(prefix + 'FPDO' + suffix, newname=prefix + 'FPDO_raw' + suffix) loaded_data.append(prefix + 'FPDO_raw' + suffix) get_data_vars = get_data(prefix + 'FPDO_raw' + suffix) flag_FPDO = store_data(prefix + 'FPDO' + suffix, data={'x': get_data_vars[0], 'y': get_data_vars[1][:, :-2], 'v': get_data_vars[2][:-2]}) tplot_variables.append(prefix + 'FPDO' + suffix) if prefix + 'FHEDO' + suffix in loaded_data: store_data(prefix + 'FHEDO' + suffix, newname=prefix + 'FHEDO_raw' + suffix) loaded_data.append(prefix + 'FHEDO_raw' + suffix) get_data_vars = get_data(prefix + 'FHEDO_raw' + suffix) store_data(prefix + 'FHEDO' + suffix, data={'x': get_data_vars[0], 'y': get_data_vars[1][:, :-2], 'v': get_data_vars[2][:-2]}) tplot_variables.append(prefix + 'FHEDO' + suffix) if prefix + 'FODO' + suffix in loaded_data: store_data(prefix + 'FODO' + suffix, newname=prefix + 'FODO_raw' + suffix) loaded_data.append(prefix + 'FODO_raw' + suffix) get_data_vars = get_data(prefix + 'FODO_raw' + suffix) store_data(prefix + 'FODO' + suffix, data={'x': get_data_vars[0], 'y': get_data_vars[1][:, :-2], 'v': get_data_vars[2][:-2]}) tplot_variables.append(prefix + 'FODO' + suffix) # remove minus valuse of y array if flag_FPDO: clip(prefix + 'FPDO' + suffix, 0., 2.e+16) # set ytitle options(tplot_variables, 'ytitle', 'LEPi\nomniflux\nLv2\nEnergy') # set ysubtitle options(tplot_variables, 'ysubtitle', '[keV/q]') # set spectrogram plot option options(tplot_variables, 'Spec', 1) # set y axis to logscale options(tplot_variables, 'ylog', 1) for i in range(len(tplot_variables)): # set ylim ylim(tplot_variables[i], 0.01, 25.0) # set zlim zlim(tplot_variables[i], 1e+1, 1e+9) # set ztitle options(tplot_variables, 'ztitle', '[/cm^2-str-s-keV]') # set z axis to logscale options(tplot_variables, 'zlog', 1) # change colormap option options(tplot_variables, 'Colormap', 'jet') elif (datatype == '3dflux') and (level == 'l2') and (not notplot): vns_fidu = [ 'FPDU', 'FPDU_sub', 'FHEDU', 'FHEDU_sub', 'FODU', 'FODU_sub'] vns_fiedu = [ 'FPEDU', 'FPEDU_sub', 'FHEEDU', 'FHEEDU_sub', 'FOEDU', 'FOEDU_sub'] vns_cnt = ['FPDU_COUNT_RAW','FPDU_COUNT_RAW_sub', 'FHEDU_COUNT_RAW','FHEDU_COUNT_RAW_sub', 'FODU_COUNT_RAW', 'FODU_COUNT_RAW_sub'] vns_list = vns_fidu + vns_fiedu + vns_cnt v2_array_for_not_sub = np.arange(8) v2_array_for_sub = np.arange(7) + 8 v3_array = np.arange(16) for vns_pattarn in vns_list: t_plot_name = prefix + vns_pattarn + suffix if t_plot_name in loaded_data: tcopy(t_plot_name, t_plot_name + '_raw') get_data_vars_temporal = get_data(t_plot_name) meta_data_in = get_data(t_plot_name, metadata=True) if 'sub' in t_plot_name: store_data(t_plot_name,data={'x':get_data_vars_temporal[0], 'y':get_data_vars_temporal[1][:,0:30,:,:], 'v1':get_data_vars_temporal[2][0:30], 'v2':v2_array_for_sub, 'v3':v3_array}, attr_dict=meta_data_in) else: store_data(t_plot_name,data={'x':get_data_vars_temporal[0], 'y':get_data_vars_temporal[1][:,0:30,:,:], 'v1':get_data_vars_temporal[2][0:30], 'v2':v2_array_for_not_sub, 'v3':v3_array}, attr_dict=meta_data_in) ylim(t_plot_name, 0.01, 30.) options(t_plot_name, 'ylog', 1) options(t_plot_name, 'zlog', 1) """comment out in order to match the result of part_product of IDL. if prefix + 'FPDU' + suffix in loaded_data: clip(prefix + 'FPDU' + suffix, -1.0e+10, 1.0e+10) if prefix + 'FHEDU' + suffix in loaded_data: clip(prefix + 'FHEDU' + suffix, -1.0e+10, 1.0e+10) if prefix + 'FODU' + suffix in loaded_data: clip(prefix + 'FODU' + suffix, -1.0e+10, 1.0e+10)""" elif level == 'l3': tplot_variables = [] if prefix + 'FPDU' + suffix in loaded_data: tplot_variables.append(prefix + 'FPDU' + suffix) get_data_vars = get_data(prefix + 'FPDU' + suffix) ylim(prefix + 'FPDU' + suffix, 0, 180) zlim(prefix + 'FPDU' + suffix, 1e2, 1e5) options(prefix + 'FPDU' + suffix, 'spec', 1) ytitle_keV_array = np.round(np.nan_to_num(get_data_vars[2]), 2) for i in range(get_data_vars[1].shape[1]): tplot_name = prefix + 'pabin_' + \ str(i).zfill(2) + '_FPDU' + suffix store_data(tplot_name, data={'x': get_data_vars[0], 'y': get_data_vars[1][:, i, :], 'v': get_data_vars[3]}) options(tplot_name, 'spec', 1) ylim(tplot_name, 0, 180) zlim(tplot_name, 1e2, 1e5) options(tplot_name, 'ytitle', 'ERG LEP-i P\n' + str(ytitle_keV_array[i]) + ' keV\nPitch angle') tplot_variables.append(tplot_name) loaded_data += tplot_variables[1:] tplot_variables_length = len(tplot_variables) if prefix + 'FHEDU' + suffix in loaded_data: tplot_variables.append(prefix + 'FHEDU' + suffix) get_data_vars = get_data(prefix + 'FHEDU' + suffix) options(prefix + 'FHEDU' + suffix, 'spec', 1) ylim(prefix + 'FHEDU' + suffix, 0, 180) zlim(prefix + 'FHEDU' + suffix, 1e2, 1e5) ytitle_keV_array = np.round(np.nan_to_num(get_data_vars[2]), 2) for i in range(get_data_vars[1].shape[1]): tplot_name = prefix + 'pabin_' + \ str(i).zfill(2) + '_FHEDU' + suffix store_data(tplot_name, data={'x': get_data_vars[0], 'y': get_data_vars[1][:, i, :], 'v': get_data_vars[3]}) options(tplot_name, 'spec', 1) ylim(tplot_name, 0, 180) zlim(tplot_name, 1e2, 1e5) options(tplot_name, 'ytitle', 'ERG LEP-i P\n' + str(ytitle_keV_array[i]) + ' keV\nPitch angle') tplot_variables.append(tplot_name) loaded_data += tplot_variables[tplot_variables_length + 1:] tplot_variables_length = len(tplot_variables) if prefix + 'FODU' + suffix in loaded_data: tplot_variables.append(prefix + 'FODU' + suffix) get_data_vars = get_data(prefix + 'FODU' + suffix) options(prefix + 'FODU' + suffix, 'spec', 1) ylim(prefix + 'FODU' + suffix, 0, 180) zlim(prefix + 'FODU' + suffix, 1e2, 1e5) ytitle_keV_array = np.round(np.nan_to_num(get_data_vars[2]), 2) for i in range(get_data_vars[1].shape[1]): tplot_name = prefix + 'pabin_' + \ str(i).zfill(2) + '_FODU' + suffix store_data(tplot_name, data={'x': get_data_vars[0], 'y': get_data_vars[1][:, i, :], 'v': get_data_vars[3]}) options(tplot_name, 'spec', 1) ylim(tplot_name, 0, 180) zlim(tplot_name, 1e2, 1e5) options(tplot_name, 'ytitle', 'ERG LEP-i P\n' + str(ytitle_keV_array[i]) + ' keV\nPitch angle') tplot_variables.append(tplot_name) loaded_data += tplot_variables[tplot_variables_length + 1:] options(tplot_variables, 'zlog', 1) options(tplot_variables, 'ysubtitle', 'PA [deg]') options(tplot_variables, 'colormap', 'jet') options(tplot_variables, 'ztitle', '[/s-cm^{2}-sr-keV/q]') return loaded_data