sertit / eoreader

Remote-sensing opensource python library reading optical and SAR sensors, loading and stacking bands, clouds, DEM and spectral indices in a sensor-agnostic way.
https://eoreader.readthedocs.io/en/latest/
Apache License 2.0
278 stars 22 forks source link

ENH: Support S3 LST L2 #51

Closed Rapsodia86 closed 2 years ago

Rapsodia86 commented 2 years ago

It would be great to support Sentinel-3 LST level 2 product: https://sentinels.copernicus.eu/web/sentinel/user-guides/sentinel-3-slstr/product-types/level-2-lst

Unless it is already possible, but after going thru documentation (https://eoreader.readthedocs.io/en/latest/notebooks/why_eoreader.html) I only find level-1, am I correct?

remi-braun commented 2 years ago

Hello!

Yes you are correct, L2 products are not handled because they are not used in CEMS rapid mapping 😅

Do you know if they are handled like L1 products ? Did you try EOReader geocoding ? Are you satisfied with it ? I am hesitating to swith from my homemade version to the pyresample library

Rapsodia86 commented 2 years ago

Hi, thanks for a quick answer. I am not familiar with L1 or L2 products since I find the whole idea of S3 dataset geometry structure and requirement of using SNAP really tedious. I do work with MODIS LST & Landsat data. None of them requires more than gdal & numpy to be processed, and that is why I do not use any other libraries. But at some point, I will have to add Sentinel data. There is quite a lot of scripts/tools/libraries for S2, but not much for S3.
While looking for the approach (outside SNAP) to transform (and reproject) S3 LST L2 to geotiff, I found your EOReader library. So, had no chance to try it. Are you interested in adding LST L2? I think that would be a very first version of processing w/o SNAP. Unless, there is something out there, which I cannot locate.

remi-braun commented 2 years ago

I think I will handle this product, especially since it seems easier to handle than L1 products.(S3-L1 products are soooo hard to handle correctly, it is a pity 🙄 )

But this may take some time. I will try to add it to the 0.17.0 but I wont promise anything 😅

Rapsodia86 commented 2 years ago

Sounds great! If need any help, please let me know!

remi-braun commented 2 years ago

So I was on holidays last week, and I just looked deeper into S3 L2-LST data 😅 If I'm right, LST products don't offer spectral bands anymore, only processed data (the whole point of LST haha).

So, I will not implement them (sadly), as the point of EOReader is to map spectral bands between sensors (for optical data) but not to handle any type of product.

However, I think you can automatize the geocoding (and conversion to GeoTiff) quite easily. It seems there is only one grid, so it simplifies the processing. You can look at this tutorial (➡️ #3b.-Define-Projection-and-Output-Grid) to see how to handle lat/lon files in Python.

If you have questions, feel free to ask here 😉

Rapsodia86 commented 2 years ago

Ok, I will explore the tutorial and see how the resulting image compares with SNAP's output product. If that works, I can share the script if interested. Thanks!

remi-braun commented 2 years ago

If that works, I can share the script if interested.

Yes I would be very interested ! I think this should follow the tutorial but a confirmation would be great ! 🙏

Rapsodia86 commented 2 years ago

Hi Remi, I do have a few questions ,and since you have already dealt with S3 I hope you can provide me with answers. Do you mind sending me an email so I can reach you? monikat@msu.edu

If not, then I will elaborate here:)

remi-braun commented 2 years ago

Email sent :)

However, when reaching a runnable script, it should be nice to post it here 😉

remi-braun commented 1 year ago

For information, as for release 0.18.0, Sentinel-3 geocoding is using pyresample 😄

Rapsodia86 commented 1 year ago

Thank you for the information!