New Feature: Outlier Detection for Extracted Shorelines #130
Labels
enhancement
New feature or request
help wanted
Extra attention is needed
V2
for version 2 of coastseg
The Problem
When shorelines are extracted from segmented imagery, sometimes the extracted shorelines are far from correct. Bad extracted shorelines are often due to bad segmentations, cloud cover, no data sections in the image, poor image resolution, or bad lighting in the image.
Solution
We need a way to detect bad shorelines and isolate them from the rest of the good shorelines. Isolating bad shorelines could be done by deleting them, placing them into a new directory, or another way.
Generalized Potential Solutions
Resources
Solution Used by CoastSat
Here Killian uses reject outliers to remove shorelines with dramatic changes between consecutive timestamps. It does use otsu thresholding with the MNDWI_threshold calculated from coastsat's version of extract shorelines which we do not use for extracting shorelines with our models. I don't think we will be able to use this function without serious modifications. That being said it can be used as an inspiration for further post processing on the extracted shorelines.
https://github.com/kvos/CoastSat/blob/master/example_jupyter.ipynb
""
5.1 Despiking the time-series
The tidally-corrected time-series of shoreline change obtained with the steps above may still contain some outliers (from cloud shadows, false detections etc). The function SDS_transects.reject_outliers() was developed to remove obvious outliers in the time-series, by removing the points that do not make physical sense in a shoreline change setting.
For example, the shoreline can experience rapid erosion after a large storm, but it will then take time to recover and return to its previous state. Therefore, if the shoreline erodes/accretes suddenly of a significant amount (max_cross_change) and then immediately returns to its previous state, this spike does not make any physical sense and can be considered an outlier. Additionally, this funciton also checks that the Otsu thresholds used to map the shoreline are within the typical range defined by otsu_threshold, with values outside this range identified as outliers.
""
The text was updated successfully, but these errors were encountered: