Land Cover mapping using Sentinel-2 data

Sep-2017: Note that there are now two separate services: LandCoverS2 and LandCoverS2OLD. The first, LandCoverS2, is a newly revised version designed and tested to work with the current singe-tile Sentinel-2 data format, and supporting the use of the full 10 m resolution. On the other hand, LandCoverS2OLD can be used with the old format Sentinel-2 data files, and only the use of 20 m resolution is recommended to avoid processing faults. The old format data can be recognized by its size (as well as the date); they are roughly 6-7 GB instead of the new single tile format data files of roughly 1 GB.

June-17: This tutorial has been originally written for the platform version 0.6.11.

Land use and land cover types (such as water, coniferous forest, or wheat field) reflect various amount of incoming sun radiation in various parts in the electromagnetic spectrum i.e. in spectral bands of the MSI sensor aboard the Sentinel-2 satellites. The combination of reflectance values measured in a pixel can be compared to land-cover specific reflectance signatures. Many land-cover mapping or classification algorithms have been developed over the past decades. The algorithm chosen for land cover mapping in the F-TEP land cover service is the random forest algorithm. Based on samples of land cover classes, a set of decision trees are produced. For each tree, a random set of spectral bands at each decision node is chosen. The final land cover class is then chosen based on majority voting between the output of each decision tree. The benefits of the random-forest algorithm include good adaptation to many different types of classification problems as well as independence of assumptions on statistical distribution of band-wise reflectance values within a (land-cover) class.

Sentinel-2 Land Cover service data inputs:

The Sentinel-2 land cover service within F-TEP requires 2 data inputs:

  • A shapefile containing reference data for training the classifier
  • A Sentinel-2 image (in case of LandCoverS2OLD can also be several collected into a Databasket)

The reference data shape file must include polygons, each polygon covering area belonging to just one land cover class.  For each target class, the reference data must include several hundred pixels in the used input data at the selected pixel size. The reference data shape file – and all supporting files like the .dbf file, .prj file and the .shx file - must be packaged into a single .zip file. The zip file must be loaded to some web server so that it can be accessed via its URL (Universal Resource Locator) or web address.

The Sentinel-2 land cover service does not pose strict requirements on the geographic distribution of the reference data as long as there are enough reference polygons for each class within the selected input image. The shape file can include e.g. 50 m by 50 m squares in a regular grid pattern and interpreted in some satellite imagery, air photos or maps. Or it can contain more freely selected polygons in places where the user knows the land cover. A good reference dataset includes samples for all possible sub-classes of a land cover class. For instance, if land cover class “water” includes both clear water and turbid water with sediment, the water class in the reference data should include samples of both of these sub-classes.

A simple reference data file can be made with GIS tools like QGIS or ArcGIS. Google Earth can also be used. Delineate the class-wise polygons with the polygon tool of GoogleEarth and write a numeric class code as a description of each polygon. Save the folder containing these polygons (by right-clicking on the folder name) as a .kml file. Then convert the .kml file into a shape file using GIS tools like QGIS or the ogr2ogr utility, which is part of the GDAL software package.

Running the Sentinel-2 Land Cover service:

The Sentinel-2 land cover service requires defining parameters in the Service dialogue panel ("workspace") shown below:

These parameters should be defined in the following order:

  1. Select the Input DataThe input Sentinel-2 image which have been previously defined. Selection of satellite image data is covered in a separate tutorial. Drag the input Sentinel-2 image (grabbing from the horizontal lines in front of its name) from the Results tab at the bottom of the screen to Input Field 1.
    Select Sentinel-2 Land Cover Input files
  2. Define the Reference data shapefile: Here you need to define the reference data shapefile to be used, i.e. a .zip package file containing all the files belonging to the shapefile.
    • If you have previously uploaded your own reference data to the platform (using the Files feature in the Manage/Share section), do a search for reference data to locate your file. After identifying your reference data file in the search results, click the Workspace icon on the left to return to the service definition so that your previous inputs are intact. Drag your reference data file from the search results view to Input Field 2.
    • Alternatively, you can write in Input Field 2 the URL of a reference data (zip packaged shapefile) that you have available in a publicly available web location. An example of a valid reference data address is http://enviobserver.vtt.fi/ftepref/F-TEPchiapasLandCover.zip.
  3. Define the field in the Reference data shapefile that will be used to train the classifer: Write the name of the class code column (“tessellate” in this example) of your reference data shape file to Input Field 3. GIS tools (QGIS in this example) show the column names in an attribute table:
  4. Target CRS identifier: Write the code for the output Coordinate Reference System (CRS) to Input Field 4.  This must be a string beginning with “EPSG:”, and the following numeric code must be a valid system as defined by the European Petroleum Survey Group. For UTM zones in northern hemisphere and with the WGS84 datum, the numeric code is 32600 + the UTM zone number. An example of a valid CRS specification is: EPSG:32615
  5. Area of interest (AOI): Define the AOI to be processed in Input Field 5. This can be copied from the area drawn on the map by pressing the Copy from Map button. Alternatively this can be added as simple text, although it needs to follow the WKT POLYGON specification. An example of a valid AOI specification is: POLYGON((-92.906633 16.190411,-92.066559 16.188383,-92.070266 15.376645,-92.907004 15.378567,-92.906633 16.190411)). The AOI should be large enough that it includes enough reference data for all target class.
  6. Define the Target Image Resolution. Write the requested output image pixel spacing (in metres) to Input Field 6. For Sentinel-2 optical data, feasible values are between 10 and 100 m. Example: '20'

After all input fields have been filled in, the Sentinel-2 land cover service is launched by clicking the round play button at the bottom right corner of the input dialogue area. The resulting output can be downloaded, re-used or displayed in one of the GUI applications such as Sentinel Toolbox or QGIS. Tutorials on opening data within the Sentinel Toolbox and QGIS are provided. The image below shows a generated land cover map within QGIS.