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 192351

Area Forecast Discussion
National Weather Service San Francisco Bay Area
451 PM PDT Thu Apr 19 2018

.SYNOPSIS...A warming trend and dry weather conditions are
forecast into the upcoming weekend. A weak cutoff low approaches
the region mid to late next week.

&& of 03:00 PM PDT Thursday... The 550dm 500mb upper
low that brought cloudy skies and cooler temperatures yesterday
and into this morning has now eased eastward into the Great
Basin. High pressure from the eastern Pacific is now building
towards the California coast and will begin to move ashore later
today. Daytime temperatures reflect this shift in air mass,
starting 5 to 10 degrees cooler than yesterday this morning, but
lastest observations are 5 to 10 degrees warmer than yesterday
afternoon. A moderate northerly gradient has set up in between
these two features and is strongest along the coast (3.7mb ACV-
SFO/3.1mb SFO-SBA), resulting in breezy winds regionwide and local
gusts up to 40 mph (mainly along the coast). Winds are forecast to
ease in the coming days as high pressure builds in and the
gradients weaken.

Fair weather conditions are expected through the weekend and into
early next week.  A slight warming trend is forecast now through
the weekend where temperatures will rise to a few degrees above
normal at the coast (mid to upper 60s) and up to 10 degrees warmer
than normal farther inland (upper 70s to low 80s). A weak upper
trough passes to the north on Sunday which may limit the warming
trend over the San Francisco Bay area, however, the the warming
trend for the Monterey Bay area will not be impacted. Fair weather
conditions persist for Monday and into Tuesday.

The GFS EURO and Canadian models show a 556-562dm 500mb cut off
low near California mid week next week, but model output varies
widely on the positioning and trajectory of this feature. The
Canadian shows the upper low over NorCal by Wednesday morning, the
EURO brings the low ashore Thursday morning closer to the Big Sur
coast, and the GFS doesnt bring the upper low ashore until next
weekend, mainly from Big Sur to SoCal. None of these scenarios
should bring much precipitation to the area, instead, any
precipitation should be light and spotty, primarily in the form of
wrap around showers in the wake of any frontal passage. This storm
system should come into better focus as the model output begins to
align on a solution. Until then, confidence remains low.


.AVIATION...As of 4:52 PM PDT Thursday...For 00z tafs. Patchy low
clouds across area hill this afternoon will dissipate this evening
after sunset. Patchy low clouds will return to KMRY and KSNS after
a temporary clearing this afternoon. Elsewhere mainly clear skies
expected. Gusty onshore flow will persist through late this
afternoon and ease after sunset.

Confidence is moderate to low with respect to overnight cigs.

Vicinity of KSFO...VFR will prevail through the forecast period.
Afternoon west winds to around 20 kt, with gusts over 25 knots
will ease after 04z.

SFO Bridge Approach...Similar to KSFO.

Monterey Bay Terminals...MVFR cigs anticpated to return to KMRY
around 04z this evening. KSNS is anticipated to see temporary
clearing with cigs also returning around 04z. Gusty west winds
around 15 kt with gusty to around 25 kt expected through this
afternoon. Winds will ease this evening.

&& of 2:49 PM PDT Thursday...High pressure over the
eastern Pacific will maintain breezy/gusty NW winds through Friday
and into the weekend. As a result, the strong winds will generate
steep wind waves and fresh swell, causing hazardous seas through
much of the weekend.


     .Tngt...SCA...Pigeon Pt to Pt Pinos 0-10 nm
             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
             SCA...Pigeon Pt to Pt Piedras Blancas 10-60 nm
             SCA...Pt Reyes to Pigeon Pt 0-10 nm
             SCA...Mry Bay until 3 AM




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 Wednesday, April 18, 2018

High Temperature

93°F at Del Rio/Intl, TX

Low Temperature

4°F at Leadville, CO

High Precipatation

0.77in at Madison/Truax Fld, WI

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