Skip to main content

Model Impervious Surfaces using Sentinel Imagery

June, 2021

tip

Download the PDF here

Introduction

Arc Hydro consists of a data model, toolset, and workflows developed over the years to support specific geographic information system (GIS) implementations in water resources. The initial implementation of Arc Hydro was in 2002 with the data model, Arc Hydro book published by Esri Press, and an initial set of about 30 tools. Since then, Arc Hydro has been used in many projects, and in the process, new tools and workflows have been developed. There are more than 300 Arc Hydro tools now, and they continue to be expanded based on work in specific implementations.

This document describes the workflow execute by the Model Impervious Surfaces Using Sentinel Imagery tool. At a high level, this tool applies a pre-trained deep learning model to a Sentinel image. The deep learning model uses its learned relationships and dependencies between the Sentinel bands and the CORINE land cover classes to predict the landcover type for each cell in the Sentinel image. The landcover predictions are then reclassified into areas of pervious, impervious, and open water. Unless a user has already gathered their own Sentinel imagery and version of the deep learning model, they must be logged into ArcGIS online before running the tool.

Document History

Table 1. Document Revision History

VersionDescriptionDate
1First version (GLO)5/2021
2Link to Deep Learning Frameworks Installer (GLO)6/2021

This is one of several Arc Hydro "how to" documents. The following are the other suggested reading, in the order of importance:

  1. Arc Hydro - Project Development Best Practices

  2. Arc Hydro - ArcGIS Pro Project Startup Best Practices

Users should also refer to documentation for the CORINE landcover classes:

  1. Copernicus Technical Library

Solution Overview

The Model Impervious Surfaces Using Sentinel Imagery tool reclassifies a set of landcover predictions into pervious, impervious, and open water areas. The initial landcover predictions are generated using a pre-trained deep learning model. This tool is in the Arc Hydro Tools Pro toolbox supporting ArcGIS Pro 2.7 and later.

The steps executed are:

  1. Authenticates into ArcGIS online or ArcGIS enterprise using the ArcGIS Pro credentials.

    1. If the user provides both the Input Sentinel Raster and CORINE Deep Learning Model inputs, authentication is not necessary and will be skipped. Steps 2 and 3 will also be skipped.
  2. Downloads a Sentinel-2 image that covers the extent of the Input Boundary Feature.

    1. The download will include a natural color representation of the scene (RGB bands) and a full image (all 13 Sentinel bands). The full image will render as fully black.

    2. Images are acquired from the Living Atlas Sentinel-2 Image Service.

    3. The selected image will be the most recent and cloud free scene available at the time of tool execution. If the user wants to characterize the landscape from a different timeframe, they can manually acquire a Sentinel-2 image (with all 13 bands) from the desired timeframe and use this instead.

  3. Downloads the Land Cover Classification (Sentinel-2) deep learning model.

    1. This pre-trained deep learning model is available from the Living Atlas.

    2. The model is trained to generate CORINE Land Cover class predictions from Sentinel-2 imagery.

  4. Generates CORINE land cover class predictions for each pixel in the Sentinel-2 image.

  5. Reclassifies the CORINE classes into impervious, pervious, and open water classes.

    1. Users can modify the default set of CORINE classes that will be considered impervious.
Graphical user interface, text, application Description automatically generated

Figure 1. Model Impervious Surfaces Using Sentinel Imagery tool in the Watershed Processing toolbox of the Arc Hydro Pro toolbox.

Overview of Arc Hydro tools involved in Modeling Impervious Surfaces

This section presents a list of tools used in the extraction of impervious landcover using deep learning. Tools in this section are presented in the order they appear in the Arc Hydro Tools Python Toolbox and do not represent the order in which tools are used. The subsequent sections will explore specific workflows and which tools are used for them.

ToolsetStepToolDescription

(Core Software Tool)

Image Analyst Tools / Deep Learning

Landcover predictionsClassify Pixels Using Deep LearningThis is an out-of-the-box tool that internally applies the pre-trained deep learning model to the Sentinel-2 image to predict the landcover classes. This tool requires that the deep learning frameworks are installed for ArcGIS Pro.
Watershed ProcessingReclassify the landcover predictionsModel Impervious Surfaces Using Sentinel ImageryCharacterizes a given watershed as pervious, impervious, or open water using deep learning and Sentinel-2 imagery.

Use Cases

Use Case 1: Modeling Impervious Surfaces with No Additional Inputs

  1. Model Impervious Surfaces Using Sentinel Imagery

Outputs for this tool include:

  • Natural color representation of the Sentinel-2 image downloaded for the boundary feature (full sentinel image output not shown).
  • CORINE Land Cover classifications predicted by the deep learning model.
Map Description automatically generatedTable Description automatically generated with medium confidence
  • Reclassification of the CORINE Land Cover classifications.
Map Description automatically generated

From Python:

import modelimpervioussurfaces

watershed =
r'C:\\Documents\\ArcGIS\\Projects\\ModelImpervious\\ModelImpervious.gdb\\watershed'

out_lc_classes =
r'C:\\Documents\\ArcGIS\\Projects\\ModelImpervious\\Layers\\CORINE_class.tif'

out_impervious =
r'C:\\Documents\\ArcGIS\\Projects\\ModelImpervious\\Layers\\reclass.tif'

impervious_classes = [11, 12, 13, 33]

model_impervious = modelimpervioussurfaces.ModelImperviousSurfaces()

model_impervious.executeAH(watershed, impervious_classes, out_lc_classes, out_impervious, None, None)

Use Case 2: Modeling Impervious Surfaces with Optional Inputs

  1. Manually download the CORINE Land Cover deep learning model.
Graphical user interface, text, application, email Description automatically generated
  1. Download a Sentinel image for the boundary feature area. Recall that the full Sentinel image is required (i.e., all 13 bands). Options to do so include:

    1. Filter for and export an image from the Living Atlas

      1. Imagery from the past 14 months is available here
    2. Use EarthExplorer

We filtered the Sentinel-2 Views in ArcGIS Pro to obtain a Sentinel image from a winter month. This will allow us to compare results outside of the growing season. To export the Sentinel image with all 13 bands, we followed this Esri Community post and queried an image from the month of January in 2019 (see image below).

Graphical user interface, text, application, email Description automatically generated
  1. Model Impervious Surfaces Using Sentinel Imagery
A picture containing table Description automatically generated

Results for this Sentinel scene are shown below. The deep learning model predicted a much larger impervious area for the winter scene. Looking at the intermediate CORINE output (left), we see this is due to the relatively larger area predicted as open space with little or no vegetation (grey pixels). This is likely a reflection of the reduced vegetative cover during January.

Map Description automatically generatedMap Description automatically generated

From Python:

import modelimpervioussurfaces

watershed =
r'C:\\Documents\\ArcGIS\\Projects\\ModelImpervious\\ModelImpervious.gdb\\watershed'

out_lc_classes =
r'C:\\Documents\\ArcGIS\\Projects\\ModelImpervious\\Layers\\Jan2019_CORINE_classes.tif'

out_impervious =
r'C:\\Documents\\ArcGIS\\Projects\\ModelImpervious\\Layers\\Jan2019_CORINE_reclass.tif'

impervious_classes = [11, 12, 13, 33]

in_sentinel_image =
r'C:\\Documents\\ArcGIS\\Projects\\ModelImpervious\\Layers\\Sentinel_Manual_Full_Jan2019.tif'

in_dl_pkg =
r'C:\\Documents\\ArcGIS\\Projects\\ModelImpervious\\Layers\\corine_landcover.dlpk'

model_impervious = modelimpervioussurfaces.ModelImperviousSurfaces()

model_impervious.executeAH(watershed, impervious_classes, out_lc_classes, out_impervious, in_sentinel_image, in_dl_pkg)

Appendix

Processing Times

The information in this appendix is provided for reference only. The actual performance will vary greatly depending on the size and complexity of the underlying input data and function parameters. The numbers provided here are to be used as a relative measure of performance - which functions are "faster" and which are "slower". Remember that raster processing tends to be non-linear for large rasters and that doubling the size of the raster will usually result in more than doubling the time it takes to process it.

The hardware used for processing will also have an impact on the performance. Fast hard-drive (HD) subsystem (preferably SSD) can double the improvement in performance compared to traditional HD. Make sure that both the scratch and permanent storage are pointing to the fast HD. For other processing suggestions, refer to "Arc Hydro - Project Development Best Practices" document.

The following results were collected using a machine with 16 GB of RAM. The largest extent of the testing dataset, located in inland southern California, included:

  • Sentinel-2 image (10m resolution) with 2000 columns, 1500 rows, and 13 bands
ToolRuntime
Model Impervious Surfaces Using Sentinel Imagery (Use Case 1)10 minutes
Model Impervious Surfaces Using Sentinel Imagery (Use Case 2)5 minutes, 30 seconds