GeoPython2019

Coastline mapping with python, satellite imagery and computer vision.
2019-06-25, 17:30–17:45, Room 1

The UK Hydrographic Office Data Science and Remote Sensing teams have used European Space Agency Sentinel-2 imagery to create accurate coastline vector data. We use geospatial processing and computer vision in Python to produce the coastline vector dataset which can be run anywhere in the world and adjusts automatically to local satellite image conditions.


The UK Hydrographic Office (UKHO) collects, analyses and supplies hydrographic and geospatial data to over 90% of the world's ships trading internationally. We need a dataset of the world’s coastline that is accurate and easily updateable, to detect changes in coastline around the world.

We used the Google Earth Engine Python API to access a multi-petabyte catalogue of cloud free Sentinel 2 satellite images. Once an averaged raster for a given region is defined we download the data and process in Python using various geospatial libraries e.g. geopandas, gdal, rasterio, shapely. To ensure the processing was geo-generalisable without manual intervention; for each image we calculated the Normalised Difference Water Index (NDWI, McFeeters 1996) and applied localised OTSU thresholding to output binary images of classified pixels; land or water. Using a PostGIS database on Amazon Web Services (AWS) we transformed classified rasters to vector polygons, returning a shapefile and an OGC GeoPackage of the British Isles. The output has been reviewed by UKHO imagery analysts and cartographers for accuracy and scale. In comparison to other widely accessible datasets (e.g. World Vector Shoreline) our new dataset is of higher spatial resolution, based on recent imagery and easy to update over time. This is a significant contribution to the world’s efforts for the mapping and understanding of the coastline environment. By combining the big data capabilities of Google Earth Engine with the flexibility of python we have produced an open source coastline dataset for the British Isles. Our long terms goal is to:

  1. Scale the pipeline to create a global coastline dataset.
  2. Run the pipeline periodically to detect coastline changes around the world over time.