dea-coastlines

Extracting tidally-constrained annual shorelines and robust rates of coastal change from freely available Earth observation data at continental scale

https://github.com/geoscienceaustralia/dea-coastlines

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 29 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.6%) to scientific vocabulary

Keywords

coastal-change coastal-dynamics coastlines dea digitalearthaustralia earth-observation erosion geospatial gis jupyter-notebook opendatacube python remote-sensing satellite-imagery

Scientific Fields

Sociology Social Sciences - 87% confidence
Last synced: 4 months ago · JSON representation ·

Repository

Extracting tidally-constrained annual shorelines and robust rates of coastal change from freely available Earth observation data at continental scale

Basic Info
Statistics
  • Stars: 59
  • Watchers: 10
  • Forks: 23
  • Open Issues: 4
  • Releases: 39
Topics
coastal-change coastal-dynamics coastlines dea digitalearthaustralia earth-observation erosion geospatial gis jupyter-notebook opendatacube python remote-sensing satellite-imagery
Created over 5 years ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

🌏 Note: This branch contains the Australia-specific implementation of DEA Coastlines. For a more flexible implementation adapted to globally available USGS Collection 2 Level 2 Landsat data, we recommend adapting the Digital Earth Africa Coastlines implementation instead.

Digital Earth Australia Coastlines

Digital Earth Australia Coastlines

DOI License codecov example workflow

License: The code in this repository 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: For assistance with any of the Python code or Jupyter Notebooks in this repository, please post a Github issue. For questions or more information about this workflow, email Robbi.BishopTaylor@ga.gov.au.

To cite:

Bishop-Taylor, R., Nanson, R., Sagar, S., Lymburner, L. (2021). Mapping Australia's dynamic coastline at mean sea level using three decades of Landsat imagery. Remote Sensing of Environment, 267, 112734. Available: https://doi.org/10.1016/j.rse.2021.112734

Nanson, R., Bishop-Taylor, R., Sagar, S., Lymburner, L., (2022). Geomorphic insights into Australia's coastal change using a national dataset derived from the multi-decadal Landsat archive. Estuarine, Coastal and Shelf Science, 265, p.107712. Available: https://doi.org/10.1016/j.ecss.2021.107712

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: https://doi.org/10.3390/rs11242984


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.

Applications

  • 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

Table of contents


Repository code

The code in this repository is built on the Digital Earth Australia implementation of the Open Data Cube software for accessing, managing, and analyzing large quantities of Earth observation (EO) data. The code currently runs on the Digital Earth Australia Sandbox infrastructure.

Getting started

Clone the dea-coastlines repository and checkout the develop branch: git clone https://github.com/GeoscienceAustralia/dea-coastlines.git git checkout --track origin/develop

Setting up global ocean tide models

Tide modelling is a core part of the DEA Coastlines workflow. DEA Coastlines can be run using any global ocean tide model supported by the eo-tides and pyTMD Python packages, including:

For detailed instructions on setting up tide models, follow the [Setting up tidal models guide](https://github.com/GeoscienceAustralia/dea-coastlines/wiki/Setting-up-tidal-models-for-DEA-Coastlines.

Python modules

Code in this repository is included in the coastlines Python package which contains three main modules. These are intended to be run in the following order:

  1. coastlines.raster: This module conducts raster generation for DEA Coastlines. This analysis is processed on individual study area tiles to minimise peak memory usage.
* Load stack of all available Landsat 5, 7, 8 and 9 satellite imagery for a location using [ODC Virtual Products](https://docs.dea.ga.gov.au/notebooks/Frequently_used_code/Virtual_products.html)
* Convert each satellite image into a remote sensing water index (e.g. MNDWI)
* For each satellite image, model ocean tides into a tidal modelling grid based on exact time of image acquisition
* Interpolate tide heights into spatial extent of image stack
* Mask out high and low tide pixels by removing all observations acquired outside of 50 percent of the observed tidal range centered over mean sea level
* Combine tidally-masked data into annual median composites representing the most representative position of the shoreline at approximately mean sea level each year
  1. coastlines.vector: This module conducts vector subpixel coastline extraction and rates of change statistics calculation. This analysis is processed on individual study area tiles to minimise peak memory usage.
* Apply morphological extraction algorithms to mask annual median composite rasters to a valid coastal region
* Extract shoreline vectors using subpixel waterline extraction ([Bishop-Taylor et al. 2019b](https://doi.org/10.3390/rs11242984))
* Compute rates of coastal change at every 30 m along the coastline using linear regression
  1. coastlines.continental: This module combines tiled layers into seamless continental-scale vector files:
* Combines multiple output shoreline and rates of change statistics point vectors into single continental datasets
* Aggregates this data to produce moving window coastal change hotspot datasets that summarise coastal change at regional and continental scale.

Jupyter notebooks

An interactive walk-through of each step of the tiled raster and vector DEA Coastlines workflow and the continental layer generation is provided in the following Jupyter Notebooks. These notebooks can be run on the DEA Sandbox to assist in prototyping or troubleshooting: * DEA Coastlines raster generation * DEA Coastlines vector generation * DEA Coastlines continental hotspots

Running a DEA Coastlines analysis using the command-line interface (CLI)

These three modules have a command-line interface that can be used to automate each stage of the analysis. An example of using these tools is provided in the following Jupyter Notebook: * DEA Coastlines generation using command line tools

For help using these command line tools, run: python -m coastlines.raster --help python -m coastlines.vector --help python -m coastlines.continental --help

Analysis outputs

Files generated by DEA Coastlines are exported to the data directory.

Temporary raster and vector outputs produced by coastlines.raster and coastlines.vector for each study area grid cell are exported to: data/interim/raster/{unique_analysis_name}/{unique_analysis_name}_{study_area_name} data/interim/vector/{unique_analysis_name}/{unique_analysis_name}_{study_area_name}

Once all study area grid cells have been processed, these are combined into a continental-scale output GeoPackage vector file and zipped ESRI Shapefiles using coastlines.continental. These final outputs are exported to: data/processed/{unique_analysis_name}/coastlines_{continental_version}.gpkg data/processed/{unique_analysis_name}/coastlines_{continental_version}.shp.zip


Data access

Data download

To download DEA Coastlines data for the entire Australian coastline, visit the "Access" tab of the Geoscience Australia DEA Coastlines product description and follow the instructions under "Access notes". Data is available in two formats:

  • GeoPackage (recommended): suitable for QGIS; includes built-in symbology for easier interpretation
  • ESRI Shapefiles: suitable for ArcMap and QGIS

Interactive map

To explore DEA Coastlines on an interactive map, visit the Digital Earth Australia Maps platform.

Zooming to annual rates of change and plotting chart in DEA Maps

Loading DEA Coastlines data from the Web Feature Service (WFS) using Python

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

``` import geopandas as gpd

Specify bounding box

ymax, xmin = -33.65, 115.28 ymin, xmax = -33.66, 115.30

Set up WFS requests for annual shorelines & rates of change points

deaclannualshorelineswfs = f'https://geoserver.dea.ga.gov.au/geoserver/wfs?' \ f'service=WFS&version=1.1.0&request=GetFeature' \ f'&typeName=dea:shorelinesannual&maxFeatures=1000' \ f'&bbox={ymin},{xmin},{ymax},{xmax},' \ f'urn:ogc:def:crs:EPSG:4326' deaclratesofchangewfs = f'https://geoserver.dea.ga.gov.au/geoserver/wfs?' \ f'service=WFS&version=1.1.0&request=GetFeature' \ f'&typeName=dea:ratesof_change&maxFeatures=1000' \ f'&bbox={ymin},{xmin},{ymax},{xmax},' \ f'urn:ogc:def:crs:EPSG:4326'

Load DEA Coastlines data from WFS using geopandas

deaclannualshorelinesgdf = gpd.readfile(deaclannualshorelineswfs) deaclratesofchangegdf = gpd.readfile(deaclratesofchangewfs)

Ensure CRSs are set correctly

deaclannualshorelinesgdf.crs = 'EPSG:3577' deaclratesofchangegdf.crs = 'EPSG:3577'

Optional: Keep only rates of change points with "good" certainty

(i.e. no poor quality flags)

deaclratesofchangegdf = deaclratesofchangegdf.query("certainty == 'good'") ```

Loading DEA Coastlines data from the Web Feature Service (WFS) using R

DEA Coastlines data can be loaded directly into R using the DEA Coastlines Web Feature Service (WFS) and sf:

``` library(magrittr) library(glue) library(sf)

Specify bounding box

xmin = 115.28 xmax = 115.30 ymin = -33.66 ymax = -33.65

Read in DEA Coastlines annual shoreline data, using glue to insert our bounding

box into the string, and sf to load the spatial data from the Web Feature Service

and set the Coordinate Reference System to Australian Albers (EPSG:3577)

deaclannualshorelines = "https://geoserver.dea.ga.gov.au/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=dea:shorelinesannual&maxFeatures=1000&bbox={ymin},{xmin},{ymax},{xmax},urn:ogc:def:crs:EPSG:4326" %>% glue::glue() %>% sf::readsf() %>% sf::stset_crs(3577)

Read in DEA Coastlines rates of change points

deaclratesofchange = "https://geoserver.dea.ga.gov.au/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=dea:ratesofchange&maxFeatures=1000&bbox={ymin},{xmin},{ymax},{xmax},urn:ogc:def:crs:EPSG:4326" %>% glue::glue() %>% sf::readsf() %>% sf::stsetcrs(3577) ```

Jupyter Notebook

An Introduction to DEA Coastlines Jupyter notebook providing additional useful tools for loading and analysing DEA Coastlines data can be found on the DEA Notebooks repository. This notebook is available on the interactive DEA Sandbox learning and analysis environment for easy access via a web browser.


Credits

The FES2014 global tidal model was produced by NOVELTIS, LEGOS, CLS Space Oceanography Division and CNES. It is distributed by AVISO, with support from CNES (http://www.aviso.altimetry.fr/).

References

Bishop-Taylor, R., Nanson, R., Sagar, S., Lymburner, L. (2021). Mapping Australia's dynamic coastline at mean sea level using three decades of Landsat imagery. Remote Sensing of Environment, 267, 112734. Available: https://doi.org/10.1016/j.rse.2021.112734

Bishop-Taylor, R., Sagar, S., Lymburner, L., & Beaman, R. J. (2019a). Between the tides: Modelling the elevation of Australia's exposed intertidal zone at continental scale. Estuarine, Coastal and Shelf Science, 223, 115-128. Available: https://doi.org/10.1016/j.ecss.2019.03.006

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

Nanson, R., Bishop-Taylor, R., Sagar, S., Lymburner, L., (2022). Geomorphic insights into Australia's coastal change using a national dataset derived from the multi-decadal Landsat archive. Estuarine, Coastal and Shelf Science, 265, p.107712. Available: https://doi.org/10.1016/j.ecss.2021.107712

Owner

  • Name: Geoscience Australia
  • Login: GeoscienceAustralia
  • Kind: organization
  • Location: Canberra, Australia

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite Bishop-Taylor et al. 2019."
authors:
  - given-names: Robbi
    family-names: Bishop-Taylor
    affiliation: Geoscience Australia
    orcid: 'https://orcid.org/0000-0002-1533-2599'
  - given-names: Rachel
    family-names: Nanson
    affiliation: Geoscience Australia
  - given-names: Stephen
    family-names: Sagar
    affiliation: Geoscience Australia
  - given-names: Leo
    family-names: Lymburner
    affiliation: Geoscience Australia
title: "Digital Earth Australia Coastlines"
doi: 10.1016/j.rse.2021.112734
date-released: 2020-03-15
url: "https://github.com/GeoscienceAustralia/dea-coastlines"
preferred-citation:
  type: article
  authors:
  - given-names: Robbi
    family-names: Bishop-Taylor
    affiliation: Geoscience Australia
    orcid: 'https://orcid.org/0000-0002-1533-2599'
  - given-names: Rachel
    family-names: Nanson
    affiliation: Geoscience Australia
  - given-names: Stephen
    family-names: Sagar
    affiliation: Geoscience Australia
  - given-names: Leo
    family-names: Lymburner
    affiliation: Geoscience Australia
  doi: "10.1016/j.rse.2021.112734"
  journal: "Remote Sensing of Environment"
  title: "Mapping Australia's dynamic coastline at mean sea level using three decades of Landsat imagery"
  issue: 267
  volume: 112734
  year: 2019
keywords:
  - DEA Coastlines
  - Coastal change
  - Erosion
  - Landsat
  - Earth Observation
  - Digital Earth Australia
license: Apache-2.0

GitHub Events

Total
  • Create event: 11
  • Release event: 2
  • Issues event: 1
  • Watch event: 4
  • Delete event: 7
  • Issue comment event: 8
  • Push event: 35
  • Gollum event: 1
  • Pull request review comment event: 5
  • Pull request review event: 11
  • Pull request event: 31
  • Fork event: 1
Last Year
  • Create event: 11
  • Release event: 2
  • Issues event: 1
  • Watch event: 4
  • Delete event: 7
  • Issue comment event: 8
  • Push event: 35
  • Gollum event: 1
  • Pull request review comment event: 5
  • Pull request review event: 11
  • Pull request event: 31
  • Fork event: 1

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 514
  • Total Committers: 3
  • Avg Commits per committer: 171.333
  • Development Distribution Score (DDS): 0.084
Past Year
  • Commits: 35
  • Committers: 1
  • Avg Commits per committer: 35.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Robbi Bishop-Taylor R****r@g****u 471
pin.jin@ga.gov.au p****n@g****u 39
Vanessa Newey v****y 4
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 47
  • Total pull requests: 81
  • Average time to close issues: 3 months
  • Average time to close pull requests: 2 days
  • Total issue authors: 3
  • Total pull request authors: 5
  • Average comments per issue: 0.51
  • Average comments per pull request: 0.52
  • Merged pull requests: 61
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 33
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 day
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.45
  • Merged pull requests: 24
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • robbibt (43)
  • GeoRach (2)
  • pindge (2)
Pull Request Authors
  • robbibt (72)
  • pindge (11)
  • Indiphile (3)
  • vnewey (2)
  • alexgleith (1)
Top Labels
Issue Labels
enhancement (20) core-functionality (19) bug (7) high-priority (4) Web services/WMS/GeoServer (3) utilities (3) documentation (2) waterbody/estuary mask (2)
Pull Request Labels

Packages

  • Total packages: 2
  • Total downloads: unknown
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 10
proxy.golang.org: github.com/geoscienceaustralia/dea-coastlines
  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 4 months ago
proxy.golang.org: github.com/GeoscienceAustralia/dea-coastlines
  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 4 months ago

Dependencies

Dockerfile docker
  • osgeo/gdal ubuntu-small-3.4.1 build
requirements.in pypi
  • Fiona ==1.8.22
  • PyYAML ==6.0
  • Shapely ==2.0.1
  • affine ==2.4.0
  • aiohttp *
  • botocore *
  • click ==8.1.3
  • dask ==2023.2.0
  • datacube ==1.8.11
  • dea_tools ==0.2.8.dev40
  • geopandas ==0.12.2
  • matplotlib ==3.7.0
  • mdutils ==1.5.0
  • numpy ==1.23.5
  • odc-geo ==0.3.3
  • odc_ui ==0.2.1.dev3630
  • pandas ==1.5.3
  • pyTMD ==1.1.3
  • pygeos ==0.14
  • pyproj ==3.4.1
  • python_geohash ==0.8.5
  • pytz ==2022.7.1
  • rasterio ==1.3.4
  • scikit_image ==0.19.3
  • scikit_learn ==1.2.1
  • scipy ==1.10.0
  • setuptools ==67.3.1
  • tqdm ==4.64.1
  • xarray ==2023.1.0
requirements.txt pypi
  • 148 dependencies
pyproject.toml pypi
setup.py pypi
.github/workflows/dea-coastlines-image.yaml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
  • aws-actions/configure-aws-credentials v4 composite
  • aws-actions/configure-aws-credentials v1 composite
  • codecov/codecov-action v3 composite
  • mshick/add-pr-comment v2 composite
  • stefanzweifel/git-auto-commit-action v4 composite
  • whoan/docker-build-with-cache-action master composite