def velocity_data(start_date, end_date):
    # FPI DIS
    sc = 'mms1'
    mode = 'srvy'
    level = 'l2'
    fpi_mode = 'fast'
    ni_vname = '_'.join((sc, 'dis', 'numberdensity', fpi_mode))
    espec_i_vname = '_'.join((sc, 'dis', 'energyspectr', 'omni', fpi_mode))
    BV_vname = '_'.join((sc, 'dis', 'bulkv_gse', fpi_mode))
    mms = tto.MrMMS_SDC_API(sc, 'fpi', fpi_mode, level,
                            optdesc='dis-moms',
                            start_date=start_date, end_date=end_date)
    files = mms.download_files()
    files = tto.sort_files(files)[0]

    ni_data = ff.cdf_to_df(files,ni_vname)
    # start_date, end_date)
    # especi_data = tto.from_cdflib(files, espec_i_vname,
    #                               start_date, end_date)
    BV_data = ff.cdf_to_df(files, BV_vname)  # tto.from_cdflib(files, BV_vname,
    # start_date, end_date)
    BVX_data = features(BV_data['mms1_dis_bulkv_gse_fast_0'])
    BVY_data = features(BV_data['mms1_dis_bulkv_gse_fast_1'])
    BVZ_data = features(BV_data['mms1_dis_bulkv_gse_fast_2'])
    density = features(ni_data['mms1_dis_numberdensity_fast'])
    return BVX_data, BVY_data, BVZ_data, density
def anis_temp(start_date, end_date):
    sc = 'mms1'
    mode = 'srvy'
    level = 'l2'
    fpi_mode = 'fast'
    Tpara_vname = '_'.join((sc, 'des', 'temppara', 'fast'))
    mms = tto.MrMMS_SDC_API(sc, 'fpi', fpi_mode, level, optdesc='des-moms', start_date=start_date,
                            end_date=end_date)
    files = mms.download_files()
    files = tto.sort_files(files)[0]
    tpara = ff.cdf_to_df(files, Tpara_vname)

    sc = 'mms1'
    mode = 'srvy'
    level = 'l2'
    fpi_mode = 'fast'
    Tperp_vname = '_'.join((sc, 'des', 'tempperp', 'fast'))
    mms = tto.MrMMS_SDC_API(sc, 'fpi', fpi_mode, level, optdesc='des-moms', start_date=start_date,
                            end_date=end_date)
    files = mms.download_files()
    files = tto.sort_files(files)[0]
    tperp = ff.cdf_to_df(files, Tperp_vname)
    tanis = []
    tscalar = []
    tanis = features((1 - (tperp.div(tpara))))  # features
    tscalar = features((tpara.add(tperp).div(3)))  # features
    return tanis, tscalar
def temp_perp_data(start_date, end_date):
    sc = 'mms1'
    mode = 'srvy'
    level = 'l2'
    fpi_mode = 'fast'
    Tperp_vname = '_'.join((sc, 'des', 'tempperp', 'fast'))
    mms = tto.MrMMS_SDC_API(sc, 'fpi', fpi_mode, level, optdesc='des-moms', start_date=start_date,
                            end_date=end_date)
    files = mms.download_files()
    files = tto.sort_files(files)[0]
    Tempperp_data = ff.cdf_to_df(files, Tperp_vname)  # tto.from_cdflib(files, Tperp_vname, start_date, end_date)
    tperp = features(Tempperp_data['mms1_des_tempperp_fast'])
    return tperp
def Pressure_data(start_date, end_date):
    sc = 'mms1'
    mode = 'srvy'
    level = 'l2'
    fpi_mode = 'fast'
    Pressure_vname = '_'.join((sc, 'des', 'prestensor_gse', 'fast'))
    mms = tto.MrMMS_SDC_API(sc, 'fpi', fpi_mode, level, optdesc='des-moms', start_date=start_date,
                            end_date=end_date)
    files = mms.download_files()
    files = tto.sort_files(files)[0]
    Pressure_data = ff.cdf_to_df(files,
                                 Pressure_vname)  # tto.from_cdflib(files, Pressure_vname, start_date, end_date)
    pscalar = features((Pressure_data['mms1_des_prestensor_gse_fast_1'] + Pressure_data[
        'mms1_des_prestensor_gse_fast_2'] + Pressure_data['mms1_des_prestensor_gse_fast_3']) / 3)
    return pscalar
def fgm_data(start_date, end_date):
    sc = 'mms1'
    mode = 'srvy'
    level = 'l2'

    # FGM
    b_vname = '_'.join((sc, 'fgm', 'b', 'gse', mode, level))
    mms = tto.MrMMS_SDC_API(sc, 'fgm', mode, level,
                            start_date=start_date, end_date=end_date)
    files = mms.download_files()
    files = tto.sort_files(files)[0]

    fgm_data = ff.cdf_to_df(files, b_vname)  # tto.from_cdflib(files, b_vname,
    # start_date, end_date)

    # fgm_data['data'] = fgm_data['data'][:, [3, 0, 1, 2]]
    # fgm_data['color'] = ['Black', 'Blue', 'Green', 'Red']
    # fgm_data[fgm_data['LABL_PTR_1']]['data'] = ['|B|', 'Bx', 'By', 'Bz']
    fgmabs_data = features(fgm_data['mms1_fgm_b_gse_srvy_l2_0'])
    fgmx_data = features(fgm_data['mms1_fgm_b_gse_srvy_l2_1'])
    fgmy_data = features(fgm_data['mms1_fgm_b_gse_srvy_l2_2'])
    fgmz_data = features(fgm_data['mms1_fgm_b_gse_srvy_l2_3'])
    return fgmabs_data, fgmx_data, fgmy_data, fgmz_data