README.md 6.06 KB
Newer Older
Peter Kettig's avatar
Peter Kettig committed
1 2
# WASP - Weighted Average Synthesis Processor

Olivier Hagolle's avatar
Olivier Hagolle committed
3
Image processing chain based on OTB to create monthly syntheses of cloud-free reflectances for Sentinel-2 or Venus Level-2A products distributed by the [Theia Land data centre](https://theia.cnes.fr/atdistrib/rocket/#/home).
Peter Kettig's avatar
Peter Kettig committed
4

Olivier Hagolle's avatar
Olivier Hagolle committed
5
<a href="http://cesbio.cnrs.fr/images/France_4mois.jpg"><img  title="Ambaro Bay, Madagascar" src="http://cesbio.cnrs.fr/images/France_4mois.jpg" alt="" width="500" height="400" align="middle"  /></a>
Peter Kettig's avatar
Peter Kettig committed
6 7

## Inputs, algorithm and outputs
8
The processing chain creates a synthesis image from multiple Level-2A tiles produced with [MAJA](http://www.cesbio.ups-tlse.fr/multitemp/?p=6203). MAJA Level 2A products can be obtained:
Peter Kettig's avatar
Peter Kettig committed
9

10 11 12 13
* [From Theia, the French Land data centre, for several countries or regions](https://theia.cnes.fr/atdistrib/rocket/#/search?page=1&collection=SENTINEL2&processingLevel=LEVEL2A)
* [From PEPS, as an on-demand processing, anywhere on the world](https://github.com/olivierhagolle/maja_peps)
* [Using MAJA on user side](https://github.com/olivierhagolle/Start_maja)
* [within the Sen2Agri project](http://www.esa-sen2agri.org/)
Peter Kettig's avatar
Peter Kettig committed
14

15
The weigted average synthesis method to combine the inputs into one single synthesis is described [here](http://www.cesbio.ups-tlse.fr/multitemp/?p=13976).
Peter Kettig's avatar
Peter Kettig committed
16
Once synthesized, a Level-3 product is generated further described in the [format description](http://www.cesbio.ups-tlse.fr/multitemp/?page_id=14019).
17 18 19

Theia also produces [**Level 3A products with WASP over France**](https://theia.cnes.fr/atdistrib/rocket/#/search?page=1&collection=SENTINEL2&processingLevel=LEVEL3A), and soon over all the zones already processed by Theia.

Peter Kettig's avatar
Peter Kettig committed
20 21 22

## Getting Started

Olivier Hagolle's avatar
Olivier Hagolle committed
23
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. MAJA is available as pre-compiled binary, or as a source code that you will have to compile.
Peter Kettig's avatar
Peter Kettig committed
24 25 26 27


### Pre-compiled binaries

Olivier Hagolle's avatar
Olivier Hagolle committed
28
WASP binaries are available for Linux distributions [**under the following link**](https://logiciels.cnes.fr/en/content/wasp)
Peter Kettig's avatar
Peter Kettig committed
29 30


31 32 33 34 35 36 37 38 39 40 41 42 43 44
To install it, first make sure you have GLU installed:

__For CentOS__

```
yum install mesa-libGLU-devel
```

__For Ubuntu__
```
apt-get install libglu1-mesa-dev
```

Then extract and execute the downloaded executable:
Peter Kettig's avatar
Peter Kettig committed
45 46

```
47
./WASP-1.x.run --target /path/to/install
Peter Kettig's avatar
Peter Kettig committed
48 49 50 51
```

### Compiling from source

Olivier Hagolle's avatar
Olivier Hagolle committed
52 53 54 55 56 57 58 59
#### Prerequisites

The program has the following dependencies:
* OTB 6.2 (https://orfeo-toolbox.org)
* Python 2.7 or >3.5 (https://www.python.org/downloads/)
* CMake >3.7.2 (https://cmake.org)
* GCC >6.3.0 (https://gcc.gnu.org) or any other C/C++ compiler for your system

Peter Kettig's avatar
Peter Kettig committed
60 61 62 63
In order to install the software, first install CMake, the c/c++ compiler and the python interpreter (optional). Then follow the tutorial on how to install OTB via the Superbuild to the desired location:

*https://www.orfeo-toolbox.org/SoftwareGuide/SoftwareGuidech2.html#x16-220002.1.2*

Olivier Hagolle's avatar
Olivier Hagolle committed
64 65 66
Note: You do not need to activate/deactivate any modules. The default configuration works out of the box.*

#### compile and install WASP:
Peter Kettig's avatar
Peter Kettig committed
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
```
cd $WASP_DIR
mkdir build && install
cd build
cmake .. -DCMAKE_PREFIX_PATH=/path/to/OTB
```

Eventually you have to specify the location to your compiler by setting ```CMAKE_C_COMPILER``` and ```CMAKE_CXX_COMPILER```.
Then, run
```
make && make install
```

## Run the software

In order to run the processing chain, the script WASP located in the bin/ folder after installation has to be called.
For an explanation on which inputs the program takes, simply execute

```
./bin/WASP --help
```

### Example

Olivier Hagolle's avatar
Olivier Hagolle committed
91
First, you need to download and unzip the Level-2 products of your choice. Have a look at the [theia_download tool](https://github.com/olivierhagolle/theia_download) if you don't know how to do this.
Peter Kettig's avatar
Peter Kettig committed
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
The following command line creates a composite centered around the 2018/05/02 out of 9 Level-2A products from a 46-day period:

```
./bin/WASP \
--input ./SENTINEL2A_20180525-103024-462_L2A_T32ULV_D_V1-
7/SENTINEL2A_20180525-103024-462_L2A_T32ULV_D_V1-7_MTD_ALL.xml \
./SENTINEL2A_20180518-104024-461_L2A_T32ULV_D_V1-7/SENTINEL2A_20180518-104024-
461_L2A_T32ULV_D_V1-7_MTD_ALL.xml \
./SENTINEL2A_20180508-104025-460_L2A_T32ULV_D_V1-7/SENTINEL2A_20180508-104025-
460_L2A_T32ULV_D_V1-7_MTD_ALL.xml \
./SENTINEL2A_20180515-103024-459_L2A_T32ULV_D_V1-7/SENTINEL2A_20180515-103024-
459_L2A_T32ULV_D_V1-7_MTD_ALL.xml \
./SENTINEL2A_20180505-103125-791_L2A_T32ULV_D_V1-7/SENTINEL2A_20180505-103125-
791_L2A_T32ULV_D_V1-7_MTD_ALL.xml \
./SENTINEL2A_20180415-103544-548_L2A_T32ULV_D_V1-7/SENTINEL2A_20180415-103544-
548_L2A_T32ULV_D_V1-7_MTD_ALL.xml \
./SENTINEL2B_20180420-103302-810_L2A_T32ULV_D_V1-7/SENTINEL2B_20180420-103302-
810_L2A_T32ULV_D_V1-7_MTD_ALL.xml \
./SENTINEL2A_20180418-104512-083_L2A_T32ULV_D_V1-7/SENTINEL2A_20180418-104512-
083_L2A_T32ULV_D_V1-7_MTD_ALL.xml \
./SENTINEL2A_20180412-105510-678_L2A_T32ULV_D_V1-7/SENTINEL2A_20180412-105510-
678_L2A_T32ULV_D_V1-7_MTD_ALL.xml \
--out . \
--date 20180502 \
--synthalf 23 \
```

Once the processing finishes, the following line should be displayed:
```
================= WASP synthesis of 9 inputs finished in xxxx.xx s =================
```

The resulting product can be then found under
```
./SENTINEL2X-20180502-000000-000_L3A_T32ULV_C_V1-1
```

Click [here](http://www.cesbio.ups-tlse.fr/multitemp/?page_id=14019) for the format description.

## Built With

* [OTB](https://orfeo-toolbox.org) - The Orfeo toolbox

Olivier Hagolle's avatar
Olivier Hagolle committed
135
## History/Copyright
Peter Kettig's avatar
Peter Kettig committed
136

Olivier Hagolle's avatar
Olivier Hagolle committed
137
WASP method was initially developped at CESBIO by O.Hagolle for the VENµS satellite.
Peter Kettig's avatar
Peter Kettig committed
138

Olivier Hagolle's avatar
Olivier Hagolle committed
139 140 141
WASP processor comes from the initial work performed within the [Sen2Agri](http://www.esa-sen2agri.org/) project, by the following consortium :

* **Université Catholique de Louvain (UCL)**
Peter Kettig's avatar
Peter Kettig committed
142
* **CS Romania**
Olivier Hagolle's avatar
Olivier Hagolle committed
143 144
* **CS France**
* **Centre d'Etudes Spatiales de la Biosphère (CESBIO)**
Peter Kettig's avatar
Peter Kettig committed
145

Olivier Hagolle's avatar
Olivier Hagolle committed
146 147
Within Sen2Agri, WASP processor was mainly developped at CS-Romania by :
Cosmin Udroiu, Alex Grosu, Laurentiu Nicola, Lucian Barbulescu and Anca Trasca
Peter Kettig's avatar
Peter Kettig committed
148

Olivier Hagolle's avatar
Olivier Hagolle committed
149
WASP was then adapted to CNES context by Peter Kettig from
Peter Kettig's avatar
Peter Kettig committed
150 151 152 153
* **Centre National d'Etudes Spatiales (CNES)** 

## License

Olivier Hagolle's avatar
Olivier Hagolle committed
154
This project is licensed under the GPLv3+ License - see the [LICENSE.md](LICENSE.md) file for details
155