awkhold:
BEGIN { FS = "," } { FS = "," ARGC = 2 depth = -9999 temp = -9999 if ($1=="$GPRMC") { utctime = $2 utcdate = $10 latdeg = substr($4,1,2) latmin = substr($4,3,6) declat = latdeg + (latmin/60) londeg = substr($6,1,3) lonmin = substr($6,4,6) declon = -1 * (londeg + (lonmin/60)) if (NR==1) { holddepth = -9999 holdtemp = -9999 } else { printf("%s, %s, %9.6f, %9.6f, %5.1f, %5.1f, %s\n", holdutctime, holdutcdate, holddeclon, holddeclat, holddepth, holdtemp, ARGV[2]) } holdutctime = utctime holdutcdate = utcdate holddeclon = declon holddeclat = declat holddepth = -9999 holdtemp = -9999 } if ($1=="$SDDPT") { depthreal = $2 holddepth = depthreal } if ($1=="$SDMTW") { tempreal = $2 holdtemp = tempreal } } END { printf("%s, %s, %9.6f, %9.6f, %5.1f, %5.1f, %s\n", holdutctime, holdutcdate, holddeclon, holddeclat, holddepth, holdtemp, ARGV[2]) }This file was executed by a shell script to effectively batch process all the files in a single folder with the extension gps. The batch processor was dohold.
dohold:
files=`ls *.gps | cut -d. -f1 | tr "[A-Z"] ["a-z"]` for file in $files do awk -f awkhold $file.gps $file > $file.holds doneUnder Cygwin, all of the *.holds files were concatenated into a single comma-delimited text file and a header line added to the file. The header line added to the text file was: gpstime, gpsdate, longitude, latitude, depth_m, temp_c, line. Using ArcMap 9.2 - Tools - Add XY Data, the comma-delimited text file was added as an event theme to ArcMap. Quick visual inspection spotted erroneous navigation fixes. These fixes were then deleted from the original GPS files. These edits were performed on L6F1, L6F7, and L7F7. The modified GPS files had "_mod" appended to the prefix of the filename.
awknewgps:
BEGIN { FS="," } { FS="," alltime=$1 alldate=$2 tempc=$5 depth=$7 outfile=$6 "_newgps.gps" declon=$3 * -1 londeg=int(declon) lonmin=(declon-londeg)*60 declat=$4 latdeg=int(declat) latmin=(declat-latdeg)*60 printf("$GPRMC,%06d,A,%02d%06.3f,N,%03d%06.3f,W,000.0,0,%06d,0,W*73\n",alltime,latdeg,latmin,londeg,lonmin,alldate) >> outfile printf("$SDDPT,%s,0.0*56\n",depth) >> outfile if (tempc != -9999) { printf("$SDMTW,%s,C*01\n",tempc) >> outfile } }Effectively what this script does is not only format the GPS file, but also output the information to the appropriate filename (which is based on the line name).