Skip to content

Conversation

@GL-S
Copy link
Contributor

@GL-S GL-S commented Sep 29, 2025

I noticed that previously I didn't include any information of the resampling algorithm used. As the mosaics seem to become more popular and considering the new notebook that shows how to access overviews arrays, I think it's important to explain that different DEA products use different algorithms.

I have updated the generic section of the KH and listed the algorithm used in the DEA products offered as mosaics. And I have also added the resampling algorithm in the Land Cover access page, to make that information visible even when people won't click on the general info page.

Please @robbibt, @erialC-P , or @vnewey , double check if I listed the correct algorithm for your products in the general content!

Previews:
general content in user guides --> https://pr-509-preview.khpreview.dea.ga.gov.au/guides/continental-cogs-geotiff-mosaics/
LC access page (under "How to stream DEA Land Cover continental mosaics ...) --> https://pr-509-preview.khpreview.dea.ga.gov.au/data/product/dea-land-cover-landsat/?tab=access

@github-actions
Copy link

github-actions bot commented Sep 29, 2025

Preview is ready!

View the preview: 🌐 PR Preview 509

You can also view the deploy log or read the documentation.

:::{admonition} Note
:class: note

The overviews (pyramid layers) embedded in the DEA Land Cover COG mosaics were generated using the **MODE** resampling algorithm. This means that, when viewing the data at coarser zoom levels, each overview pixel is assigned the most common land cover class within its corresponding area.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@GL-S This text shouldnt be indented. Looks good though.


- **MODE** – used for **categorical data**; assigns the most frequent value within the extent of an overview pixel.
- **BILINEAR** – used for **continuous data** with minimal missing values; interpolates pixels to produce a smooth gradient.
- **NEAREST** – used for **continuous or categorical data with many missing values**; each overview pixel takes the value of the higher-resolution pixel closest to its centroid. This algorithm appears to maximise the visualisation of products where valid pixels are surrounded by many no-data pixels.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@GL-S Could "appears to maximise" be replaced by "optimises" ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I need assistance from @robbibt or @vnewey here. Because the source I have found say that NEAREST uses the nearest pixels, valid or invalid. So I am not sure it always optimises/maximises the visualisation, or if just happens to work for those products we applied it to.

Copy link
Member

@robbibt robbibt Oct 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll do some quick testing today, but essentially "nearest" was the only method that wouldn't come out empty if an overview pixel overlapped with a high-res single nodata pixel. So using "nearest" was less about maximising data coverage, but more to ensure our overviews contained at least some data.

I think we can probably go with

- **NEAREST** – used for **continuous or categorical data with many missing values**; each overview pixel takes the value of the higher-resolution pixel closest to its centroid. This algorithm enhances the visualisation of products where valid pixels are surrounded by many no-data pixels.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah ok, I just wanted to double check this. thanks for confirming!
If you observed it working better to show data, then the statement you suggest is correct. I think it's ok to just describe the effect of applying the algorithm without including too many details on how the algorithm works, considering there is a bit of confusion around it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants