#!/opt/perl/bin/perl 
use strict;
use warnings;
use GPS::DATES;
use GOA::StaSvec;
use GPS::Defaults;
my $usage = qq{
	Usage : log2sta_svec site [agency] 
	site   : 4 char. site name
	agency : unavco,sopac,cors,panga,igscb (default: unavco)

    Example:
      log2sta_svec albh sopac 

      will generate the svec entries from the SOPAC site-log 
      using absolute phase centers (sta_info.abs)
};

my $site = lc shift || die "$usage";

my $agency = shift || "unavco";

my $SITE = uc $site;
my %par = get_defaults( );
my ($year, $mon, $mday, %recv); 
my ($idate,$rdate,$receiver,$serial,$firmware);
my $today = get_date( 'today', 'cal');
#agency : unavco,sopac,cors,panga,igscb (default: unavco)

my @output = `parse_log -s $site -a $agency \\
                        -section antenna \\
                        -field date,radome,ecc,height 2> /dev/null \\
                        | sed 's/^4.//' |sort -n`;
my $svec = GOA::StaSvec->new( );
$agency = uc $agency;
my %hr = ();
my ($a,$r)=('','');
foreach my $c ( @output ) {
	chomp($c);
	$c =~ s/\s+/ /g;
	my ($key,$field,$value)=split(/\:/,$c);
	$field = lc(trim($field));
	$value = uc(trim($value));
    #print "|$field|$value| |$c|\n";	
	if ( $field =~ /antenna type/ ) {
        $hr{ant_type} = pack 'A16', split ' ', $value;
    }
	if ( $field =~ /antenna radome/ ) {
          if (not defined $value) { $value = "NONE";}
	  if ($value =~ /\s+/) { $value = "NONE";}		
	  if ($value =~ /^$/) { $value = "NONE";}		
       $hr{radome} = pack 'a4',$value;
    }
    if ( $field =~ /date installed/ ) {
        $hr{date} = get_date($value,'cal');
    }
	if ( $field =~ /(up ecc|height)/ ) {
        $hr{height} = $value;
        $hr{sta_to} = $site ;
        $hr{sta_from} = $site ;
        $hr{igs_code} = sprintf "%-16s%4s",$hr{ant_type},$hr{radome};
        $hr{comment} = "|$hr{igs_code}| generated from $agency".
                       " site-log on $today by $ENV{USER}";
        $svec->add( %hr );
        %hr=();
    }
}

$svec->print( );

sub trim {
    my $str = shift;
    $str =~ s/^\s+//;
    $str=~ s/\s+$//;
    return $str
}


