I am using Landsat 8 C2L2 images, and I would like to multiply Band 10 with 0.00341802 and then add 149.0 in order to get land surface temperature in Kelvin (this is explained by the second image from USGS). The problem which I face is the following:

  1. I create a "var surface_temperature" which is equal to Band 10.

  2. I multiply this var with 0.00341802, and in the end I add 149.0.

  3. The final LST range is 140 to 372 Kelvin which is not possible.

What's wrong with my code? Code's Link: https://code.earthengine.google.com/334f43b02a4861d7c7fb7c2a77154fd1

enter image description here

enter image description here

1 Answer 1


If you check the histogram you'll see that the data are in the proper range. Likely there are a couple of erroneous pixels that are stretching the range. The dataset includes the 'ST_QA' band which you could use to mask out pixels that have high uncertainty.

print(ui.Chart.image.histogram(lst, geometry, 30))

enter image description here

  • Thank you, may you also please explain how to use this filter?
    – Chris
    Dec 8, 2022 at 20:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.