1*c0b746e5SOllivier Robert# program to produce loran tdata statistics from clockstats files 2*c0b746e5SOllivier Robert# 3*c0b746e5SOllivier Robert# usage: awk -f tdata.awk clockstats 4*c0b746e5SOllivier Robert# 5*c0b746e5SOllivier Robert# format of input record (missing replaced by -40.0) 6*c0b746e5SOllivier Robert# 49228 36.852 127.127.10.1 93:241:00:00:20.812 LORAN TDATA 7*c0b746e5SOllivier Robert# M OK 0 0 1169.14 -7.4 3.16E-07 .424 8*c0b746e5SOllivier Robert# W CV 0 0 3329.30 -16.4 1.81E-06 9*c0b746e5SOllivier Robert# X OK 0 0 1737.19 -10.5 3.44E-07 .358 10*c0b746e5SOllivier Robert# Y OK 0 0 2182.07 -9.0 4.41E-07 .218 11*c0b746e5SOllivier Robert# 12*c0b746e5SOllivier Robert# format of output record (time in nanoseconds, signal values in dB) 13*c0b746e5SOllivier Robert# MJD sec time M W X Y Z 14*c0b746e5SOllivier Robert# 49228 36.852 175.0 -7.4 -16.4 -10.5 -9.0 15*c0b746e5SOllivier Robert# 16*c0b746e5SOllivier Robert# select LORAN TDATA records with valid format 17*c0b746e5SOllivier Robert{ 18*c0b746e5SOllivier Robert if (NF >= 7 && $6 == "TDATA") { 19*c0b746e5SOllivier Robert m = w = x = y = z = -40.0 20*c0b746e5SOllivier Robert for (i = 7; i < NF - 5; i++) { 21*c0b746e5SOllivier Robert if ($i == "M" && $(i+1) == "OK") { 22*c0b746e5SOllivier Robert i += 5 23*c0b746e5SOllivier Robert m = $i 24*c0b746e5SOllivier Robert } 25*c0b746e5SOllivier Robert else if ($i == "W" && $(i+1) == "OK") { 26*c0b746e5SOllivier Robert i += 5 27*c0b746e5SOllivier Robert w = $i 28*c0b746e5SOllivier Robert } 29*c0b746e5SOllivier Robert else if ($i == "X" && $(i+1) == "OK") { 30*c0b746e5SOllivier Robert i += 5 31*c0b746e5SOllivier Robert x = $i 32*c0b746e5SOllivier Robert } 33*c0b746e5SOllivier Robert else if ($i == "Y" && $(i+1) == "OK") { 34*c0b746e5SOllivier Robert i += 5 35*c0b746e5SOllivier Robert y = $i 36*c0b746e5SOllivier Robert } 37*c0b746e5SOllivier Robert else if ($i == "Z" && $(i+1) == "OK") { 38*c0b746e5SOllivier Robert i += 5 39*c0b746e5SOllivier Robert z = $i 40*c0b746e5SOllivier Robert } 41*c0b746e5SOllivier Robert } 42*c0b746e5SOllivier Robert printf "%5s %9.3f %6.1f %6.1f %6.1f %6.1f %6.1f\n", $1, $2, m, w, x, y, z 43*c0b746e5SOllivier Robert } 44*c0b746e5SOllivier Robert} 45*c0b746e5SOllivier Robert 46