Skip to content

dida-do/asmspotter

Repository files navigation

ASMSpotter for Sentinel 2, Change Detection with Sentinel 1

Use of this repo

This includes the vast majority of the code for the ASMSpotter service. However we are only able to support the inference and visualisation scripts. An overview of how to use these can be found in the howto.ipynb notebook.

Architecture

The ASMSpotter is currently deployed and can create automatic predictions on app.asmspotter.com. You can find credentials for the login in Bitwarden.

Here is a WIP overview of the current architecture of the deployment of the ASMSpotter: https://drive.google.com/file/d/1xjAqXrpI2MhlQFsrB--00L0SHHKSBryS/view?usp=sharing

The code of the project is split into several repos. This one is the main repo containing all the code for the Machine Learning backend including satellite data download and processing as well as the Geoserver code for streaming the final data to the frontend. The web application (app.asmspotter.com) is comprised of two repos: one for the web frontend and one for the web backend. Check their respective code bases for further documentation.

Infrastructure: the web frontend and backend are running on a serverless solution with low monthly running costs. The Geoserver for hosting and streaming the satellite data and predictions runs on a Google cloud VM here and is the biggest cost factor of 50-100€ per month. The ML backend is running on vapnik in the dir "media/NAS/projects/ASMSpotter/from_vapnik/esa-mining". It only consumes compute capacities if run by the commands listed below.

Installation

  1. Clone this repo
  2. Place your bucket key file ("keyname.json") for DVC inside the 'storage_key' folder.
  3. Create a virtual environment and activate it
  4. make env
  5. make install

Overview of the 'data' folder

Model weights and data should be stored in the data directory for ease of use, no data will be included in this release, we are looking into ways to open source the model weights.

The data-folder has the following structure:

data/ \
  ├── aois_for_inference/ Here are the areas of interest, on which we infer the ASMSpotter. \
  │   ├── suriname/ (manually created aois sorted by country) \
  │   │   ├── brokopondo_2 \
  │   │   └── ... \
  │   ├── jobs  (here are the jobs created by users of the web app) \
  │   │   ├── job_id \
  │   │   └── ... \
  │   └── ... \
  ├── sentinel_2_raw_imagery/      	This folder contains the unprocessed S-2 image files as zip archives. \
  ├── training_data/ \
  │   ├── training_set_s2-1		These folders contain the untiled oiginal images and handmade labels. \
  │   ├── ... \
  │   ├── training_tiles_s2-1	These are the corresponding tiles to use for model training. \
  │   ├── ... \
  │   └── README.md			The readme contains information about the sets to be found in this folder. \
  └── models			Here, the models are saved which one can use to infer on images.

File naming convention

Files will be named as follows, items are seperated by underscores '_':

"date_sensor_additional-infos_aoi-name_description.tif"
  • Position 1: date - the timestep, the file belongs to
  • Position 2: sensor - the satellite source, e.g. "S2" for Sentinel-2 or "S1" for Sentinel-1
  • Position 3...: additional-infos - any number of items which are relevant for the file type
  • Position -1: description - at the last position the type of information is saved, e.g. "cumulative"
  • here you can find a map with the Sentinel-2 tile names.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published