When all conditions align a perfect storm happens. The surprise of the Boulder 2013 floods got me thinking about weather and whether we could not just forecast rain but predict the effects of that rain when layered over flood plains, soil moisture and tree coverage. History has also shown us that fire stricken areas and drought increase flash flood risk in that area during heavy rain so I thought that analyzing and layering historical events with current weather forecasts was important in the prediction model.
After stuyding and researching the data here are a few scenarios I came up with:
- Scenario 1: Potential for a flood
location is in a flood plain, location is under weather alert for flooding, location is forecasted for x amount of rain, history of flooding, forecast is outside of normal precipitation, soil survey is loose, tree and shrub coverage is scarce
- Scenario 2: Potential for a flash flood
location is forecasted for x amount of rain, location is under weather alert for flash flooding, history of drought, history of wild fires, forecast is outside of normal precipitation, soil survey is loose, tree and shrub coverage is scarce
- Scenario 3: Potential for a wild fire
recent history of no precipitation, location is forecasted for high winds, location has dense tree population, location is in fire potential area, soil survey is dense, tree and shrub coverage is heavy
What it does
FireWater uses historical weather storm data from NOAA and forecast weather insights to predict locations susceptible to flooding and wildfires.
How I built it
Using Strongloop node.js for the backend and Angular.js for the frontend. The backend calls services on IBM Bluemix with geo location and the frontend logic compiles results to calculate predictions for floods and wildfires. I also added Twitter Insights to query Twitter by geo location and keywords flood or fire. Social signals can be used for realtime storm impact queues but are not used for predictions. Including 631,165 historical events from 1996 - 2013.
Challenges I ran into
The format and inconsistency (missing lat/lng) of weather data. Some Apache Spark Java errors and timeout IO errors.
Accomplishments that I'm proud of
Modified a python script to import CSV storm data into CloudantDB for easy geospatial search.
What I learned
Cloudant DB and Apache Spark
What's next for FireWater
Load more data into Spark! Currently working with 1.7GB of historical storm data that gets analyzed. Add notifications for users to get alerted about area flood and wildfire predictions. Also, implement more prediction models. Need to convert map tile layers to geospatial segments to query by.