The weather station software is composed of three major parts:
- Data capture and processing.
- Animated weather station.
- Data display.
Data capture and processing
Data is captured from the WS2300 and processed by a background program running on a Linux system. This program is written in C and uses the low level device access functions from the open2300 project. Once the raw data has been read it is processed to create a number of standard meteorological data items (wind direction, speed, temperature, rain fall etc.), these values are then written as a time-stamped record to one or more data files:
- Current weather. Updated every 8 seconds and contains a single record giving the current weather conditions.
- 10 minute data file. Has a new record appended every 10 minutes and is the main weather data source.
- 1 Hour data file. Has a new record appended every 1 hour which consists of down-sampled data from the 10 minute data.
- 24 Hour data file. Has a new record appended every 24 hours, again down-sampled from the 10 minute data.
The main processing performed by the program is to generate processed versions of the WS2300 data:
- Vector based wind direction (combining both velocity and direction information), to provide a standard wind direction value.
- Standard 10 minute wind speed data.
- Maximum and minimum values for temperature etc.
- Rates of change for pressure, temperature, rainfall etc.
Wind speed and direction raw values are read every 8 seconds (the sample rate of the WS2300), other items are read over a 2 minute cycle. The actual reading of non wind data is offset to ensure that the 8 second wind update can always be performed. This current measurements are written every 8 seconds to the current weather file (actually stored in a ram disk), the main data file is updated every 10 minutes and the other data files are created using down-sampled data (averages, min/max etc) as required. The data files are checked and corrected when the program starts. If for some reason readings are missed (computer crash, WS2300 problems etc.), then the program will generate dummy values for the missing data.
Animated weather station
The final part of the system is the software supporting the display of daily, weekly and monthly weather data as a series of graphs. The graphs are created as an on the fly generated gif image (one per graph). This image is created by a php program that obtains the weather data (filtered for time/date etc.), from the above files, processes it and then uses a modified version of Herman Veluwenkamp's php graph package. These graphs are then displayed (via a further php program), in a web page.