Template
89 lines
3.1 KiB
Python
Executable File
89 lines
3.1 KiB
Python
Executable File
"""
|
|
run from ./programs/
|
|
|
|
processes all LOG0*.TXT files
|
|
~/Airplane_Data_Logger/Nnumber Data/flights/-date-/
|
|
|
|
"""
|
|
|
|
import glob
|
|
import os
|
|
import argparse
|
|
|
|
#PLANE="Nnumber"
|
|
PLANE="N72KH"
|
|
|
|
def prepare(date):
|
|
print("splitting logs")
|
|
pathstring="../%s Data/flights/%s/%s_combined_%s/" %(PLANE,date,PLANE,date) # combined log
|
|
fl=glob.glob(pathstring+"L*")
|
|
for f in fl: # file in filelist
|
|
os.rename(f, f.upper())
|
|
fn=os.path.splitext(f.upper())[0] # fn = filename
|
|
# tr bsd command = translate characters \r -> \n
|
|
cmd="LC_CTYPE=C tr -s '\r' '\n' < '%s' > '%s'" % (f.upper(),fn+"N.TXT")
|
|
os.system(cmd)
|
|
# run log_splitter.py on the translated file (fn+"N")
|
|
cmd="python ./log_splitter.py '%s.TXT'" % (fn+"N")
|
|
os.system(cmd)
|
|
# NOW MOVE FILES TO CORRECT DIRECTORY
|
|
pi=[i for i, c in enumerate(f) if c =='/']
|
|
cmd="mv '%sN_E.TXT' '%s/%s_EMS_%s/'" % (fn,f[:pi[-2]],PLANE,date)
|
|
os.system(cmd)
|
|
cmd="mv '%sN_F.TXT' '%s/%s_EFIS_%s/'" % (fn,f[:pi[-2]],PLANE,date)
|
|
os.system(cmd)
|
|
cmd="mv '%sN_G.TXT' '%s/%s_GPS_%s/'" % (fn,f[:pi[-2]],PLANE,date)
|
|
os.system(cmd)
|
|
|
|
def process(date,logs):
|
|
if logs=='all' or logs=='ems':
|
|
print("processing EMS")
|
|
#sp="../%s Data/flights/%s/%s_EIS_%s/" %(PLANE,date,PLANE,date) # GRT EIS
|
|
pathstring="../%s Data/flights/%s/%s_EMS_%s/" %(PLANE,date,PLANE,date) # Dynon EMS
|
|
fl=glob.glob(pathstring+"LOG0*.TXT")
|
|
for f in fl:
|
|
fn=f.split("/")[-1].split(".")[0] # filename
|
|
# s="python ./eis_bin2csv.py '%s%s.TXT' > '%s%s.csv'" % (sp,fn,sp,fn) # GRT EIS
|
|
cmd="python ./ems2csv.py '%s%s.TXT' > '%s%s.csv'" % (pathstring,fn,pathstring,fn) # Dynon EMS
|
|
os.system(cmd)
|
|
|
|
if logs=='all' or logs=='efis':
|
|
print("processing EFIS")
|
|
pathstring="../%s Data/flights/%s/%s_EFIS_%s/" %(PLANE,date,PLANE,date)
|
|
fl=glob.glob(pathstring+"LOG0*.TXT")
|
|
for f in fl:
|
|
fn=f.split("/")[-1].split(".")[0] # filename
|
|
cmd="python ./efis2csv.py '%s%s.TXT' > '%s%s.csv'" % (pathstring,fn,pathstring,fn)
|
|
os.system(cmd)
|
|
|
|
if logs=='all' or logs=='gps':
|
|
print("processing GPS")
|
|
pathstring="../%s Data/flights/%s/%s_GPS_%s/" %(PLANE,date,PLANE,date) # path
|
|
fl=glob.glob(pathstring+"LOG0*.TXT") # file list
|
|
for f in fl:
|
|
fn=f.split("/")[-1].split(".")[0] # filename
|
|
s="python ./gps_formatter.py '%s%s.TXT' > '%s%s.csv'" % (pathstring,fn,pathstring,fn)
|
|
os.system(s)
|
|
cmd="./gps_convert.sh \"%s%s.csv\" \"%s%s.kml\"" % (pathstring,fn,pathstring,fn)
|
|
#print s
|
|
os.system(cmd)
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description='Process all log files')
|
|
parser.add_argument('date',
|
|
help='folder date (e.g. 2nov2017)')
|
|
parser.add_argument('logname', nargs='?', default='all',
|
|
help='{gps | ems | efis | all}')
|
|
|
|
args = parser.parse_args()
|
|
|
|
prepare(args.date)
|
|
process(args.date,args.logname)
|
|
|
|
|
|
|
|
if __name__=="__main__":
|
|
main()
|
|
|