#! /usr/local/bin/perl

# generate station info from core data file

$file = "yolo.database.info";

# read in file and extract sitename, receiver type, receiver f/w,
# antenna type, height.

@receivers = ('ASHTECH', 'LEICA', 'SSE', 'SSI');
@antennas  = ('ASHTECH', 'LEIAT303', 'SSE', 'SST', 'TR GEOD');
@firmwares = ('1C00', '1I00', '2J00', '3J00', '4J00', '5.63', '5.53', '7.15', '7.22', '7.24', '7.25', '7.26', '7.27', '7.28', '7.29', 'UNKNOWN');


# set GAMIT codes

%receivers = (
	'ASHTECH', 'ASHZ12',
	'LEICA', 'SR9500',
	'SSE', 'TRMSSE',
	'SSI', 'TRMSSI'
);

%antennas = (
	'ASHTECH', 'ASHGD3',
	'LEIAT303', 'LEIDMG',
	'SSE', 'TRMSSE',
	'SST', 'TRMSST', 
	'TR GEOD', 'TRMSSE'
);

%firmwares = (
	'1C00', '8.00',
	'1I00', '8.70',
	'2J00', '8.70',
	'3J00', '8.70',
	'4J00', '8.70',
	'5.63', '5.63',
	'5.53', '5.53',
	'7.15', '7.15',
	'7.22', '7.22',
	'7.24', '7.24',
	'7.25', '7.25',
	'7.26', '7.26',
	'7.27', '7.27',
	'7.28', '7.28',
	'7.29', '7.29',
	'UNKNOWN', '1.23'
);
	


open(IN, "$file");

while(<IN>){
	undef($REC); undef($ANT); undef($FW); undef($ant_ht);
	if($_ =~ /lg-rcrin/){
		# receiver information
		($site, $year, $day, $tmp1, $rec_tp, $rec_fw) = unpack("A4A4A3A11A30A30", $_);
		$yr = substr($year, 2, 2);
		$key = join("::", uc($site), $yr, $day);
		# get receiver type
		foreach $rec (@receivers){
			if($_ =~ /$rec/){
				$REC = $rec;
                                last;
			}
		}
		# got receiver type, now translate into GAMIT code
		$rec_gamit{$key} = $receivers{$REC};
		# get firmware
		foreach $fw (@firmwares){
			if($_ =~ /$fw/){
				$FW = $fw;
				last;
			}
		}
		# got firmware, now translate into GAMIT code
		$fw_gamit{$key} = $firmwares{$FW};
	}
	if($_ =~ /lg-antin/){
		# antenna information
		($site, $year, $day, $tmp1, $ant_tp) = unpack("A4A4A3A11A30", $_);
		$yr = substr($year, 2, 2);
                $key = join("::", uc($site), $yr, $day);
		# get antenna type
		foreach $ant (@antennas){
                        if($_ =~ /$ant/){
				$ANT = $ant;
                                last;
			}
                }
		# got antenna type, now translate into GAMIT code
		$ant_gamit{$key} = $antennas{$ANT};
	}
	if($_ =~ /lg-hvasm/){
		# antenna height
		($site, $year, $day, $tmp1, $ant_ht) = unpack("A4A4A3A11A7", $_);
		$yr = substr($year, 2, 2);
                $key = join("::", uc($site), $yr, $day);
		$ht_gamit{$key} = $ant_ht;
	}
}

# got all data, now generate station.info

# first header

printf<<EOF;
pgga pgga
(A1,2(A4,1X),A16,F7.4,2(1X,F8.4),2(1X,A6),1x,a5,1X,F5.2,1X,I2,1X,I3,1x,i2,6(1X,I2))  
TRCK SITE Station Name     Ant Ht   Ant N    Ant E  Rcvr   AntCod HtCod  Vers Yr Doy SN Start    Stop
*
* Automatically generated station.info for use in YOLO 1999.
* Master file: yolo.database.info
* mvandomselaar\@ucsd.edu 13-JUL-1999
*
EOF

foreach $key (sort keys %ant_gamit){
	($site, $yr, $day) = split(/::/, $key);
	printf(" %4s %4s %15s %7.4f   0.0000   0.0000 %6s %6s DHPAB %5.2f %2.0f %3.0f  0 00 00 00 24 00 00\n", $site, $site, $site, $ht_gamit{$key}, $rec_gamit{$key}, $ant_gamit{$key}, $fw_gamit{$key}, $yr, $day);
}



		
		
