deformed-offering

Weather station scripts - NWS Forecast

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.

Many of these scripts are now available on GitHub at https://github.com/ktrue

Buy Me A Coffee 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 WXForum.net and Weather-Watch forums and saratogaWXPHP Twitter account as they become available.

Note: Twitter widget has been disabled 3-Jul-2023 since it no longer displays the recent update Tweets.

This page was updated Sunday, 26-Oct-2025 7:11 AM

Carterlake.org scripts with a few mods...

Tom at carterlake.org has done a great job generating and freely sharing his PHP scripts for other sites to use. I started my own journey with PHP programming by using his scripts (and Larry's at Anole Computer) as learning examples, and I can't thank them enough for their sharing! With Tom's permission (and some encouragement), I've set up this page to have links to the carterlake scripts that I've modified for various puposes. Most of the mods have to do with formatting for XHTML 1.0-Strict output (even when the source page was not).

advforecast.php (NOAA Forecast for all NWS areas)

Note: as of 12-Mar-2007, the Western Region website (www.wrh.noaa.gov) now offers the point-printable forecasts in the same format as the other regional websites, so this script now works for WRH, ERH, SRH and CRH websites.

Tom's advforecast.php script takes the point-printable forecast from NOAA for Western, Eastern, Southern and Central region NOAA websites, and converts to a set of icons/conditions/temperatures and text forecast for inclusion on your webpage. My mods add XHTML 1.0-Strict output and the ability to handle a redirection for county forecasts (offered by www.crh.noaa.gov) in case a point-printable forecast is not available. See these threads for the erh2crh version (http://www.wxforum.net/viewtopic.php?p=3768, and http://www.weather-watch.com/smf/index.php/topic,22504.0.html ) The latest version of this script also offers automatic failover to the Zone forecast if the point-printable forecast is not available. Set "$NOAAZone = 'ssZnnn';" in the code for your NOAA warning zone.

The script supports the ?force=1 parameter to reload the cache file, and also a ?force=2 to load the cache file from the backup County Zone forecast.

To use, you'll need an icon set uploaded in the /forecast/images directory on your website, and to set the $fileName variable inside the script to the URL for the point-printable forecast.

With V2.06 and up, the new parsing of the failover Zone forecast requires additional icons (available below) to be placed on your website.

In July, 2015, the NOAA-NWS updated the icon set and provided a new dual-image icon to display 6-hour conditions for the 12-hour forecast icon. This icon is dynamically generated by a DualImage.php script (available below in the UPDATES file). With the DualImage.php script and associated icon templates installed, the V4.00+ version of advforecast2.php will support dynamic generation of dual images when needed. The script will fall-back to showing just the first 6-hour image if the DualImage.php is not available, OR if the meteotriviglio animated GIF images are used.

In June, 2017, the NWS forecast.weather.gov website had planned a major renovation and would deprecate the use of /MapClick.php?lat={latitude}&lon={longitude} for finding the weather at your location. V5.00 of advforecast2.php now uses the new api.weather.gov JSON feeds to generate the icons/forecast text as the V4.x and prior scripts would have no longer worked via page-scraping.
That conversion by NWS is on indefinite hold so either version V4.0x or V5.0x will work on your site at this time.

Also new with the V5.x script is the number of icons available rose from 9 to 14 and the option to display the old-format 9 icons or the new format with two rows of (up-to) 8 icons is controlled by one switch variable ($showTwoIconRows in the script, or $SITE['showTwoIconRows'] in Settings.php).

On February 27, 2018, the NWS switched forecast.weather.gov to HTTPS only, so advforecast2.php V4.02 and earlier will not work as those versions supported only HTTP access. The advforecast2.php V4.03 was released to handle HTTPS access and should be the last release of the venerable page-scraper script. Please note that the Version 5.x script uses the beta api.weather.gov JSON feed and already used HTTPS only.
The V5.09 script is included in the Base-USA Saratoga template. For those not wanting to use the beta code, you can download the V4.05 script below and use with your template. Both V4.05 and V5.x versions will continue to have support while the api.weather.gov is still in beta test.

Note: to use either 4.0x or 5.0x version of the script, it is important to continue using the point-printable version of the URL for your location based on the current https://www.weather.gov/ website. Your links should resemble:

https://forecast.weather.gov/MapClick.php?lat=nn.nnnn&lon=-nnn.nnnn&unit=0&lg=english&FcstType=text&TextType=2

with the &unit=0&lg=english&FcstType=text&TextType=2 at the end after the lat= and lon= arguments.

Tip: use NWS-info-map to quickly locate your desired forecast points and get copycode to put in the $NWSforecasts array.

Sample code

Sample included with:

<?php
$doIncludeNWS = true;
include("advforecast2.php"); ?>

will show

National Weather Service Forecast for: Saratoga, CA
Issued by: National Weather Service San Francisco Bay Area/Monterey, CA
Updated: Wed, 17-Dec-2025 12:47am PST

Saratoga
 
  Wednesday

Wednesday: Light Rain Likely
Light Rain Likely
Thursday

Thursday: Patchy Fog then Partly Sunny
Patchy Fog then Partly Sunny
Friday

Friday: Light Rain Likely
Light Rain Likely
Saturday

Saturday: Light Rain Likely
Light Rain Likely
Sunday

Sunday: Light Rain
Light Rain
Monday

Monday: Rain Likely
Rain Likely
Tuesday

Tuesday: Light Rain Likely
Light Rain Likely
  Hi 66 °F Hi 63 °F Hi 63 °F Hi 64 °F Hi 61 °F Hi 60 °F Hi 60 °F
 
Overnight

Overnight: Patchy Fog
Patchy Fog
Wednesday
Night
Wednesday Night: Mostly Cloudy then Patchy Fog
Mostly Cloudy then Patchy Fog
Thursday
Night
Thursday Night: Slight Chance Light Rain
Slight Chance Light Rain
Friday
Night
Friday Night: Light Rain Likely
Light Rain Likely
Saturday
Night
Saturday Night: Light Rain Likely
Light Rain Likely
Sunday
Night
Sunday Night: Rain
Rain
Monday
Night
Monday Night: Light Rain Likely
Light Rain Likely
 
Lo 53 °F Lo 45 °F Lo 50 °F Lo 53 °F Lo 54 °F Lo 53 °F Lo 50 °F  

 

Overnight
 
Patchy fog and a slight chance of rain before 4am, then rain likely and patchy fog. Mostly cloudy, with a low around 53. South wind around 2 mph. Chance of precipitation is 60%.
Wednesday
 
Rain likely and patchy fog before 4pm. Partly sunny. High near 66, with temperatures falling to around 59 in the afternoon. North northeast wind 2 to 6 mph. Chance of precipitation is 60%.
Wednesday Night
 
Patchy fog between midnight and 5am. Mostly cloudy, with a low around 45. West wind around 3 mph.
Thursday
 
Patchy fog between 8am and 9am. Partly sunny, with a high near 63. Northeast wind 1 to 5 mph.
Thursday Night
 
A slight chance of rain between 10pm and 1am, then patchy fog and a slight chance of rain. Mostly cloudy, with a low around 50. West wind around 5 mph. Chance of precipitation is 20%.
Friday
 
Rain likely and patchy fog. Mostly cloudy, with a high near 63. Chance of precipitation is 70%. New rainfall amounts less than a tenth of an inch possible.
Friday Night
 
Rain likely. Cloudy, with a low around 53.
Saturday
 
Rain likely. Cloudy, with a high near 64.
Saturday Night
 
Rain likely. Cloudy, with a low around 54.
Sunday
 
Rain. Cloudy, with a high near 61.
Sunday Night
 
Rain. Cloudy, with a low around 53.
Monday
 
Rain likely. Cloudy, with a high near 60.
Monday Night
 
Rain likely. Cloudy, with a low around 50.
Tuesday
 
Rain likely. Cloudy, with a high near 60.

 

Forecast from NOAA-NWS for Saratoga, CA.

You can also include it 'silently' and print just a few (or all) the contents where you'd like it on the page

<?php
$doPrintNWS = false;
require("advforecast2.php"); ?>

then on your page, the following code would display just the current and next time period forecast:

 <table>
<tr align="center" valign="top">
<?php print "<td>$forecasticons[0]</td><td>$forecasticons[1]</td>\n"; ?>
</tr>
<tr align="center" valign="top">
<?php print "<td>$forecasttemp[0]</td><td>$forecasttemp[1]</td>\n"; ?>
</tr>
</table>
Overnight

Overnight: Patchy Fog
Patchy Fog
Wednesday

Wednesday: Light Rain Likely
Light Rain Likely
Lo 53 °FHi 66 °F

Or if you'd like to include the immediate forecast with text for the next two cycles:

<table>
<tr valign="top">
<?php print "<td align=\"center\">$forecasticons[0]<br />$forecasttemp[0]</td>\n"; ?>
<?php print "<td align=\"left\" valign=\"middle\">$forecasttext[0]</td>\n"; ?>
</tr>
<tr valign="top">
<?php print "<td align=\"center\">$forecasticons[1]<br />$forecasttemp[1]</td>\n"; ?>
<?php print "<td align=\"left\" valign=\"middle\">$forecasttext[1]</td>\n"; ?>
</tr>
</table>

Overnight

Overnight: Patchy Fog
Patchy Fog

Lo 53 °F
Patchy fog and a slight chance of rain before 4am, then rain likely and patchy fog. Mostly cloudy, with a low around 53. South wind around 2 mph. Chance of precipitation is 60%.
Wednesday

Wednesday: Light Rain Likely
Light Rain Likely

Hi 66 °F
Rain likely and patchy fog before 4pm. Partly sunny. High near 66, with temperatures falling to around 59 in the afternoon. North northeast wind 2 to 6 mph. Chance of precipitation is 60%.

Download: advforecast2.php (V5.21 - 26-Aug-2025) JSON version uses the api.weather.gov site, also included in the USA template.
Download: advforecast2.php (V4.06 -30-Apr-2024) older version for those not wanting to experiment with the api.weather.gov beta site
Download: Icon Set (V2 for NWS 55x55 JPG icons) (upload to your website in the /forecast/images directory)
Download: DualImage.php (V1.04 - 06-Apr-2022) - included with Base-USA template and icon sets above.
Download: Optional 86x86 Large PNG Icon set (upload to your website in the /forecast/images directory)
Note: to use large icons, change advforecast2.php and DualImage.php to use PNG images.

deformed-offering