Introduction to DEA Coastlines 6b6d04f3570a45199166a3791cb2512d


Australia has a highly dynamic coastline of over 30,000 km, with over 85% of its population living within 50 km of the coast. This coastline is subject to a wide range of pressures, including extreme weather and climate, sea level rise and human development. Understanding how the coastline responds to these pressures is crucial to managing this region, from social, environmental and economic perspectives.

What this product offers

Digital Earth Australia Coastlines is a continental dataset that includes annual shorelines and rates of coastal change along the entire Australian coastline from 1988 to the present.

The product combines satellite data from Geoscience Australia’s Digital Earth Australia program with tidal modelling to map the typical location of the coastline at mean sea level for each year. The product enables trends of coastal erosion and growth to be examined annually at both a local and continental scale, and for patterns of coastal change to be mapped historically and updated regularly as data continues to be acquired. This allows current rates of coastal change to be compared with that observed in previous years or decades.

The ability to map shoreline positions for each year provides valuable insights into whether changes to our coastline are the result of particular events or actions, or a process of more gradual change over time. This information can enable scientists, managers and policy makers to assess impacts from the range of drivers impacting our coastlines and potentially assist planning and forecasting for future scenarios.


  • Monitoring and mapping rates of coastal erosion along the Australian coastline

  • Prioritise and evaluate the impacts of local and regional coastal management based on historical coastline change

  • Modelling how coastlines respond to drivers of change, including extreme weather events, sea level rise or human development

  • Supporting geomorphological studies of how and why coastlines have changed across time


  • Bishop-Taylor, R., Sagar, S., Lymburner, L., Alam, I., & Sixsmith, J. (2019). Sub-pixel waterline extraction: Characterising accuracy and sensitivity to indices and spectra. Remote Sensing, 11(24), 2984. Available:

    Note: For more technical information about the DEA Coastlines product, visit the official Geoscience Australia DEA Coastlines product description.


This notebook will demonstrate how to load data from the Digital Earth Australia Coastlines product using the Digital Earth Australia datacube. Topics covered include:

  1. Loading DEA Coastlines data in a Jupyter notebook or Python using the DEA Coastlines Web Feature Service (WFS)

  2. Interactively drawing a transect across DEA Coastlines annual coastlines and generating a plot of coastal change through time

  3. Interactively plotting the distribution of retreating and growing coastlines within a selected region

Getting started

To run this analysis, run all the cells in the notebook, starting with the “Load packages” cell.

Load packages

import sys
import geopandas as gpd
import matplotlib.pyplot as plt

from dea_coastaltools import deacoastlines_transect
from dea_coastaltools import deacoastlines_histogram

Loading DEA Coastlines data using Web Feature Service (WFS)

DEA Coastlines data can be loaded directly in a Python script or Jupyter Notebook using the DEA Coastlines Web Feature Service (WFS) and geopandas:

# Specify bounding box
ymax, xmin = -33.65, 115.28
ymin, xmax = -33.66, 115.30

# Set up WFS requests for annual coastlines & rates of change statistics
deacl_coastlines_wfs = f'' \
                       f'service=WFS&version=1.1.0&request=GetFeature' \
                       f'&typeName=dea:coastlines&maxFeatures=1000' \
                       f'&bbox={ymin},{xmin},{ymax},{xmax},' \
deacl_statistics_wfs = f'' \
                       f'service=WFS&version=1.1.0&request=GetFeature' \
                       f'&typeName=dea:coastlines_statistics&maxFeatures=1000' \
                       f'&bbox={ymin},{xmin},{ymax},{xmax},' \

# Load DEA Coastlines data from WFS using geopandas
deacl_coastlines_gdf = gpd.read_file(deacl_coastlines_wfs)
deacl_statistics_gdf = gpd.read_file(deacl_statistics_wfs)

# Ensure CRSs are set correctly = 'EPSG:3577' = 'EPSG:3577'

# Print example output
gml_id year certainty geometry
0 coastlines.633 1988 good MULTILINESTRING ((-1515201.261 -3750001.375, -...
1 coastlines.634 1989 good MULTILINESTRING ((-1515192.442 -3750001.375, -...
2 coastlines.635 1990 good MULTILINESTRING ((-1515201.862 -3750001.375, -...
3 coastlines.636 1991 good MULTILINESTRING ((-1515211.079 -3750001.375, -...
4 coastlines.637 1992 good MULTILINESTRING ((-1515205.461 -3750001.375, -...

We can now plot the DEA Coastlines annual coastlines data using geopandas. Annual coastlines represent the median or ‘typical’ position of the coastline at approximately mean sea level tide (0 m AHD) for each year from 1988 to 2019. Light-coloured lines (e.g. yellow) in the plot below represent recent coastlines (e.g. 2019), while dark-coloured lines represent older coastlines (e.g. 1988).

Note: For more detail about DEA Coastlines annual coastline data, refer to the official Geoscience Australia DEA Coastlines product description.

# Set year data to integers to allow plotting with a simple colourbar
fig, ax = plt.subplots(figsize=(16, 3.5))
deacl_coastlines_gdf['year'] = deacl_coastlines_gdf.year.astype(int)
deacl_coastlines_gdf.plot(ax=ax, column='year',
                          legend_kwds={'label': 'Annual coastline'})

# Set plot limits to extent of statistics points
bounds = deacl_statistics_gdf.geometry.total_bounds
ax.set_xlim(bounds[[0, 2]])
ax.set_ylim(bounds[[1, 3]])
(-3773088.19558847, -3772680.47526)

We can also plot the DEA Coastlines rates of change statistics points. These points provide robust rates of annual coastal change (in metres per year) for every 30 m along Australia’s non-rocky (clastic) coastlines. These rates are calculated by linearly regressing annual coastline distances against time, using the most recent 2019 coastline as a baseline.

Negative values (red points) indicate retreat (e.g. erosion), and positive values indicate growth (e.g. progradation) over time. By default, rates of change are shown for points with a statistically significant trend over time only.

Note: For more detail about DEA Coastlines rates of change statistics data, refer to the official Geoscience Australia DEA Coastlines product description.

# Filter points to statistically significant results only
deacl_statistics_gdf = deacl_statistics_gdf.loc[
    deacl_statistics_gdf.sig_time < 0.01]

# Plot data
fig, ax = plt.subplots(figsize=(16, 3.5))
    legend_kwds={'label': 'Rate of change (metres / year)'})
ax.set_title('Rate of change statistics points');

The DEA Coastlines rates of change statistics points data also provides many additional statistics that give insights into coastal change in Australia. For a full description of each of these statistics, refer to the Rates of change statistics section of the official Geoscience Australia DEA Coastlines product description.

gml_id rate_time sig_time se_time outl_time rate_soi sig_soi se_soi outl_soi dist_1988 ... growth sce nsm max_year min_year breaks abs_time conf_time conf_soi geometry
0 coastlines_statistics.44817 1.78 0.0 0.08 None 2.63 0.540 4.25 None -54.43 ... 1.0 57.12 54.43 2018.0 1990.0 1997 1.78 0.16 8.33 MULTIPOINT (-1535416.612 -3772680.475)
1 coastlines_statistics.44818 2.01 0.0 0.08 None 3.16 0.510 4.74 None -57.21 ... 1.0 60.47 57.21 2018.0 1990.0 1998 2.01 0.16 9.29 MULTIPOINT (-1535446.354 -3772682.707)
2 coastlines_statistics.44819 2.16 0.0 0.08 None 3.60 0.483 5.07 None -60.24 ... 1.0 61.32 60.24 2018.0 1990.0 1999 2.16 0.16 9.94 MULTIPOINT (-1535476.042 -3772685.555)
3 coastlines_statistics.44820 2.19 0.0 0.09 None 4.12 0.429 5.14 None -60.83 ... 1.0 60.96 60.83 2018.0 1990.0 2001 2.19 0.18 10.07 MULTIPOINT (-1535505.740 -3772688.301)
4 coastlines_statistics.44821 2.15 0.0 0.11 None 4.47 0.389 5.11 None -57.09 ... 1.0 60.42 57.09 2015.0 1990.0 2001 2.15 0.22 10.02 MULTIPOINT (-1535535.252 -3772692.541)

5 rows × 52 columns

Exporting DEA Coastlines data as vector files

We can easily export the loaded data as spatial vector files (e.g. ESRI Shapefiles or GeoJSON) so that they can be analysed further in GIS software:


DEA Coastlines analysis tools

The following sections provide useful tools for analysing DEA Coastlines data directly within a Jupyter Notebook without needing to load the data into GIS software. All outputs from the tools below will be saved to a new folder in this directory called deacoastlines_outputs.

Interactive profile selection

This tool allows you to interactively draw a transect over DEA Coastlines annual shoreline data, and get back a table and graph showing how shoreline positions have changed over time. To use the tool:

  1. Run the cell below; an interactive map will appear

  2. Zoom in and use the Draw a polyline tool on the left to draw a transect so that it crosses through a set of coastlines (transects are limited to 50 km in length). For example:

Transect example

  1. Press Finish when you are happy with the line, then click Done in the top right

  2. A graph will appear below the map showing distances along the transect to each annual coastline (distances will be measured from the start of the transect line you drew above)

    Optional: Set transect_mode='width' and re-run the cell below to measure the width between two adjacent sets of coastlines (e.g. across the next of a tombolo or sandbar)

    Optional: By default, this tool will export a set of output datasets and figures into a new folder in this directory called deacoastlines_outputs unless the export_* parameters below are set to False. These outputs include: * export_transect_data: A CSV file containing the data (i.e. years and distances) extracted for the transect * export_transect: Vector files in ESRI Shapefile and GeoJSON format for the transect line feature * export_figure: A PNG image file for the transect figure generated by the tool

df = deacoastlines_transect(transect_mode='distance',

Loading DEA Coastlines data...

Exporting transect data to:

Exporting transect vectors to:

Exporting transect figure to:


The resulting figure shows how coastlines have moved over time relative to the starting point of the transect. Time is shown on the y-axis, while distance along the transect (or width if using transect_mode='width') is shown on the x-axis.

Statistics point histogram analysis

This tool allows you to draw a polygon or rectangle around DEA Coastlines rates of change statistics points, and get back a histogram showing the distribution of growing or retreating points. To use the tool:

  1. Run the cell below; an interactive map will appear

  2. Use the Draw a polygon or Draw a rectangle tools on the left to select a region (regions are limited to an area of 100,000 sq km). For example:

Histogram selection example

  1. Press Done in the top right when ready

  2. A histogram plot will appear below the map

    Optional: Instead of using the interactive map, supply a path to a vector file using the extent_path parameter (e.g. extent_path='study_area.shp). If this option is selected, you can also supply a column name in the dataset to extent_id_col which will be used to name the output files (e.g. extent_id_col='compartment_id'). To revert to the interactive map, set extent_path=None.

    Optional: Set hist_log=True and re-run the cell below to generate a log-scale histogram plot

    Optional: By default, this tool will export a set of output datasets and figures into a new folder in this directory called deacoastlines_outputs unless the export_* parameters below are set to False. These outputs include: * export_points_data: A CSV file containing raw data for all DEA Coastlines rates of change statistics points in the selected extent * export_summary_data: A CSV file containing summary statistics for all rates of change statistics points in the selected extent * export_extent: Vector files in ESRI Shapefile and GeoJSON format giving the selected area extent * export_figure: A PNG image file for the histogram figure generated by the tool

df = deacoastlines_histogram(extent_path=None,
Loading DEA Coastlines data for 131.857_-12.255...
    Plotting data with log axis after setting non-significant points to 0 m / year

Exporting extent vectors to:

Exporting histogram figure to:

Exporting points data to:

Exporting summary data to:


The histogram plot above shows the distribution of growing (e.g. prograding; blue bars) and retreating (e.g. eroding; red bars) coastlines in the selected region, with annual rates of change (in metres per year) on the x-axis. Note that by default the y-axis will be shown on a log scale which emphasises lower frequency results; for a linear y-axis, re-run the function above with hist_log=False.

Remove output files

Run this cell to clean up your directory by removing any output files generated by this notebook and saved to the deacoastlines_outputs folder.

Note: This cannot be undone, so ensure any important outputs have been downloaded to your computor before proceeding.

!rm -r deacoastlines_outputs

Next steps: coastline erosion notebook

The Coastal erosion notebook in this repository provides a simplified example of the method used to extract DEA Coastlines annual coastlines data. Run this notebook if you would like to generate more customised coastlines for a specific location, time period, epoch (e.g. annual or biennial coastlines) or tidal range (e.g. the posituion of the coastline at low, mid or high tide).

Note: This notebook currently supports extracting coastline data only, not generating rates of change statistics like those included in the DEA Coastlines product.

Additional information

License: The code in this notebook is licensed under the Apache License, Version 2.0. Digital Earth Australia data is licensed under the Creative Commons by Attribution 4.0 license.

Contact: If you need assistance, please post a question on the Open Data Cube Slack channel or on the GIS Stack Exchange using the open-data-cube tag (you can view previously asked questions here). If you would like to report an issue with this notebook, you can file one on Github.

Last modified: November 2020


Browse all available tags on the DEA User Guide’s Tags Index

Tags: NCI compatible, sandbox compatible, DEA Coastlines, coastal erosion, widgets, ipyleaflet, geopandas, WFS, dea datasets, no_testing