#!/usr/bin/perl
use strict;
use LWP::Simple;
use CGI;
use Geo::METAR;
use Time::Local;
#my $sfo_url = "http://www.wrh.noaa.gov/cgi-bin/wrhq/GetMetar.cgi?SFO+Metar";
my $sfo_url = "http://www.wrh.noaa.gov/mesowest/getobext.php?wfo=mtr&sid=sfo&num=48&raw=0&banner=off";
# http://www.wrh.noaa.gov/mesonet/getobext.php?wfo=mtr&sid=sfo&num=48&raw=0
#my $sfo_url = "http://weather.noaa.gov/cgi-bin/mgetmetar.pl?cccc=ksfo";
#my $sancarlos_url = "http://www.wrh.noaa.gov/cgi-bin/wrhq/GetMetar.cgi?SQL+Metar";
my $sancarlos_url = "http://www.wrh.noaa.gov/mesowest/getobext.php?wfo=mtr&sid=sql&num=48&raw=0&banner=off";
#my $sfports_url = "http://sfports.wr.usgs.gov/cgi-bin/WindTide.cgi";
my $sfports_url = "http://sfports.wr.usgs.gov/cgi-bin/SFPORTS/WindTide.cgi";
#my $sfmfcast_url ="http://www.wrh.noaa.gov/cgi-bin/wrhq/TotalForecast.csh?TotalForecast+WR+PZ+530";
my $sfmfcast_url ="http://www.wrh.noaa.gov/mtr/getcwfzone.php?sid=MTR&zone=PZ530";
my $wind_url = "http://sfports.wr.usgs.gov/wind/";
#my $tide_img_url = "http://co-ops.nos.noaa.gov/cgi-bin/co-ops_qry_direct2.cgi?stn=9414449+COYOTE+POINT+MARINA%2CS.F.BAY+%2C+CA&unit=1&shift=1&mins=60&dcp=1&ssid=PR&pc=W1&datum=MLLW&format=View+Plot"; #&bdate=20020714&edate=20020715
#my $tide_img_url = "http://co-ops.nos.noaa.gov/cgi-bin/co-ops_qry_direct2.cgi?stn=9414458+SAN+MATEO+BRIDGE%2C+WEST+SIDE+%2C+CA&unit=1&shift=1&mins=6&dcp=1&ssid=PR&pc=W1&datum=MLLW&format=View+Plot"; #&bdate=20020714&edate=20020715
#my $tide_img_url = "http://co-ops.nos.noaa.gov/cgi-bin/co-ops_qry_wlpred.cgi?stn=9414458+SAN+MATEO+BRIDGE%2C+WEST+SIDE+%2C+CA&unit=1&shift=1&mins=6&dcp=1&ssid=PR&pc=W1&datum=MLLW&format=View+Plot";
my $tide_img_url = "http://co-ops.nos.noaa.gov/cgi-bin/co-ops_qry_wlpred.cgi?stn=9414449+COYOTE+POINT+MARINA%2CS.F.BAY+%2C+CA&unit=1&shift=1&mins=6&dcp=1&ssid=PR&pc=W1&datum=MLLW&format=View+Plot";
my $w = new CGI;
print $w->header;
print $w->title('Bay Area Marine Forecast Summary');
print $w->start_html;
print $w->h2('SF Bay Area Marine Forecast Summary');
#print "", "\n";
print "\n
Site | Wind (kts) | Gust (kts) | Direction | Time (PDT) |
\n";
get_marine_forecast ($sfmfcast_url);
print "SF Bay Area Weather Discussion | \n";
print "Small Screen Version
\n";
print "To Weather Links
\n";
print "Data Bouy Summary
\n";
print "
\n"; # Pring out the Wunderground Flash Objects print "
\n"; print "\n"; print "\n"; print "
\n";
print "\n";
print "\n";
#print "\n";
print "
\n"; #get_xml_obs("KSFO"); print $w->end_html; exit(0); ####################### sub print_metar_observations {my $url = shift; my $eng_url; my $sitename = shift; my ($obs_time, $obs_dir, $obs_speed, $obs_gust); ($obs_time, $obs_dir, $obs_speed, $obs_gust) = &get_metar_page ($url); # print "$sitename wind at $obs_time is $obs_speed", "kts "; # if ($obs_gust) {print "gusts to $obs_gust", "kts ";} # print "from $obs_dir\n"; $url =~ m/(.*)raw=3.*/; $eng_url = $1."raw=0"; print "
As of $time
\nThe National Weather Service San Francisco Marine Forecast:
\n $forecast
\n";
}
sub grab_wind_img
{my $url = shift;
my $img_tag;
my $page;
$page = get($url);
$page =~ m/\s\n.*src="(.*)"\swidth/s;
#$img_tag = "";
$img_tag = $1;
#print "\****\n$1******\n";
return ($img_tag);
}
sub grab_tide_img
{ my $url = shift;
my ($img_url, $stub, $uri);
my $page;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday);
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = localtime(time);
$year = $year + 1900;
$mon++;
$mon = sprintf ("%02d", $mon);
$mday = sprintf ("%02d", $mday);
#&bdate=20020714&edate=20020715
# ($img_url, $stub) = split(/ /,$url);
$img_url = $url . "&bdate=" . $year . $mon . $mday;
$mday++;
$img_url .= "&edate=" . $year . $mon . $mday;
# $img_url .= $stub;
$page = get ($img_url);
$page =~ m/
$day1
}
sub get_xml_obs
{ my $station_name=shift;
my $eng_url=shift;
my $sitename=shift;
my $wind_kts;
my $gust_kts;
# use LWP::Simple;
use XML::Simple;
my $page = get("http://www.nws.noaa.gov/data/current_obs/$station_name.xml");
#print "\n";
my $metar = XMLin($page);
# print "Wind speed: $metar->{'wind_mph'}\n";
# print "$station_name: $metar->{'wind_mph'}-\n";
$wind_kts = sprintf ("%.1f", $metar->{'wind_mph'}/1.15078);
$gust_kts = sprintf ("%.1f", $metar->{'wind_gust_mph'}/1.15078);
print " | $sitename | $wind_kts | ";
if ($metar->{'wind_gust_mph'}) {print $gust_kts;}
else {print "N/A";}
print " | $metar->{'wind_degrees'} | $metar->{'observation_time'} | ";
}
|