oData['Surf'][ 'posTE1Sym'] = oData['Surf']['posTE1L'] + oData['Surf']['posTE1R'] oData['Surf'][ 'posTE2Sym'] = oData['Surf']['posTE2L'] + oData['Surf']['posTE2R'] oData['Surf'][ 'posTE3Sym'] = oData['Surf']['posTE3L'] + oData['Surf']['posTE3R'] oData['Surf'][ 'posTE4Sym'] = oData['Surf']['posTE4L'] + oData['Surf']['posTE4R'] oData['Surf'][ 'posTE5Sym'] = oData['Surf']['posTE5L'] + oData['Surf']['posTE5R'] oData['Surf'][ 'posLESym'] = oData['Surf']['posLEL'] + oData['Surf']['posLER'] # Segments seg = OpenData.Segment(oData, rtsmSeg['seg']) oDataSegs.append(seg) # plt.plot(seg['time_s'], seg['Excitation']['cmdTE1L_rad'], seg['time_s'], seg['Excitation']['cmdTE2L_rad'], seg['time_s'], seg['measBend'], seg['time_s'], seg['measPitch']) plt.plot(seg['time_s'], seg['measPitch'], seg['time_s'], seg['measBend']) #%% sigInList = ['cmdTE1Sym_rad', 'cmdTE3Sym_rad', 'cmdTE5Sym_rad'] #sigInList = ['cmdTE2Sym_rad', 'cmdTE4Sym_rad', 'cmdLESym_rad'] #sigInList = ['posTE1Sym', 'posTE3Sym', 'posTE5Sym'] #sigInList = ['cmdRoll_rps', 'cmdPitch_rps', 'cmdBend_nd'] sigOutList = ['measPitch', 'measBend'] freqExc_rps = []
for flt in fileList.keys(): fileLog = fileList[flt]['log'] fileConfig = fileList[flt]['config'] fileDef = fileList[flt]['def'] fltDef = Loader.JsonRead(fileDef) for testPt in fltDef['Test-Points']: if testPt['Excitation'] == ExcName: # Load Flight Log oData, h5Data = Loader.Log_RAPTRS(fileLog, fileConfig) t0 = testPt['time_us'][0] * 1e-6 tf = t0 + (2 * np.pi) + 2.0 ODataSeg = OpenData.Segment(oData, ('time_s', [t0, tf])) oDataList.append(ODataSeg) seg = { 'flt': flt, 'seg': ('time_us', testPt['time_us']), 'Desc': '{:.2f}'.format(ODataSeg['vIas_mps'].mean()) + ' m/s' } segList.append(seg) # Add Description to each segment #segList = # [{'flt': 'FLT03', 'seg': ('time_us', [645277887, 669278251]), 'Desc': '23.54 m/s'}, # {'flt': 'FLT03', 'seg': ('time_us', [828338096, 839997973]), 'Desc': '19.78 m/s'}, # {'flt': 'FLT04', 'seg': ('time_us', [872601981, 882883356]), 'Desc': '25.76 m/s'},
#windSegList = [ # {'flt': 'FLT03', 'seg': ('time_us', [610000000, 741298701])}, # {'flt': 'FLT03', 'seg': ('time_us', [839997973, 925000000])}, # {'flt': 'FLT04', 'seg': ('time_us', [940469572, 957651007])} # ] oDataWindList = [] for windSeg in windSegList: fltNum = windSeg['flt'] fileLog = fileList[fltNum]['log'] fileConfig = fileList[fltNum]['config'] oData, h5Data = Loader.Log_RAPTRS(fileLog, fileConfig) oData = OpenData.Decimate(oData, 10) oDataWindList.append(OpenData.Segment(oData, windSeg['seg'])) fig, ax = plt.subplots(nrows=2) for oDataWind in oDataWindList: latGps_deg = oDataWind['rGps_D_ddm'][0] lonGps_deg = oDataWind['rGps_D_ddm'][1] latB_deg = oDataWind['rB_D_ddm'][0] lonB_deg = oDataWind['rB_D_ddm'][1] ax[0].plot(lonGps_deg, latGps_deg, '.', label='GPS') # ax[0].plot(lonB_deg, latB_deg, label='Ekf') ax[0].grid() ax[1].plot(oDataWind['time_s'], oDataWind['vIas_mps']) # ax[1].plot(oDataWind['time_s'], oDataWind['sB_L_rad'][0]*180.0/np.pi) ax[1].grid()
h5Data = Loader.Load_h5(fileLog) # RAPTRS log data as hdf5 sysConfig = Loader.JsonRead(fileConfig) oData = Loader.OpenData_RAPTRS(h5Data, sysConfig) oData['cmdRoll_FF'] = h5Data['Control']['cmdRoll_pidFF'] oData['cmdRoll_FB'] = h5Data['Control']['cmdRoll_pidFB'] oData['cmdPitch_FF'] = h5Data['Control']['cmdPitch_pidFF'] oData['cmdPitch_FB'] = h5Data['Control']['cmdPitch_pidFB'] oData['cmdYaw_FF'] = h5Data['Control']['refPsi_rad'] oData['cmdYaw_FB'] = h5Data['Control']['cmdYaw_damp_rps'] # Segments rtsmSeg['seg'][1][0] += 1e6 rtsmSeg['seg'][1][1] += -1e6 + 50e3 oDataSegs.append(OpenData.Segment(oData, rtsmSeg['seg'])) #%% sigExcList = ['cmdRoll_rps', 'cmdPitch_rps', 'cmdYaw_rps'] sigFbList = ['cmdRoll_FB', 'cmdPitch_FB', 'cmdYaw_FB'] sigFfList = ['cmdRoll_FF', 'cmdPitch_FF', 'cmdYaw_FF'] #sigSensList = ['wB_I_rps', 'cmdPitch_FF', 'cmdYaw_FF'] freqExc_rps = [] freqExc_rps.append(np.array( sysConfig['Excitation']['OMS_RTSM_1']['Frequency'])) freqExc_rps.append(np.array( sysConfig['Excitation']['OMS_RTSM_2']['Frequency'])) freqExc_rps.append(np.array( sysConfig['Excitation']['OMS_RTSM_3']['Frequency']))
pathBase = os.path.join('/home', 'rega0051', 'FlightArchive') ac = 'Huginn' flt = 'FLT03' fileLog = os.path.join(pathBase, ac, ac + flt, ac + flt + '.h5') fileTestDef = os.path.join(pathBase, ac, ac + flt, ac.lower() + '_def.json') fileSysConfig = os.path.join(pathBase, ac, ac + flt, ac.lower() + '.json') #%% # Read in raw h5 data into dictionary and data oData, h5Data = Loader.Log_RAPTRS(fileLog, fileSysConfig) # Plot Overview of flight #oData = OpenData.Segment(oData, ('time_s', [950, 970])) OpenData.PlotOverview(oData) #%% Find Excitation Times excList = OpenData.FindExcite(oData) segList = [] print('\n\nFlight Excitation Times:\n') for iExc in range(0, len(excList)): print('Excitiation: ', excList[iExc][0], ', Time: [', excList[iExc][1][0], ',', excList[iExc][1][1], ']') segList.append(('time_us', excList[iExc][1])) oDataExc = OpenData.Segment(oData, segList) #OpenData.PlotOverview(oDataExc[0]) #%% Save _init.json file