All Projects → kvos → CoastSat.slope

kvos / CoastSat.slope

Licence: GPL-3.0 license
Beach-face slope estimation from satellite-derived shorelines, extension of the CoastSat toolbox.

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to CoastSat.slope

eemont
A python package that extends Google Earth Engine.
Stars: ✭ 290 (+590.48%)
Mutual labels:  remote-sensing, google-earth-engine, satellite-images, earth-engine
spyndex
Awesome Spectral Indices in Python.
Stars: ✭ 56 (+33.33%)
Mutual labels:  remote-sensing, google-earth-engine, earth-engine
ee extra
A ninja python package that unifies the Google Earth Engine ecosystem.
Stars: ✭ 42 (+0%)
Mutual labels:  remote-sensing, google-earth-engine, earth-engine
awesome-spectral-indices
A ready-to-use curated list of Spectral Indices for Remote Sensing applications.
Stars: ✭ 357 (+750%)
Mutual labels:  remote-sensing, google-earth-engine, earth-engine
spectral
Awesome Spectral Indices for the Google Earth Engine JavaScript API (Code Editor).
Stars: ✭ 68 (+61.9%)
Mutual labels:  remote-sensing, google-earth-engine, earth-engine
earthengine-py-examples
A collection of 300+ examples for using Earth Engine and the geemap Python package
Stars: ✭ 76 (+80.95%)
Mutual labels:  remote-sensing, google-earth-engine, earth-engine
earthengine-apps
A collection of Earth Engine Apps created using geemap, voila, and heroku
Stars: ✭ 20 (-52.38%)
Mutual labels:  remote-sensing, google-earth-engine, earth-engine
Python-for-Remote-Sensing
python codes for remote sensing applications will be uploaded here. I will try to teach everything I learn during my projects in here.
Stars: ✭ 20 (-52.38%)
Mutual labels:  remote-sensing, satellite-images
GoogleEarthEngine-side-projects
Google Earth Engine side projects and tutorial scripts
Stars: ✭ 23 (-45.24%)
Mutual labels:  remote-sensing, google-earth-engine
RivWidthCloudPaper
A Google Earth Engine based algorithm that extracts river centerlines and widths from satellite images
Stars: ✭ 62 (+47.62%)
Mutual labels:  remote-sensing, google-earth-engine
pylandtemp
Algorithms for computing global land surface temperature and emissivity from NASA's Landsat satellite images with Python.
Stars: ✭ 110 (+161.9%)
Mutual labels:  remote-sensing, satellite-images
awesome-earth-engine-apps
A collection of all public Google Earth Engine Apps.
Stars: ✭ 78 (+85.71%)
Mutual labels:  google-earth-engine, earth-engine
CRC4Docker
Python scripts for the textbook "Image Analysis, Classification and Change Detection in Remote Sensing, Fourth Revised Edition"
Stars: ✭ 84 (+100%)
Mutual labels:  remote-sensing, earth-engine
aitlas
AiTLAS implements state-of-the-art AI methods for exploratory and predictive analysis of satellite images.
Stars: ✭ 134 (+219.05%)
Mutual labels:  remote-sensing, satellite-images
geeSharp.js
Pan-sharpening in the Earth Engine code editor
Stars: ✭ 25 (-40.48%)
Mutual labels:  remote-sensing, earth-engine
geemap-apps
Interactive web apps created using geemap and streamlit
Stars: ✭ 24 (-42.86%)
Mutual labels:  google-earth-engine, earth-engine
arcsi
Software to automate the production of optical analysis ready data (ARD) from Landsat, Sentinel-2 and others.
Stars: ✭ 22 (-47.62%)
Mutual labels:  remote-sensing
aruco-geobits
geobits: ArUco Ground Control Point Targets and Detection for Aerial Imagery (UAV/MAV).
Stars: ✭ 32 (-23.81%)
Mutual labels:  remote-sensing
waterquality
Package designed to detect and quantify water quality and cyanobacterial harmful algal bloom (CHABs) from remotely sensed imagery
Stars: ✭ 31 (-26.19%)
Mutual labels:  remote-sensing
deep learning ecology
Educational Resources on Neural Networks for Ecology and Remote Sensing
Stars: ✭ 45 (+7.14%)
Mutual labels:  remote-sensing

DOI Join the chat at https://gitter.im/CoastSat/community License: GPL v3

CoastSat.slope

This is an extension of the CoastSat toolbox.

Beach slope estimation from satellites

This toolkit enables users to estimate the beach-face slope from satellite-derived shorelines and associated tide levels. As shown below, beach-face slopes can vary drastically for different coastlines. As the horizontal tidal excursion is modulated by this slope, we can capture such modulation with instantaneous satellite-derived shorelines and associated water levels in order to estimate this slope. Here we use CoastSat to map the shorelines and FES2014 to obtain tide levels, but the method could be applied to other data sources.

If you like the repo put a star on it!

Ressources

The methodology is described in: Vos K., Harley M.D., Splinter K.D., Walker A., Turner I.L. (2019). Beach slopes from satellite-derived shorelines. Geophysical Research Letters. https://doi.org/10.1029/2020GL088365 (or preprint here). Slides describing the method are also available here.

You can visit the CoastSat webGIS page to explore and download a regional-scale dataset of beach slopes.

In the repo, there are two Jupyter Notebooks showing examples of beach slope estimation along transects at Cable Beach and Narrabeen-Collaroy, Australia.

Installation

To run the examples you will need to install the coastsat environment (instructions in the main CoastSat toolbox).

If you want to use FES2014 global tide model to get the tide levels at the time of image acquisition, follow the instructions provided to setup the model.

Example

The different steps to obtain a beach slope estimate are shown here with an example at Narrabeen-Collaroy.

Shorelines were mapped with the CoastSat toolbox from Landsat 5, Landsat 7 and Landsat 8 images covering the site. These are provided here in the same format as CoastSat outputs them (under /example_data/NARRA_output.pkl).

The next step is to compute the intersections between instantaneous shorelines and cross-shore transects to obtain time-series (note that a few outlier removal functions have been added here to make sure that the time-series are clean before using them for slope estimation). Once we have the shoreline time-series, we need to retrieve the tide levels associated with each date (date at which the image was acquired). This can be done by loading a .csv file with tide data or by extracting modelled tides at this location from the FES2014 global tide model. Below we show the overall tidal variations in Sydney and the tide levels at the time of image acquisition. It is important to check what is the minimum timestep between images as this will define our Nyquist limit in the frequency domain analysis. For example, here we consider the period between 1999 (launch of L7) and 2020 where we know that we have 2 Landsat satellites simultaneously in orbit and, as each satellite has a revisit period of 16 days, our minimum sampling period is 8 days (-> Nyquist limit is 16 days).
Once we have defined the Nyquist limit (or minimum sampling period, settings_slope['n_days'] parameter), we can use the sub-sampled tide level time-series to construct a power spectrum density with the Lombscargle transform (equivalent Fourier transform for unevenly sampled datasets) and identify the peak tidal frequency in these time-series. The last step is to apply a tidal correction to the shoreline time-series with a range of slopes, construct the power spectrum density for each tidally-corrected time-series and find the slope that minimises the amount of energy (integral of power spectrum density) inside the peak tidal frequency band previously identified. As you can see in the energy vs slope curve below, the minimum of the curve may not be sharply defined so a confidence band (slopes within 5% of minimum) is also provided with the slope estimate.
The accurcacy of the slope estimates, as demonstrated in the published work, depends on the signal-to-noise ratio between the horizontal tidal excursion and the measurement accuracy of the satellite-derived shorelines. At sites with larger tidal excursion signals, like Cable Beach (mean spring tidal range of 8 m), the modulation by the slope will be better captured in the tidal frequency band and result in well-defined minimums along the energy curve as shown below.

I recommend following both Jupyter Notebooks provided here (~10 min each), the Narrabeen-Collaroy one (tide range of 1.3 m) and the Cable Beach one (tide range of 8 m) to get a feel for how the power spectrum densities and energy curves behave before running it at your own site. Happy beach slope mapping !

Having a problem? Post an issue in the Issues page (please do not email).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].