42 lines
1.2 KiB
Text
42 lines
1.2 KiB
Text
|
|
V nodata = 0
|
|||
|
|
V nodata_max = -1
|
|||
|
|
[String] nodata_maxline
|
|||
|
|
V tot_file = 0.0
|
|||
|
|
V num_file = 0
|
|||
|
|
|
|||
|
|
:start:
|
|||
|
|
L(line) File(:argv[1]).read().rtrim("\n").split("\n")
|
|||
|
|
V tot_line = 0.0
|
|||
|
|
V num_line = 0
|
|||
|
|
|
|||
|
|
V field = line.split("\t")
|
|||
|
|
V date = field[0]
|
|||
|
|
V data = field[(1..).step(2)].map(f -> Float(f))
|
|||
|
|
V flags = field[(2..).step(2)].map(f -> Int(f))
|
|||
|
|
|
|||
|
|
L(datum, flag) zip(data, flags)
|
|||
|
|
I flag < 1
|
|||
|
|
nodata++
|
|||
|
|
E
|
|||
|
|
I nodata_max == nodata & nodata > 0
|
|||
|
|
nodata_maxline.append(date)
|
|||
|
|
I nodata_max < nodata & nodata > 0
|
|||
|
|
nodata_max = nodata
|
|||
|
|
nodata_maxline = [date]
|
|||
|
|
nodata = 0
|
|||
|
|
tot_line += datum
|
|||
|
|
num_line++
|
|||
|
|
|
|||
|
|
tot_file += tot_line
|
|||
|
|
num_file += num_line
|
|||
|
|
|
|||
|
|
print(‘Line: #11 Reject: #2 Accept: #2 Line_tot: #6.3 Line_avg: #6.3’.format(
|
|||
|
|
date, data.len - num_line, num_line, tot_line, I (num_line > 0) {tot_line / num_line} E 0))
|
|||
|
|
|
|||
|
|
print()
|
|||
|
|
print(‘File(s) = #.’.format(:argv[1]))
|
|||
|
|
print(‘Total = #6.3’.format(tot_file))
|
|||
|
|
print(‘Readings = #6’.format(num_file))
|
|||
|
|
print(‘Average = #6.3’.format(tot_file / num_file))
|
|||
|
|
print("\nMaximum run(s) of #. consecutive false readings ends at line starting with date(s): #.".format(nodata_max, nodata_maxline.join(‘, ’)))
|