# !/usr/bin/perl #10160355000 SKIKDA 36.93 6.95 7 18U 107HIxxCO 1x-9WARM DECIDUOUS C #10160355000 SKIKDA 36.93 6.95 7 0R 0xxxxxx-9x-9NULL STRING A 0 #603550 99999 SKIKDA AL AG DABP +36883 +006900 +00030 my $infile = shift; my $ccinv = shift; open MEANS, "<$infile" or die "Could not open $infile: $!"; $filler = "..........................................."; $filler = " 0R 0xxxxxx-9x-9NULL STRING A 0"; while () { chomp(); $line = $_; $usaf = substr($line,0,6); $wban = substr($line,7,5); $name = substr($line,13,30); $lat = substr($line,58,6); $lon = substr($line,65,7); $ele = substr($line,74,6); # skip stations without lat/lon data $lat = $lat / 1000.0; $lon = $lon / 1000.0; $ele = $ele / 10.0; if ($lat > -90 && $lon > -180 && (abs($lat) + abs($lon) > 0)) { #printf "%.6s%.5s %30s %6.2f %7.2f %4d %43s\n", $usaf,$wban,$name,$lat,$lon,$ele,$filler; if ($usaf < 999999) { $cmd="grep \"^..-".$usaf."-\" ".$ccinv." | cut -b 17-27"; $id=`$cmd`; printf "%.11s %30s %6.2f %7.2f %4d %43s\n", $id,$name,$lat,$lon,$ele,$filler; } elsif ($wban < 99999) { $cmd="grep \"^..-......-".$wmo.",\" ".$ccinv." | cut -b 17-27"; $id=`$cmd`; printf "%.11s %30s %6.2f %7.2f %4d %43s\n", $id,$name,$lat,$lon,$ele,$filler; } #print "$tmpcc-$usaf-$wban\n"; } }