Follow me on Twitter   Follow me on Twitter.
Home  | Downloads  | Site News  | Contact Me 

Hoosier Weather Hoosier Weather

 · Current Conditions
 · Historical Data
 · About Weather Station

 · Flooding
 · Scenery
 · Thunderstorms
 · Winter Weather

 · Seasonal
 · Short-Term

 · HoosierCast™ 
 · Links
 · About This Site
  What is HoosierCast™

   This project began with me wanting to display weather forecast and storm watches/warnings on this site. I looked around for a solution that would allow me to do this, but I could not find one that met my needs. I am not a programmer by profession, but coding is something that I enjoy. With this being the case, I decided to build my own application. What I have come up with is a program that is coded in C++ and runs on Linux. I call it HoosierCast™. I have HoosierCast™ running on an instance of Gentoo Linux that runs on my VMware ESXi server.


  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


  An Approximate Changelog

0.1.6 - Released on January 18, 2010
  • Consolidated many functions which results in a much smaller code base
  • Improved download and upload efficiency by consolidating various curl functions
0.1.5 - Released on March 22, 2009
  • Version 0.1.4 proved to be buggy in the way that it processed the zone forecast. The logic was greatly improved in this release.
  • I did lots of code cleanup here. Overall the condebase is much cleaner and easier to follow.
  • I removed the "headline" functionality for now. This included information such as Advisories and some Watches/Warnings. This will be added back in later along with the capability to handle Watches and Warnings. There is still some cleanup I want to do before adding this back.
  • The appearance of the seven day forecast was dramatically cleaned up and graphics were added. I don't think they look bad, but I am not much of an artist. :)
0.1.4 - Released on January 29, 2009

It's hard to remember what was changed up to this point. I first released HoosierCast at version 0.1.0. The releases from then up to 0.1.4 have mostly been bug fixes and overall performance improvements.


  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:
  • By version 0.1.7 I will have added the ability to download Watch/Warning information and generate images to display this information.
  • Also in the 0.1.7 release will be the ability to email Watch/Warning alerts.
  • 0.1.8 will include increased logging ability and maybe the ground work for a client/server implementation. I have no plans to begin work on a GUI client by this release.
....and much later
  • Change to a client/server environment. I plan for the client to run on Windows.
  • Integrate webcam operations into the program