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 Thursday, 13-Oct-2016 12:40 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 280005

Area Forecast Discussion
National Weather Service San Francisco Bay Area
505 PM PDT Tue Jun 27 2017

.SYNOPSIS...Seasonably cool temperatures can be expected today
with a very gradual warming trend through Friday as a ridge
builds into our region. Outside of drizzle, dry weather the next
7 days with night and morning coastal clouds followed by sunny
afternoons is forecast.

&& of 1:03 PM PDT Tuesday...Visible satellite shows
the morning stratus continuing to clear out across most inland
areas. A few locations remain impacted with low clouds as of 1 pm
PDT, including San Francisco and Oakland Airports. The San
Francisco to Sacramento surface pressure gradient has increased
slightly from what it was at 24 hours ago (2.6 mb vs. 2.1 mb), and
the marine layer is a bit deeper between 2,000 and 2,500 ft.
Expect skies to continue to improve through the middle of the

Synoptically we still have an upper level high centered over Baja
California that is enabling hot and dry conditions to persist
over the southern third of the Golden State. Closer to our area,
temperatures are much cooler than they were several days ago with
zonal flow overhead and onshore flow. Expect temperatures to reach
the upper 50s to the low 70s along the coast, and 70s to middle
80s across the inland valleys and mountains. The Santa Lucia
Range, southern Salinas Valley, and Pinnacles National Park areas
will likely see temperatures max out in the upper 80s to the low
90s this afternoon.

On Wednesday temperatures will nudge upward a few degrees for most
inland areas as high pressure begins to rebuild over the West
Coast. This gradual warming trend will continue through Friday
with temperatures within a few degrees of normal for the end of
June. Coastal areas may see subtle warming through the end of the
week, but by only several degrees at most. Models are advertising
a short wave trough to push onshore for the weekend that would
bring some cooling to the area. Aside the isolated coastal drizzle
associated with morning marine stratus, dry conditions are
expected to continue for the foreseeable future.


.AVIATION...As of 4:43 PM PDT Tuesday...For 00z TAFs. Widespread
low clouds prevail across the coastal waters at this hour. Low
cloud will push inland this evening and overnight bringing cigs to
area terminals. Cigs anticipated to lift around 16z-17z Wednesday
morning. Moderate onshore flow will persist through this evening
then diminish overnight.

Moderate confidence.

Vicinity of KSFO...VFR currently over terminals. MVFR cigs may
drift over the terminals over the next several hours before IFR
cigs fill in. Have included tempo groups to account for this. Cigs
anticipated to clear around 17z Wednesday morning. Moderate
onshore flow around 15-20 kt with gust to around 25 kt will
persist through this evening then diminish overnight.

SFO Bridge Approach...Similar to KSFO.

Monterey Bay Terminals...Currently VFR over terminals. MVFR cigs
may move in and out over the terminals over the next few hours
before cigs fill in. Have included tempo groups to account for
this. Cigs are anticipated to lower to IFR after 06z then LIFR
after 08z. Anticipated skies to clear around 17z Wednesday
morning. Moderate onshore flow around 15 kt with gust to around
20 kt will persist through this evening then diminish overnight.

IFR cigs quickly clearing around MRY.
Should be CLR at all Monterey Bay terminals by 18-1830z. Breezy
and occasionally gusty west winds 12-14kt this afternoon. Early
return of stratus for MRY, around 03z, and SNS around 06z.

&& of 1:52 PM PDT Tuesday...High pressure will continue
to build into the Eastern Pacific through the rest of the week.
As such, moderate to strong northerly winds will continue to
increase over the waters and bays through the majority of the
forecast period. Southerly swell and wind driven waves will
dominate and persist through Wednesday morning.


     .Tngt...SCA...SF Bay until 9 PM
             SCA...Mry Bay until 9 PM
             SCA...Pigeon Pt to Pt Pinos 0-10 nm until 9 PM
             SCA...Pt Arena to Pt Reyes 0-10 nm
             SCA...Pt Pinos to Pt Piedras Blancas 0-10 nm
             SCA...Pt Arena to Pigeon Pt 10-60 nm




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.05 - 31-Mar-2015 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 Monday, June 26, 2017

High Temperature

118°F at Blythe, CA
118°F at Needles Airport, CA

Low Temperature

34°F at Crane Lake (awos), MN
34°F at Yellowstone (ramos), WY
34°F at West Yellowstone, MT

High Precipatation

2.50in at Daytona Beach Rgnl, FL

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).