#!/usr/bin/env python # Purpose: To put gld360 strokes in chronological order # # Usage: sort_gld360_strokes.py # Example: sort_gld360_strokes.py ltnglr.ascii ltnglr_2.ascii import sys print ('Ordering GLD360 Stroke Data') print ('') # Check the arguments being passed to this script nargs = len(sys.argv) if nargs < 3: print ('Usage: sort_gld360_strokes.py infile outfile') quit() in_file = sys.argv[1] out_file = sys.argv[2] # Open the Total Lightning data file f = open(in_file, 'r') # Initialize lists mon=[] day=[] year=[] hh=[] mm=[] ss=[] lat=[] lon=[] amp=[] stp=[] nret=[] # Now, Read each line from ltg ascii file for line in f: split_line = line.split(",") mon.append(split_line[0]) day.append(split_line[1]) year.append(split_line[2]) hh.append(int(split_line[3])) mm.append(int(split_line[4])) ss.append(int(split_line[5])) lat.append(float(split_line[6])) lon.append(float(split_line[7])) amp.append(int(split_line[8])) stp.append(int(split_line[10])) nret.append(int(split_line[11])) n = len(mon) ############################################################## # Put strokes in chronological order time_flash = [] for k in range(len(hh)): time = hh[k] + (mm[k]/60.) + (ss[k]/3600.) time_flash.append(time) index2 = sorted(range(len(time_flash)),key=lambda x:time_flash[x]) mon_sorted = [] day_sorted = [] year_sorted = [] time_sorted = [] hh_sorted = [] mm_sorted = [] ss_sorted = [] lat_sorted = [] lon_sorted = [] amp_sorted = [] stp_sorted = [] nret_sorted = [] for k in index2: time_sorted.append(time_flash[k]) mon_sorted.append(mon[k]) day_sorted.append(day[k]) year_sorted.append(year[k]) hh_sorted.append(hh[k]) mm_sorted.append(mm[k]) ss_sorted.append(ss[k]) lat_sorted.append(lat[k]) lon_sorted.append(lon[k]) amp_sorted.append(amp[k]) stp_sorted.append(stp[k]) nret_sorted.append(nret[k]) mon_flash = mon_sorted day_flash = day_sorted year_flash = year_sorted hh_flash = hh_sorted mm_flash = mm_sorted ss_flash = ss_sorted lat_flash = lat_sorted lon_flash = lon_sorted amp_flash = amp_sorted stp_flash = stp_sorted nret_flash = nret_sorted ############################################################## # Open a new file for writing a = open(out_file, 'w') for x in range(len(mon_flash)): mon = mon_flash[x] day = day_flash[x] year = year_flash[x] hh = hh_flash[x] mm = mm_flash[x] ss = ss_flash[x] lat = lat_flash[x] lon = lon_flash[x] amp = amp_flash[x] # nret = nret_flash[x] stp = stp_flash[x] nret = 1 str_hh = str(hh) if hh < 10: str_hh = "0" + str_hh str_mm = str(mm) if mm < 10: str_mm = "0" + str_mm str_ss = str(ss) if ss < 10: str_ss = "0" + str_ss # stype=2 # stype=0 stype = str(stp) a.write('%2s %2s %2s %2s %2s %2s%8.3f%9.3f%8.1f kA %1s %3i\n' % \ (mon,day,year,str_hh,str_mm,str_ss,lat,lon,amp,stype,nret)) # a.write('%2s %2s %2s %2s %2s %2s%8.3f%9.3f%8.1f kA %1s %3i\n' % \ # (mon,day,year,str_hh,str_mm,str_ss,lat,lon,amp,stype,nret))