Skip to content

Classification of pixels into 7 forest cover types based on attributes such as elevation, aspect, slope, hillshade, soil-type. Application created using Flask, Docker, MongoDB and AWS S3

License

Notifications You must be signed in to change notification settings

natek-1/Forest-Covertype

Repository files navigation

Here's an updated README.md for your project:


Forest Cover Classification

This project classifies forest cover types using cartographic variables. We employ machine learning models such as SVM and XGBoost, including hyperparameter tuning, to predict cover types in the Roosevelt National Forest, Colorado.

Table of Contents

Introduction

The Forest Cover Classification project uses machine learning to predict forest cover types based on cartographic features, enhancing our understanding of ecological processes in minimally disturbed wilderness areas.

Project life cycle

Forest Cover Type Prediciton

  • Understanding the Problem Statement
  • Data Collection
  • Data Cleaning
  • Exploratory data analysis
  • Data Pre-Processing
  • Model Training and hyper parameter tuning
  • Model selection

Problem Statement

  • The data is from 4 wilderness areas located in the Roosevelt National Forest of northern Colorado. The wilderness areas are:
  1. Rawah Wilderness Area
  2. Neota Wilderness Area
  3. Comanche Peak Wilderness Area
  4. Cache la Poudre Wilderness Area The observation are taken from 30m x 30m patches of forest that are classified as one of seven cover types
  5. Spruce/Fir
  6. Lodgepole Pine
  7. Ponderosa Pine
  8. Cottonwood/Willow
  9. Aspen
  10. Douglas-fir
  11. Krummholz

Dataset Information

Project Structure

forest-cover-classification/
│
├── data/
│   ├── raw/                 # Raw data files
│   ├── processed/           # Processed data files
│
├── notebooks/               # Jupyter notebooks for exploration and prototyping
│
├── models/                  # Trained models
│
├── src/                     # Source code for model training and evaluation
│   ├── data_processing.py   # Data preprocessing scripts
│   ├── model.py             # Model architecture and training
│   ├── evaluation.py        # Evaluation metrics and visualization
│
├── app/                     # Flask application for deployment
│   ├── app.py               # Flask API
│
├── .github/workflows/       # GitHub Actions configuration
│   ├── ci.yml               # Continuous integration pipeline
│
└── README.md                # Project documentation

Setup

  1. Clone the repository:

    git clone https://github.com/yourusername/forest-cover-classification.git
  2. Install dependencies:

    pip install -r requirements.txt

Usage

  1. Train the model:

    python src/model.py
  2. Evaluate the model:

    python src/evaluation.py
  3. Run the Flask application:

    python app/app.py
  4. Access the app at: http://localhost:8080

Technologies Used

  • SVM and XGBoost: For model development and training.
  • MLflow: To track and manage machine learning experiments.
  • GitHub Actions: For continuous integration and deployment.
  • Flask: For building the web application.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License.

About

Classification of pixels into 7 forest cover types based on attributes such as elevation, aspect, slope, hillshade, soil-type. Application created using Flask, Docker, MongoDB and AWS S3

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages