Giter VIP home page Giter VIP logo

palak-b19 / flood-ml Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 14.86 MB

A Machine Learning-powered web app, predicts global floods with a sci-kit learn model boasting 98.71% accuracy. Utilizing a robust dataset from web scraping and weather APIs, FloodML offers diverse visualizations for user-friendly flood preparedness. Developed on Flask and hosted on Heroku.

License: MIT License

Python 0.06% HTML 94.73% JavaScript 4.81% CSS 0.40%

flood-ml's Introduction

FloodML

FloodML is a web application that leverages Machine Learning to predict floods based on weather and historical data.

Overview

Getting Started

  • Clone the project
  • Install dependencies
  • Activate virtual environment
  • Run pip install -r requirements.txt
  • Run python app.py

Inspiration

Floods, exacerbated by climate change, pose a growing threat worldwide. To address this, we created FloodML—an interactive web app for predicting and visualizing floods.

Core Components

1. Plots

  • Flood Prediction Plot (Red dots for predicted flood locations)
  • Precipitation Plot (Bubbles indicate precipitation volume)
  • Damage Analysis Plot (Bubble size represents estimated monetary damage)

2. Heatmaps

  • Damage Analysis Heatmap (Colors indicate predicted monetary damage)
  • Precipitation Heatmap (Dark red areas signify higher precipitation)
  • Flood Prediction Heatmap (Darker red spots indicate likely flood locations)

3. Satellite Images

  • Displays precipitation volume over Indian cities
  • Uses NASA's Global Precipitation Measurement Project data

4. Predict Page

  • Real-time weather forecast and flood prediction for any city
  • Includes temperature, humidity, cloud cover, wind speed, and precipitation

Development Process

The Dataset

  • Scraped floodlist.com using Beautiful Soup 4
  • Utilized Visual Crossing weather API for historic weather data
  • Applied data augmentation techniques for model diversity

ML Model

  • Built on the sci-kit learn library
  • Explored various models; Random Forest Classifier achieved 98.71% accuracy
  • Saved model using pickle

Data Visualization

  • Integrated major Indian cities' data with weather factors
  • Utilized Plotly chart studio for diverse map visualizations

Front-end and Hosting

  • Developed with Flask framework
  • Hosted on Heroku

Challenges

  • Limited data availability for floods in India
  • Plotly integration complexities
  • Git merge conflicts due to encoding and version disparities

Achievements

  • Created a robust dataset for accurate flood predictions
  • Implemented a machine learning model with over 98% accuracy
  • Successfully integrated data augmentation and visualization techniques

Learnings

  • Enhanced skills in web scraping, data mining, and Plotly
  • Expanded proficiency in machine learning models

Future Plans

  • Expand coverage to cities worldwide
  • Implement image classification for flood detection using satellite data

FloodML aims to aid people and governments in flood preparation, potentially saving lives and livelihoods. Visit FloodML to explore the tool.

flood-ml's People

Contributors

palak-b19 avatar

Stargazers

Yashovardhan Singhal avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.