Streamlined pipeline for cal-val#967
Open
danielmwatkins wants to merge 124 commits into
Open
Conversation
Member
|
@danielmwatkins Sorry, I didn't mean to check the approve box. I meant to "request changes." |
Co-authored-by: Carlos Paniagua <cpaniaguam@gmail.com>
Co-authored-by: Carlos Paniagua <cpaniaguam@gmail.com>
Co-authored-by: Carlos Paniagua <cpaniaguam@gmail.com>
…ceFloeTracker.jl into feat_new_pipeline
Co-authored-by: Carlos Paniagua <cpaniaguam@gmail.com>
Co-authored-by: Carlos Paniagua <cpaniaguam@gmail.com>
Co-authored-by: Carlos Paniagua <cpaniaguam@gmail.com>
Co-authored-by: Carlos Paniagua <cpaniaguam@gmail.com>
…ceFloeTracker.jl into feat_new_pipeline
…ilter Refactor default filter setup in FilterFunction
…ceFloeTracker.jl into feat_new_pipeline
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The FSPipeline is a new pipeline using both semantic and object-based segmentation approaches. It includes two main methods for producing binary sea ice floe masks: the$k$ -means method, used in the prior versions, and an adaptive threshold method, similar to what is used in the
ebsegmethod.The pipeline produces a cloud mask using the Watkins2026 method, an ice/water mask based on the IceDetectionBrightnessMidpoint method, and uses an explicit Preprocess functor to perform the sharpening and equalization steps.
After the binarization, the images are lightly cleaned and smoothed using morphological operations and conditional hole filling. Holes in the binary mask that either contain sea ice or cloud are filled up to a set size.
Next, we use a new floe splitting procedure,
dist_morph_split, which applies a series of thresholds to the distance function up to a maximum depth, then labels distinct objects and re-grows them.We include a dedicated floe filter function which clears objects which are (a) outside the specified size range, (b) intersect the coastal buffer mask, (c) are not circular enough, or (d) are too dark in Band 2 of the falsecolor image. The settings for floe size, color, and circularity are specified separately based on the object-average cloud fraction, so cloud-covered objects can be filtered more strictly than clear-sky if desired.
Finally, we use a
merge_floesfunction to compare the results of the two segmentation methods. This step resolves collisions between the two candidate floe labels. For each floe, we identify a "relevant set" based on the location of object centroids and the degree of overlap. Then, if the objects agree within a distance and area based threshold, the more circular object is taken. For all other objects, collisions are resolved based on the object prominence, calculated as the difference between the object mean brightness and the brightness of the surroundings. This calculation is accelerated by using the expand labels function -- hence, if floes are tightly packed, the expanded boundary area may be truncated compared to an object that is well-separated from neighboring floes.