Skip to content

Django web app that allows user to select area and date range to calculate potential bare soil areas from NDVI values of Sentinel 2 imagery.

Notifications You must be signed in to change notification settings

cbaggini/baresoil

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bare soil calculator

Django app to calculate potential areas of bare soil analysing Sentinel2 satellite imagery with Google Earth Engine.

Table of Contents

About The Project

This Django website uses Sentinel2 satellite images processed with Google Earth Engine to estimate bare soil presence in an user-selected area and date. This website uses Sentinel2 level-2A imagery, which shows atmospherically corrected surface reflectance with 10 metres resolution. This is available since March 2018 for most of Europe, and since December 2018 for the rest of the world.

On the home page, the user can select a month and year and an area of interest. A three-month time range centered on the selected month will be searched for images with cloud cover lower than 30%. If images are available, the system will produce a bare soil layer based on a user-selected Normalised Difference Vegetation Index (NDVI) range. The bare soil layer potential area is determined by selecting the classes "bare soil" and "vegetation" pixels in the SCL (scene classification) band and then only selecting the pixels in the selected NDVI range. A cloud mask layer is produced by selecting the cloud and cirrus masks in the QA band.

The user can save the parameters of the request to the website database, and the latest five saved queries will be shown in the "Latest items" page.

The app needs to be connected to a local or remote instance of a PostGIS database.

Demo at https://tranquil-falls-73463.herokuapp.com/home/

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

Python >= 3.7

A PostGIS database

A Google Earth Engine API key (instructions on how to get one here)

Installation

  1. Clone the repo
git clone https://github.com/cbaggini/baresoil.git
  1. Install the necessary Python packages
pip install requirements.txt
  1. Add settings.py to the geodjango folder.

Usage

Home page

Here the user can select the month they want to get data for and draw the area of interest on a map.
Clicking "Next" will redirect them to the calculation page. alt text

Calculation page

Here the user automatically zooms to the area they selected in the previous page and decide which range of Normalised Vegetation Difference Index (NDVI) is likely to indicate potential bare soil.
Clicking "Calculate" will perform the calculations on Google Earth Engine and will add three layers to the map: satellite imagery, potential bare soil (red) and cloud cover, where the calculation could not be performed (blue).
The calculation can be repeated many times with different values until the user is happy with the result
Clicking "Save" will save the request into the database.

alt text

Latest items

Here the user can visualise the latest five queries that have been saved to the database.
alt text

About

Django web app that allows user to select area and date range to calculate potential bare soil areas from NDVI values of Sentinel 2 imagery.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published