What is HoosierCast?
HoosierCast is an application that I've coded in C++ to run on Linux. HoosierCast is responsible for placing the 7-day forecast
on the main page, and placing the detailed forecast on the 'Weather Forecast' page. I use Gentoo Linux on both the development station and the
box that the 'production' version runs on.
What does it do and how does it do it?
When the application starts it reads in it's configuration file and sets many configurable parameters. These parameters include:
the city name used in retrieving the 7-day forecast, the county zone number used in retrieving the zone forecast, the time interval in which it
checks for new forecast data, ftp information used in uploading forecast data, and information used to log into the local MySQL database. Next the
forecast data is downloaded, processed, and checked to see if the data is new. If the data that was downloaded is new, the new data is placed in
the database, the 'Weather Forecast' page is generated and uploaded, and the images for the 7-day forecast are created and uploaded.
Are there any required libraries?
Yes, there are three: MySQL, libcurl, and ImageMagick.
- HoosierCast uses MySQL to store and archive all forecasts that are downloaded.
- libcurl provides HoosierCast the ability to download the forecast from the NWS and upload the processed data to this site.
- After the forecast data is processed, ImageMagick is used to take the data and generate the 7-day forecast graphics.
Where does the forecast information come from?
All forecast information is downloaded from the National Weather Service FTP site. The National Weather Service provides this data
for free. The forecast information is downloaded from the following addresses:
7-day Forecast: ftp://tgftp.nws.noaa.gov/data/forecasts/state/in/inz
Zone Forecast: ftp://tgftp.nws.noaa.gov/data/forecasts/zone/in/inz
What are the future plans?
I don't have a lot of time to work on this project, but I do enjoy working on it when I can. I do have plans to add the following
features when I can:
- Add the ability to download Watch/Warning information and generate images to display this information
- Add email functionality to send messages when Watches/Warnings are issued.
- Improve the appearance of the 7-day forecast images
....and much later
- Change to a client/server environment. The fronted will be based on QT.
- Integrate webcam operations into the program
|