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.
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
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
Friday, 21-Apr-2023 3:17 PM
PHP Scripts (run on webserver)
These scripts have run on PHP 4.1.2, and PHP 4.4.1. I don't have access to PHP 3.x, so it is not known if they will work on versions below PHP 4.1.2. If you try them and they work (or not) on earlier versions of PHP, please send me a message at webmaster[at]saratoga-weather.org and let me know the results.
NDBC Buoy data mesomap PHP script
This PHP script will extract recent buoy data from the National Data Buoy Center (http://www.ndbc.noaa.gov/ )and display the data as rotating conditions on a mesomap graphic and/or create a table of the current temperature, wind, barometer and wave data. Here is a live example of the output:
Air Temperature
Water Temperature
Wind Direction @ Speed
Wind Gust Speed
Barometer
Barometer Trend
Wave Height
Wave Dominant Period
55.0 °F
56.8 °F
SSE 40 mph
51 mph
29.95 in
+0.00 in
n/a ft
n/a sec
n/a °F
53.1 °F
E 22 mph
28 mph
30.06 in
n/a in
n/a ft
n/a sec
54.5 °F
n/a °F
SSE 22 mph
27 mph
30.10 in
+0.04 in
n/a ft
n/a sec
n/a °F
n/a °F
SE 6 mph
7 mph
30.16 in
n/a in
n/a ft
n/a sec
n/a °F
n/a °F
n/a
n/a mph
30.13 in
n/a in
n/a ft
n/a sec
n/a °F
54.9 °F
n/a
n/a mph
n/a in
n/a in
10.8 ft
13 sec
n/a °F
53.8 °F
SSE 9 mph
15 mph
30.14 in
n/a in
n/a ft
n/a sec
n/a °F
54.1 °F
ESE 15 mph
20 mph
30.14 in
n/a in
n/a ft
n/a sec
n/a °F
53.6 °F
n/a
n/a mph
n/a in
n/a in
9.2 ft
13 sec
n/a °F
n/a °F
SE 7 mph
13 mph
30.15 in
n/a in
n/a ft
n/a sec
n/a °F
54.7 °F
ESE 7 mph
10 mph
30.15 in
n/a in
n/a ft
n/a sec
52.9 °F
55.2 °F
ENE 13 mph
n/a mph
30.16 in
+0.06 in
n/a ft
n/a sec
n/a °F
n/a °F
SSE 9 mph
16 mph
30.17 in
+0.05 in
n/a ft
n/a sec
ID |
Name |
Time PST |
Air °F |
Water °F |
Wind mph |
Gust mph |
Baro in |
Trend in |
Waves ft |
Period Sec |
46014 |
Point Arena, CA |
1100 |
55.0 |
56.8 |
SSE 40 |
51 |
29.95 |
+0.00 |
n/a |
n/a |
PTAC1 |
Point Arena, CA |
No recent reports. |
ANVC1 |
Arena Cove, CA |
1048 |
n/a |
53.1 |
E 22 |
28 |
30.06 |
n/a |
n/a |
n/a |
46013 |
Bodega Bay |
1100 |
54.5 |
n/a |
SSE 22 |
27 |
30.10 |
+0.04 |
n/a |
n/a |
PCOC1 |
Port Chicago, CA |
1048 |
n/a |
n/a |
SE 6 |
7 |
30.16 |
n/a |
n/a |
n/a |
PRYC1 |
Point Reyes, CA |
1048 |
n/a |
n/a |
n/a |
n/a |
30.13 |
n/a |
n/a |
n/a |
46214 |
Point Reyes, CA |
1056 |
n/a |
54.9 |
n/a |
n/a |
n/a |
n/a |
10.8 |
13 |
TIBC1 |
Tiburon Pier, SF Bay, CA |
No recent reports. |
RCMC1 |
Richmond, CA |
1048 |
n/a |
53.8 |
SSE 9 |
15 |
30.14 |
n/a |
n/a |
n/a |
AAMC1 |
Alameda, CA |
1048 |
n/a |
54.1 |
ESE 15 |
20 |
30.14 |
n/a |
n/a |
n/a |
46026 |
San Francisco, CA |
1040 |
n/a |
53.6 |
n/a |
n/a |
n/a |
n/a |
9.2 |
13 |
FTPC1 |
San Francisco, CA |
1048 |
n/a |
n/a |
SE 7 |
13 |
30.15 |
n/a |
n/a |
n/a |
RTYC1 |
Redwood City, CA |
1048 |
n/a |
54.7 |
ESE 7 |
10 |
30.15 |
n/a |
n/a |
n/a |
46012 |
Half Moon Bay, CA |
No recent reports. |
46091 |
MBM0 |
No recent reports. |
46042 |
Monterey, CA |
No recent reports. |
46092 |
MBM1 |
1000 |
52.9 |
55.2 |
ENE 13 |
n/a |
30.16 |
+0.06 |
n/a |
n/a |
46093 |
MBM2 |
No recent reports. |
MTYC1 |
Monterey, CA |
No recent reports. |
46028 |
Cape San Martin |
1100 |
n/a |
n/a |
SSE 9 |
16 |
30.17 |
+0.05 |
n/a |
n/a |
The script has three parts: the buoy-data.php script itself, a text configuration file, and a JPG image of the map to display. Optionally, you can use a set of wind arrows to appear in the display. Included with the distribution file are sample configuration files, wind arrows, and associated graphics from the NDBC website. Be aware that some customization of the configuration file is REQUIRED, and you'll need to be familiar with using image hotspot coordinates to do the customization. More information on customization instructions and possibilities is contained in the buoy-data-readme.txt file in the distribution.
The script output is XHTML 1.0-Strict compliant (with version 1.05). The script also creates a CSS and a JavaScript required for the rotating condigions display. This script has been tested and works with IE V6-SP2, IE7, Firefox 1.0.5.4/2.0, Netscape 7.0 and Opera 8 browsers, and a PHP 4.2.1+ with GD 2.0 enabled. If the browser's JavaScript is not enabled, a small message will appear in the output, and the mesomap will display Air Temperature only. The following parameters are available on the buoy-data.php script:
- inc=Y
- If present, the script will not output surrounding HTML for the page returned. You should specify this if you invoke the script from within your webpage i.e.
<?php include("http://your.website/buoy-data.php?inc=Y"); ?>
Both Map and Table are returned by this parameter.
- inc=CSS
- If present, the script will just return the required in-line CSS for the mesomap display. You should specify this if you invoke the script from within the <head></head> section your webpage i.e.
<?php include("http://your.website/buoy-data.php?inc=CSS"); ?>
Only the CSS is returned by this parameter.
- inc=MAP (added in V1.02)
- If present, the script will not output surrounding HTML for the page returned. You should specify this if you invoke the script from within your webpage i.e.
<?php include("http://your.website/buoy-data.php?inc=MAP"); ?>
Only the mesomap with rotating conditions is returned by this parameter.
- inc=TABLE (added in V1.02)
- If present, the script will not output surrounding HTML for the page returned. You should specify this if you invoke the script from within your webpage i.e.
<?php include("http://your.website/buoy-data.php?inc=TABLE"); ?>
Only the buoy table is returned by this parameter.
- units=E
- (Default) Display temperature, wind, barometer and wave info in English units.
- units=M
- Display temperature, wind barometer and wave info in Metric units. .
- cnv=Y
- (default)-- convert wind speed m/s->kph and kts->mph
- cnv=N
- leave wind speed in m/s and kts
- kts=N (New in V1.10)
- (default)-- leave wind speeds in units as set by units=M/E and cnv=Y/N
- kts=Y (New in V1.10)
- force wind speed display to Knots
For webmaster help with debugging the setup/configuration of the script, the following parameters may also be used:
- show=normal
- (default) display normal mesomap graphic.
- show=hotspots
- display mesomap graphic with hotspots outlined in green to enable debugging of configuration file. Rest of page is displayed normally with rotating conditions and table of data..
- show=map
- display only the mesomap graphic image with hotspots outlined in green.
- cfg=list
- Include results of parsing the configuration file as HTML comments in the page. Useful to ensure the settings are correct in the configuration file.
- cache=no (added in V1.01)
- Changes $refetchSeconds to 10 (to clear the cache file) .
Added in V1.12 was the ability to directly include the script and print the CSS, Map and Table in a simple manner. This method is recommended for PHP5 installations where allow_url_include is turned off.
In the <head></head> part of the including page, put:
<?php
$doPrintBUOY = false;
include("buoy-data.php");
print $BUOY_CSS;
?>
in the <body></body> part of the including page, put:
<?php print $BUOY_MAP; ?>
<?php print $BUOY_TABLE ?>
If you need to center the map and table on the page, don't use <center></center> or <div align="center></div> as it will cause the map display to offset from the background map. Instead use in the <body></body> part:
<table width="99%">
<tr><td align="center">
<table width="100%">
<tr>
<td align="center">
<?php print $BUOY_MAP; ?>
</td>
</tr>
<tr>
<td align="left">
<?php print $BUOY_TABLE ?>
</td>
</tr>
</table>
</td></tr>
</table>
NDBC buoy data mesomap PHP .zip package V1.21[21-Apr-2023] : demo and download [ see version history ]
Download just the buoy-data.php script [V1.21 21-Apr-2023]
Contributed graphics and configuration files are also available here and in the latest .zip file.