Marble/Sentinel2MapTheme: Difference between revisions

From KDE TechBase
(Page moved to community wiki)
 
(41 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Satellite Map Theme based on the Sentinel 2 Mission =
{{ Moved To Community }}
 
== Introduction/Motivation ==
 
This page is about the process that allows to create a satellite map theme for Marble based on the Sentinel data.
 
== Sentinels Scientific Data Hub ==
 
=== Registering at the SciHub ===
 
Go to the [https://scihub.copernicus.eu/dhus/#/self-registration Registration website of the SciHub]  and enter your name, username, password, e-Mail and country. As a domain you can choose "Land" and "Research" for the usage.
 
Once you press the '''Register''' button you will receive an e-Mail which allows you to finalize your registration in the SciHub system by pressing the included link.
 
As an alternative to creating your own login you can use "guest/guest" as a username/password when logging in.
 
=== Looking for data ===
 
Go to the [https://scihub.copernicus.eu/dhus/#/home SciHub website] and press the '''Login Button''' to enter it.
On the right side you can press the layers button to choose between the Hybrid, Road (OpenStreetMap) and Satellite map (Blue Marble/LandSat) for orientation.
 
Now we are ready to query some actual Sentinel data. In order to limit our query to useful entries we recommend these adjustments: Press the menu button on the left of the query line edit to enter the Advanced Search
 
[[File:ss1.png]]
 
* Check '''Mission: Sentinel-2'''
* Enter '''[0 TO 10]''' in the cloud coverage Section
 
Press the menu button again. The button will turn into a filter icon. Then enter a '''country name''' (e.g. Germany). As a result of the query you will get a list of entries.
 
[[File:ss2.png]]
 
You can browse through the pages. The '''thumb nails''' give you an idea about the quality of the photographic images. You can press the "eye" button to get an enlarged version of the thumbnail and to get more information.
 
* images that contain an '''area that hasn't been included in the map theme''' yet
* images that ideally have '''no cloud cover'''
* images that were taken in '''bright light'''.
* images that includes a maximum amount of complete tiles (with a minimum of tilted cut off black portions).
 
Once you've made a choice we suggest that you write down:
 
* the '''id''' of the entry (which you can retrieve by pressing the "eye" icon for the entry and copy the id from the title line.
* and the '''download url'''
 
in a text file. Good examples are:
 
id:    S2A_OPER_PRD_MSIL1C_PDMC_20160508T220612_R008_V20160508T104027_20160508T104027
url:  https://scihub.copernicus.eu/dhus/odata/v1/Products('4658007a-76a0-455c-bb9a-d9e789b5e1e3')/$value
 
id:    S2A_OPER_PRD_MSIL1C_PDMC_20160508T221741_R008_V20160508T104027_20160508T104027
url:  https://scihub.copernicus.eu/dhus/odata/v1/Products('0ded3149-d971-4524-ab80-536ffc1cbb55')/$value
 
Now click the download link to download the tile. The download will amount to 4-7GB on average. Even if the download gets aborted in the browser it should be possible to continue the download later on. Depending on the connection the download might take a few hours. At times the SciHub server has temporary maintenance down times.
 
Once the zip file is download '''unzip''' it in a directory of your choice. Make sure that your hard disc still has enough space left (approx. 10 GB).
 
''Note:'' Once QGIS is installed you could also download further tiles using the SCP plugin, however this approach lacks the nice thumbnails for introspection:
 
* [https://www.youtube.com/watch?v=fVS2Ls2bUbk Search and Download Sentinel-2 Images Using the Semi-Automatic Classification Plugin ]
 
== Using QGIS to edit the Sentinel 2 data ==
 
=== QGIS installation ===
 
In order to process the data you need to install QGIS.
On Ubuntu/Debian you can do this e.g. by opening a terminal and type:
 
sudo apt-get update
 
Type in a terminal:
 
'''sudo apt-get install qgis'''
 
=== Installing the required plugins ===
 
Launch QGIS and enter the '''Plugins''' menu. There choose '''Manage and Install Plugins'''.
Select '''Not Installed''' and choose the following plugins for installation in the list:
 
* '''QTiles'''
 
Also we recommend the following tools:
 
* Semi-Automatic Classification Plugin
* OpenLayers Plugin
 
Once you installed the Semi-Automatic Classification Plugin please right-click on the toolbar and enable the SCP toolbar.
 
=== Using QGIS to create GeoTiffs for Sentinel-2 subtiles ===
 
Download the [[File:sentinel.zip]] file and extract it in your home directory. It contains two files: createvrts.py and sentinel-marble.qml. Add the executable flag to the createvrts.py file.
 
Enter the '''GRANULE''' directory inside the .SAFE directory of the unzipped Sentinel-2 data. Then execute the createvrts.py createvrts.py script from inside that directory. It should create a '''vrts directory''' inside the GRANULE directory. Inside this directory you should find several .vrt files.
 
Now launch QGIS. Press '''Ctrl-Shift-R''' (or '''Layer->Add Layer->Add Raster Layer'''). We'd like to load several .vrt files at once. However loading all would most likely require too much memory. So we have to load them in batches: Using the Ctrl-Key select the first six .vrt files inside the newly created vrts directory. Then press '''Open'''.
 
(In case QGIS crashes on opening the vrt it might be due to a corrup jp2 file. In that case try to find out which jp2 is the culprit by trying to load the jp2 files into QGIS one by one via the Add Raster Layer feature. Once the corrupted jp2 is identified you can use the following workaround: copy it over by the jp2 with the closest band number. This will unfortunately result in a slightly different color shade).
 
Now we want to apply proper colorization and styling:  The styling is stored inside the sentinel-marble.qml file (short for QGIS markup language - so it's NOT a Qt Quick file).
 
* '''Right-click''' on the '''first''' (file) '''entry''' in the Layers panel.
* Press '''Properties'''.
* Press the '''Style button''' in the lower left corner
* Press '''Load Style''' and load the '''sentinel-marble-qml''' file.
 
 
[[File:style.jpg]]
 
 
* Press '''Apply'''. As a result the color of the tile should change to something more vivid.
* Right-click on the first (file) entry in the Layers panel again and choose '''Styles->Copy Style'''
* Then right click on all other (file) entries in the Layers panel and choose '''Styles->Paste Style''' for each entry.
 
 
As a temporary result you should see something like this:
 
 
[[File:sentinel6tiles.jpg]]
 
 
[[File:sentinel_closeup.jpg]]
 
 
Now we want to save the resulting virtual tiles into actual GeoTIFF files:
* Right-click on the first (file) entry in the Layers panel.
* Choose '''Rename'''. Then copy the file name using '''Ctrl-C''' and press '''Enter'''.
* Right-click on the first (file) entry in the Layers panel.
* Choose '''Save As'''
 
 
[[File:saveas.jpg]]
 
 
* As an '''Output mode''' in the dialog choose '''Rendered Image'''.
* Click  '''Browse''' Button in the '''Save As field''', navigate to the tif directory inside the GRANULE directory. Press '''Ctrl+V''' to paste the layer name.
* Press '''Ok''' and fetch a cup of coffee while the progressbar goes up to 100%.
* ''Repeat this procedure for all other entries.''
 
 
The resulting GeoTIFF files will contain the rendered image in RGB representation without storing each band. This is lighter on memory and is better suited for tile processing. While the GeoTIFF files amount to about 450MB they can be zipped to about '''75 MB'''. Therefore they are also better suited for long-term storage than the original jp2 files. So please keep those files on a USB disk in case you want to recreate tiles later on.
 
Once you are done with creating the first batch of GeoTiffs quit QGIS and restart it.
Then repeat the steps in this chapter for the other vrt files until there is a GeoTIFF file for every vrt file.
 
=== Tile Creation ===
Press Ctrl-Shift-R (or Layer->Add Layer->Add Raster Layer) and select all GeoTIFFs that you've created in the previous step.
 
[[File:sentinel_netherlands.jpg]]
 
With the new sentinel layer loaded and proper band sets in place we can now start to create our own tiles:
 
Press '''Plugins -> QTiles -> QTiles'''  then
 
* In the ''Output'' section choose '''Directory''' and browse to your directory of choice where the tiles should be stored
* Enter '''sentinel2''' as a Tileset name
* In the ''Extent'' section choose '''Layer Extent'''
* In the ''Zoom'' section choose '''14''' as a maximum zoom level
* In the ''Parameters'' section enable '''Make lines appear less jagged''' and '''Render tiles outside of layers extents (within combined extent)'''.
 
 
[[File:ss6.png]]
 
''Questions: ''
 
''1. Are there any other alternatives to using QTiles? Any better QGIS plugins than this?''
 
''2. How can we merge multiple datasets?''
 
== Creating as custom DGML file for the Sentinel 2 data set ==
 
Creation of the DGML file should mostly be compatible with
 
[https://techbase.kde.org/Marble/OSMSlippyMaps How to integrate OSM "slippy" maps into Marble]
 
== Deployment on the server ==
 
For deploying the tiles on the server follow
 
[https://techbase.kde.org/Marble/ServerUpload Upload to our KDE server]

Latest revision as of 04:55, 26 October 2016

This page is now on the community wiki.