Repository navigation
Add CLMS LST sharpening with Landsat notebook - #132
Conversation
Sharpens the hourly 3 km CLMS Land Surface Temperature V3 to 100 m with a Landsat 8/9 residual field, and evaluates the method (residual stability, cross-city bias portability, additive-model adequacy, leave-one-date-out error budget). Executed on the CDSE JupyterLab sentinelhub kernel and formatted with black. Archived on Zenodo: 10.5281/zenodo.22944002. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
this is the pr for the custom script sentinel-hub/custom-scripts#375 |
mariiaShevchuk
left a comment
There was a problem hiding this comment.
Really nice notebook, well thought-out!
I just found one thing that affects the city results in Part 3:
night -time Landsat images have cloud cover -1, so they get through the eo:cloud_cover < max_cloud filter. The notebook can't use them because B04 and B05 are empty at night, so there's no NDVI and every pixel comes back invalid.
I ran the same search and it looks like 3 cities are affected
- London: 7 of 20 are night images
- Brasilia: 7 of 20
- Alicante: 3 of 20
Could you change the filter to eo:cloud_cover >= 0 AND eo:cloud_cover < {max_cloud} & rerun Part 3?
It would probably take quite some effort to update the city numbers in the text, and maybe conclusion, but I think it is worth it and London might make it into the comparison too then 🙂
Night-time Landsat acquisitions have eo:cloud_cover = -1 and passed the scene search, wasting slots in the evenly spaced city subsets. The Catalog filter now requires eo:cloud_cover >= 0. Re-executed on CDSE: Budapest is unchanged, London now passes the thresholds (9 of 10 cities), and the Result paragraphs and conclusions are updated, including the negative skill found for London and Alicante. Also: version 1.1 with the Zenodo concept DOI, the companion script's cloud mask, an OAuth client link in the prerequisites, a land-mask note in 10.1, advice to check skill on a second Landsat date, and an outlook sentence on night-time calibration. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks for catching the night-time scenes as an error source, I was not aware they existed! Now we have change the catalog filter, to
All Result paragraphs and the conclusions are updated, and the notebook is now version 1.1 (also on Zenodo). |
mariiaShevchuk
left a comment
There was a problem hiding this comment.
Thank you, looks great!
One small thing I noticed: the notebook is outside the sentinelhub/use_cases/ folder -is that intentional?
Otherwise looks ready to merge. (the failing checks aren't from this PR)
|
No, it should actually merge to the sentinelhub/use_cases folder - do I have to change something on my side? |
Place the notebook in the use_cases folder like the other end-to-end examples, and list it in sentinelhub/README.md. Content unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
PR updated, content moved to |
|
Thanks, the latest commit covers it! |
|
Merged. |
Adds
sentinelhub/clms_lst_landsat_sharpening.ipynb. This is an end to end use case, It sharpens the hourly 3 km CLMS LST V3 to 100 m with a Landsat 8/9 residual field, using the Sentinel Hub Process API on CDSE. It then evaluates the method:Notes
sentinelhubkernel; formatted with black 23.3.0; kernelspecsentinelhub.SHConfig(), and asks withgetpassonly when no credentials are configured. None are stored.sentinelhub/.tests: a full run makes several hundred Process API requests and takes a long time.data-fusion/clms_lst_sharpening_with_landsat.🤖 Generated with Claude Code - fully checked and creation guided by me
Description:
PR Checklist: