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 Tuesday, 27-Feb-2018 1:47 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 221745

Area Forecast Discussion
National Weather Service San Francisco Bay Area
1045 AM PDT Mon Oct 22 2018

.SYNOPSIS...Slightly cooler temperatures are forecast across the
region through midweek as an upper level system pushes inland over
the Pacific Northwest and northern California. High pressure then
builds over the region late week and allows for temperatures to warm
to above seasonal averages. Dry weather conditions are also likely
to prevail through the forecast period.

&& of 07:28 AM PDT Monday...Despite the calendar
saying it`s fall the satellite shows cloud cover this morning that
resembles more like summer. Widespread low clouds cover the entire
coast and much of the inland valleys. Fort Ord profiler puts this
depth at about 1,500 feet. Patchy fog is also being reported at a
few automated stations, but unlike the last two mornings dense fog
is not being reported. The deep marine layer is due to an upper
level low passing over the state. Latest hi-res models keep the
low clouds through mid-late morning. Do expect sunny skies this
afternoon, but temperatures will remain on the cooler side and a
few degrees below normal. Highs will be in the 60s coast and 70s
to lower 80s inland.

No update is planned at this time.


.PREV of 04:01 AM PDT Monday...Temperatures this
afternoon are likely to cool only slightly across the interior as
an upper level short-wave pushes inland to our north. While
onshore flow will increase slightly, the marine layer should mix
out some and allow for afternoon clearing. Little day-to- day
change is expected Tuesday into Wednesday as well with periods of
late night and early morning low clouds with the presence of a
weak marine layer and continued onshore flow. Overnight cloud
cover will be less widespread however as the weak upper level
disturbances pushing inland to our north keep the marine layer a
bit more mixed through midweek.

Conditions are forecast to warm late in the week as high pressure
builds over the region and keeps the storm track to our north. The
latest medium range models maintain dry weather conditions over our
region through late week and potentially into next weekend as well.
May even see brief offshore flow develop across the interior which
will result in temperatures warming to near or above seasonal
averages Friday and Saturday. May see a bit of a cool down heading
into early next week as another mid/upper level trough approaches
the Pacific Northwest and northern California. However, the current
thinking is that any precipitation will again remain to our north.

&& of 10:45 AM PDT Monday...for 18Z TAFs. Profiler
data and pilot reports indicate a fairly deep marine layer with
bases around 1000 feet and cloud tops around 2000 feet. Onshore
flow is in place and expect a fairly slow burn off through 19z for
most terminals. Expect stratus to spread back inland overnight
with similar synoptic pattern in place.

Vicinity of KSFO....Stratus forecast system and current trends
expect clearing shortly after 19z. Light westerly seabreeze this
afternoon with cigs returning after 06z.

SFO Bridge Approach...Approach clearing around 1930z then
remaining clear through evening rush.

Monterey Bay Terminals...Low clouds will slowly pull back by
20-21z for kmry then return around 02z this evening, staying in
place at least through 18z Tuesday.

&& of 8:00 AM PDT Monday...Light northwest winds are
forecast to prevail over the waters through the day with locally
breezy conditions along the Big Sur coast this afternoon and
evening. Generally light wind and seas will continue through
midweek. Northwest wind and seas will increase by Thursday or
Friday as a front approaches the far northern waters.


     .Tday...SCA...Pt Pinos to Pt Piedras Blancas 0-10 nm from 3 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 Sunday, October 21, 2018

High Temperature

94°F at North Perry Arpt Asos, FL
94°F at Thermal, CA

Low Temperature

7°F at Mount Washington, NH

High Precipatation

0.46in at Chatham, MA

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.03 - 13-Oct-2016 see history).