ubarsc / python-fmask

A set of command line utilities and Python modules that implement the ‘fmask’ algorithm
https://www.pythonfmask.org
GNU General Public License v3.0
75 stars 21 forks source link

possible update of ESUN values #15

Closed gillins closed 4 years ago

gillins commented 7 years ago

Original report by David Ketchum (Bitbucket: dgketchum, GitHub: dgketchum).


Hi, I love your project. I was reading the source and came across the values for ESUN, which my need updating. I'm probably missing something, but the values for Landsat 7 on fmask.LandsatTOA aren't as they appear at https://landsat.usgs.gov/esun. I'm probably missing something that takes care of this. Is this the case?

Thanks for all your work on fmask, it makes my life easier!

gillins commented 7 years ago

Original comment by Neil Flood (Bitbucket: neilflood, GitHub: neilflood).


Hi David,

thanks for your kind words, and enthusiasm. I am very glad this is of some use to you.

The values for Esun are indeed different, and there is not some other piece of the code taking care of it. The reason for the difference is that they were created using a different model of the exoatmospheric solar spectrum. There are a number of different models of precisely what contribution each fine wave band makes to each part of the spectrum, and these are convolved with the sensor-specific relative spectral response functions, to give these Esun values. So, a different model of the full spectrum will result in a different value for Esun.

The values listed here were taken from one of the standard papers on calibration of Landsat (Chander et al, 2009), and it used a spectrum due to Thuillier et al (2003). However, it seems that the current recommendation from the USGS is still to use values based on the Chance-Kuruszc spectrum. These are both widely used, and it would not be true to say that either of them is "wrong" (at least as far as I understand it). I note that the pdf URL shown in our source code no longer exists, but the Chander paper is still valid.

I also do not know which Esun values were used by the Fmask authors when they tuned the various thresholds for the algorithm, and I would guess that this would be notionally the best one to use. However, they just say that they use LEDAPS to get to TOA reflectance, and I don't know enough about that software to know how they arrive at it.

My feeling is that it would not make a great deal of difference to the final Fmask behaviour. I probably should do some digging and work out the best approach. You are right to say that there is some merit in being consistent with the current USGS recommendations, but I do believe that it will not make a huge difference.

I also note that the Landsat-8 values are also slightly different to those which the USGS currently uses for TOA reflectance, for much the same reason. I should check into those as well.

Unless you feel strongly that there is a serious problem to address, I will just get to this as time allows. I will leave this issue open, to remind me about it. Let me know if that seems OK to you.

cheers, Neil

References.

Chander, Markham, Helder. 2009. Summary of current radiometric calibration coefficients for Landsat MSS, TM, ETM+ and EO-1 ALI sensors. Remote Sensing of Environment 113, pp 893-903.

Thuillier, G., Herse, M., Labs, S., Foujols, T., Peetermans, W., Gillotay, D., Simon, P. C., & Mandel, H. (2003). The solar spectral irradiance from 200 to 2400 nm as measured by SOLSPEC Spectrometer from the ATLAS 123 and EURECA missions.Solar Physics, 214(1), 1−22 Solar Physics.

gillins commented 7 years ago

Original comment by David Ketchum (Bitbucket: dgketchum, GitHub: dgketchum).


Thanks for the thoughtful response. It isn't terribly important for me which values are used. I'm trying to fit fmask into a python object I need, so I hope to use results from your fmask implementation to validate my object behavior once it is done for testing purposes. Thanks again for your work. I'll let you know if I come across any compelling evidence to go one way or another. Cheers.

gillins commented 7 years ago

Original comment by Neil Flood (Bitbucket: neilflood, GitHub: neilflood).


On hold, as discussed.

neilflood commented 4 years ago

This was three years ago, so presumably all OK. Plus, looks like OP has now implemented their own Fmask anyway. :-)