Multiband spectro-radiometric satellite image analysis with K-means cluster algorithm

Overview

Multi-band Spectro Radiomertric Image Analysis with K-means Cluster Algorithm

Overview

Multi-band Spectro Radiomertric images are images comprising of several channels / bands which hold information on band energy in each pixel.
The most common multi band channels are the RGB (Red Green Blue) channels of the visible light spectrum.

The images used are LANDSAT 8 satellite images and each image consist of three bands, namely: Thermal Infrared, Red and Near infrared bands corresponding to band 10, band 4 and band 5 of LANDSAT 8 satellite imagery with wavelengths of 10.895µm, 0.655µm and 0.865µm respectively.

Each pixel in each bands of each image are used to compute three features namely: NDVI (Normalized Differential Vegetative Index), PV (Portion of Vegetation) and LST (Land Surface Temperature).

The K-means cluster algorithm is initialized and the "number of clusters" hyper-parameter is set to 60. The algorithm is then trained on the extracted features and forms 60 different clusters represented by each of the 60 centroids.

These centroids are stored in the "ouput" folder and will be futher studied to learn what NDVI, PV and LST combinations a geograhical location might need to have for the occurence and spread of wild fire to be highly probable.



Features

NDVI (Normalized Differential Vegetative Index):

The Normalized Differential Vegetative Index is a metric for checking the presence and health of a vegetation in a given region.
It is basically how much RED light energy from the visible light spectrum is absorbed by the plant and how much NIR (near-infrared rays) it emmits.
Healthy vegetation absorbs red-light energy to fuel photosynthesis and create chlorophyll, and a plant with more chlorophyll will reflect more near-infrared energy than an unhealthy plant.
The NDVI ranges from -1 to 1, -1 corresponds to a very unhealthy plant and 1 corresponds to a very healthy plant.

The mathematical expression for NDVI is:
NDVI = (NIR - RED) / (NIR + RED)


PV (Portion of Vegetation):

Portion of Vegetation is the ratio of the vertical projection area of vegetation on the ground to the total vegetation area

The mathematical expression for PV is:
PV = (NDVI - NDVImin) / (NDVImin + NDVImax)
NDVImin is the minimum NDVI value a pixel holds in a single image
NDVImin is the maximum NDVI value a pixel holds in a single image


LST (Land Surface Temperature):

Land Surface Temperature is the radiative temperature / intensity of the land surface

The mathematical expression for LST is:
LST = BT / ( 1 + ( ( kn * BT / p ) * np.log(E) ) )

BT is brighness Temperature in celcius and is mathematically expressed as:
BT = (K2 / np.log( ( K1 / TOA ) + 1 )) - 273.15
where K1 and K2 are landsat 8 constants 774.8853 and 1321.0789 respectively

TOA (Top of Atmosphere) Reflectance is a unitless measurement which provides the ratio of radiation reflected to the incident solar radiation on a given surface.
It is mathematically expressed as:
TOA = ML * TIR + Al
where ML and Al are landsat 8 constants 3.42E-4 and 0.1 respectively.

p is mathematically expressed as:
p = hc/A
where h, c and a are plank's constant, speed of light and boltzmann constant respectively

E is emissivity of the land surface and is mathematically expressed as:
( Ev * PV * Rv ) + ( Es * ( 1 - PV ) * Rs ) + C
where:
Ev (Vegitation Emissivity) of location = 0.986
Es (Soil Emissivity) of location = 0.973
C (topography factor) of location = 0.0001
Rv =(0.92762 + (0.07033PV))
Rs=(0.99782 + (0.05362
PV))



Dependencies

  • Rasterio
  • Numpy
  • Pandas
  • Sklearn
  • Pickle


Setup

clone the repository and download the 'requirement.txt' files, then open terminal in the working directory and type 'pip install -r requirements.txt' to install all the requirements for this project.
Owner
Chibueze Henry
A machine learning enthusiast and developer as well as a full-stack web developer
Chibueze Henry
Beancount-mercury - Beancount importer for Mercury Startup Checking

beancount-mercury beancount-mercury provides an Importer for converting CSV expo

Michael Lynch 4 Oct 31, 2022
A configurable, tunable, and reproducible library for CTR prediction

FuxiCTR This repo is the community dev version of the official release at huawei-noah/benchmark/FuxiCTR. Click-through rate (CTR) prediction is an cri

XUEPAI 397 Dec 30, 2022
Vehicle Detection Using Deep Learning and YOLO Algorithm

VehicleDetection Vehicle Detection Using Deep Learning and YOLO Algorithm Dataset take or find vehicle images for create a special dataset for fine-tu

Maryam Boneh 96 Jan 05, 2023
PyTorch implementation of NeurIPS 2021 paper: "CoFiNet: Reliable Coarse-to-fine Correspondences for Robust Point Cloud Registration"

PyTorch implementation of NeurIPS 2021 paper: "CoFiNet: Reliable Coarse-to-fine Correspondences for Robust Point Cloud Registration"

76 Jan 03, 2023
Python scripts for performing stereo depth estimation using the HITNET Tensorflow model.

HITNET-Stereo-Depth-estimation Python scripts for performing stereo depth estimation using the HITNET Tensorflow model from Google Research. Stereo de

Ibai Gorordo 76 Jan 02, 2023
Code for the paper 'A High Performance CRF Model for Clothes Parsing'.

Clothes Parsing Overview This code provides an implementation of the research paper: A High Performance CRF Model for Clothes Parsing Edgar Simo-S

Edgar Simo-Serra 119 Nov 21, 2022
Music library streaming app written in Flask & VueJS

djtaytay This is a little toy app made to explore Vue, brush up on my Python, and make a remote music collection accessable through a web interface. I

Ryan Tasson 6 May 27, 2022
Improving Deep Network Debuggability via Sparse Decision Layers

Improving Deep Network Debuggability via Sparse Decision Layers This repository contains the code for our paper: Leveraging Sparse Linear Layers for D

Madry Lab 35 Nov 14, 2022
Hashformers is a framework for hashtag segmentation with transformers.

Hashtag segmentation is the task of automatically inserting the missing spaces between the words in a hashtag. Hashformers applies Transformer models

Ruan Chaves 41 Nov 09, 2022
A general python framework for single object tracking in LiDAR point clouds, based on PyTorch Lightning.

Open3DSOT A general python framework for single object tracking in LiDAR point clouds, based on PyTorch Lightning. The official code release of BAT an

Kangel Zenn 172 Dec 23, 2022
CityLearn Challenge Multi-Agent Reinforcement Learning for Intelligent Energy Management, 2020, PikaPika team

Citylearn Challenge This is the PyTorch implementation for PikaPika team, CityLearn Challenge Multi-Agent Reinforcement Learning for Intelligent Energ

bigAIdream projects 10 Oct 10, 2022
Pytorch implementation for Patient Knowledge Distillation for BERT Model Compression

Patient Knowledge Distillation for BERT Model Compression Knowledge distillation for BERT model Installation Run command below to install the environm

Siqi 180 Dec 19, 2022
Unofficial pytorch implementation of 'Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization'

pytorch-AdaIN This is an unofficial pytorch implementation of a paper, Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization [Hua

Naoto Inoue 873 Jan 06, 2023
DeepLab resnet v2 model in pytorch

pytorch-deeplab-resnet DeepLab resnet v2 model implementation in pytorch. The architecture of deepLab-ResNet has been replicated exactly as it is from

Isht Dwivedi 601 Dec 22, 2022
Oscar and VinVL

Oscar: Object-Semantics Aligned Pre-training for Vision-and-Language Tasks VinVL: Revisiting Visual Representations in Vision-Language Models Updates

Microsoft 938 Dec 26, 2022
Official PyTorch implementation of GDWCT (CVPR 2019, oral)

This repository provides the official code of GDWCT, and it is written in PyTorch. Paper Image-to-Image Translation via Group-wise Deep Whitening-and-

WonwoongCho 135 Dec 02, 2022
A GPU-optional modular synthesizer in pytorch, 16200x faster than realtime, for audio ML researchers.

torchsynth The fastest synth in the universe. Introduction torchsynth is based upon traditional modular synthesis written in pytorch. It is GPU-option

torchsynth 229 Jan 02, 2023
RodoSol-ALPR Dataset

RodoSol-ALPR Dataset This dataset, called RodoSol-ALPR dataset, contains 20,000 images captured by static cameras located at pay tolls owned by the Ro

Rayson Laroca 45 Dec 15, 2022
This repo is about implementing different approaches of pose estimation and also is a sub-task of the smart hospital bed project :smile:

Pose-Estimation This repo is a sub-task of the smart hospital bed project which is about implementing the task of pose estimation 😄 Many thanks to th

Max 11 Oct 17, 2022