Weather station scripts

They're free, but use at your own risk

The scripts referenced here are used in the operation of this weather station, and may be freely copied and used to support your station. Please note that you use these scripts at your own risk. No warranty is expressed or implied. I accept no liability for any damages that may ensue from their use.
You will need to configure them for your own particular weather station website.
RSS feed for Scripts Updates A RSS Feed is available to help keep you informed on updates to the scripts.

If you find one or more of the scripts useful to you, please consider making a donation to help offset the routine expenses of operation of this website.
Thanks for your kind support!

A Version History is available -- check back from time to time to see if there are updates to scripts you have downloaded earlier. Announcements of version updates and new scripts are made on and Weather-Watch forums and saratogaWXPHP Twitter account as they become available.

This page was updated Sunday, 10-Feb-2019 7:10 PM

PHP for NWS Area Forecast Discussion

This PHP script will fetch and cache the Forecast Area Discussion issued by your local NWS office.
Thanks to Mike Challis of Long Beach, WA for the inspiration for and enhancement of this script.

FXUS66 KMTR 222151

Area Forecast Discussion
National Weather Service San Francisco Bay Area
151 PM PST Fri Feb 22 2019

.SYNOPSIS...Dry and seasonably cool conditions will prevail across
the region through Saturday. Although the next system may bring
some light rain to the region late Saturday or Sunday across the
North Bay, do not expect the heavier rain to shift south of the
Golden Gate before late Monday or Tuesday and across the rest of
the area before late Tuesday into Wednesday. Gradual warming
trend will develop as well.


.DISCUSSION...As of 1:50 PM PST Friday...Water vapor imagery
continues to show the upper level trough of low pressure over the
Desert Southwest pushing eastward as another trough continues to
dig south across the Pacific Northwest. As a result, a transitory
ridge is building over the region, and will remain in place
through Saturday, with some minor warming possible.

The primary concern and challenge for this forecast will be with
the next system, as the models seem to be trending slower and
farther north. At this point in time, the models are showing it
slowing digging south over the next 24 to 36 hours, but then
stalling. If this occurs, the moisture plume looks like it will be
focused somewhere between the Southern Oregon Coast and the
Mendocino Coast, with the heaviest rain staying north of our area
these days. Sonoma and Napa counties should be on the southern
fringe, and may see some light rain starting late Saturday, but
more likely some time Sunday or Sunday night. It really isn`t
until Monday afternoon or evening though that the stalled front
starts to shift southward. Even then, it still appears that the
North Bay will be the primary focus of the rain, with little if
any making it as far south as the San Mateo or Santa Cruz
coastline before Tuesday afternoon.

Therefore, think if these current trends hold, any rain that falls
this weekend across the North Bay will be light and beneficial,
with amounts mainly less than a quarter inch. However, once the
heavier rain develops between Monday and Tuesday, believe 2 to 4
inches of rain may be possible across the North Bay, with local
amounts upwards of 6 inches possible. Southern areas will be lucky
to see up to a half inch of rain, with areas in between in the 1
to 2 inch range.

The models show a break in the rain between Thursday and Friday as
another transitory ridge builds over the region. However, models
are hinting at another potentially potent rain producer for next
weekend.  Palmer


.AVIATION...As of 10:05 AM PST Friday...for 18Z TAFS...VFR
conditions through the period with light to moderate winds. A few
cu build up clouds are possible this afternoon, but impacts will
be minimal. High level clouds increase on Saturday.

Vicinity of KSFO...VFR.

SFO Bridge Approach...Similar to SFO.

Monterey Bay Terminals...VFR.

&& of 8:25 AM PST Friday...Breezy northerly winds will
persist through early this morning before diminishing. Moderate
northwest swell will continue into next week. Southerly winds will
develop later this weekend and into early next weekend.


     .Tngt...SCA...Pt Pinos to Pt Piedras Blancas 0-10 nm until 9 PM




Visit us at

Follow us on Facebook, Twitter, and YouTube at:

NWS MTR Office Area Forecast Discussion

To use, include the output of the script on your webpage by using

$doIncludeFD = true;
include("forecast-discussion.php"); ?>

to perform the include. Settings inside the script are:

// settings:
//  change myNWS to abbreviation for your local NWS office
//    other settings are optional
    $myNWS = 'MTR';   // San Francisco, NWS office
//  $myNWS = 'PQR';   // Portland, OR
//  $myNWS = 'OAX';   // Omaha, NE (Carter Lake, IA)
$cacheName = "forecast-discussion.txt"; // used to store the file so we don't have to // fetch it each time $refetchSeconds = 1800; // refetch every nnnn seconds
$cacheFileDir = './'; // default cache file directory // end of settings

The only required setting is for $myNWS which designates the local NWS office.
To find the 3-character abbreviation for your local NWS office for the $myNWS variable, follow these steps:

  1. Browse to
  2. Use the search box on the left to search for your city, state
  3. Look at the URL in the 'Forecast Discussion' link near the bottom of the page
  4. Use the 3-character abbreviation is in the &issuedby=XXX parameter on the Forecast Discussion link (XXX will be your local office)
  5. put the XXX in the $myNWS = 'XXX'; statement

The script has two optional parameters when you call it by URL from your website::

Will return the contents without the surrounding <html><head></head><body> and </body></html> tags
Will override the default $refetchSeconds=1800 so that the cache is refreshed immediately

NWS Area Forecast Discussion PHP script Demo and Download (1.06 - 27-Feb-2018 see history).

PHP for NWS CPC USA Extremes

This script was originated by Michael of and has been rewritten to use the NWS Climate Prediction Center's One Day Old Daily Data Summary text file for the USA. The script does not produce output (other than HTML comments for status), so you are free to include it in a page, and format the text output as you desire. The script returns data in four variables:

$usahigh - contains the text of the high temperature station(s) (value and station name from the NWS)
$usalow - contains the text of the low temperature station(s) (value and station name from the NWS)
$usaprecip - contains the text of the high precipitation station(s) (value and station name from the NWS)
$reportDate - contains the text of the date for the report (default format is 'Dayname, Month day, Year')

You can run the script by using:


print "<p>USA Extremes for $reportDate</p>\n";
print "<p>High Temperature<br/><br/>$usahigh</p>\n";
print "<p>Low Temperature<br/><br/>$usalow</p>\n";
print "<p>High Precipatation<br/><br/>$usaprecip</p>\n";
print "<p><small>Data courtsey of <a href=\"";
print "";
print "\">NWS-CPC</a></small></p>\n";


which produces this result (with live data):

USA Extremes for Thursday, February 21, 2019

High Temperature

89°F at Gainesville/Muni, FL

Low Temperature

-20°F at West Yellowstone, MT

High Precipatation

3.00in at Greenwood/Le Flore, MS

Data courtsey of NWS-CPC

The script has internal settings which you can adjust. If run in a Saratoga template, the cache file will be stored in the ./cache/ directory based on $SITE['cacheFileDir'] in Settings.php.

// Site to Parse
$url2 = "";
// Name of cache file  --  This file must be set to CHMOD-666
$cacheFileDir = './'; // directory to store cache file in.
$cacheFile2 = "usaextremesCache4.txt";  
// Age of cache file before re-fetch caching time, in seconds (3600 = 1 hour)
$cache_life = '3600';
$reportDateFormat = "l, F j, Y"; // Day, Month d, yyyy 
$tUOM = '&deg;F'; // or ='' for no temperature unit display
$rUOM = 'in';     // or ='' for no rain unit display
$ignoreStations = array('99NRB'); // Station numbers to ignore, Array of station numbers

NWS CPC One Day Extremes PHP script Download (4.03e - 09-Feb-2019 see history).