Background: I have a machine learning model that is trained on values derived from Landsat Collection 1 images extracted from Google Earth Engine. Collection 1 is deprecated and about to be purged sooner or later, and all users are urged to update their code to Collection 2.

Issue: The USGS web pages has information of scaling and differences in processing between Collection 1 and 2, for example, the valid range of pixel values is 65455 for Collection 2, and 10000 for Collection 1, a quotient of 0.153. However, when comparing pixel values for Landsat collection 1 and 2 there is a considerable and variable difference between the two collections, which is likely not only due to difference in pre-processing and improved geo-location. For consistency with my previous analyses, I need to keep my model as it is, so I cannot just train it again on the new values.

Band coll_1 coll_2 quotient
B1 20000 65535 0.3051804
B2 6399 30993 0.2064660
B3 6365 30905 0.2059537
B4 6443 31238 0.2062552
B5 3138 18892 0.1661021
B6 2267 21012 0.1078907
B7 2683 17150 0.1564431

Question: Is the differences between the bands rather a scaling issue, that could be expected to be fairly consistent globally? For example, the quotient for band 2-4 seems to be very similar. Or is there any other way that I can obtain values from Colletion 2 that are similar to Collection 1 (except for the differences due to improved quality, of course).

1 Answer 1


If you look in the bands section of the catalog for collection 1 and 2, you'll see the scale and offset (only for C2) columns.

Before you use the data, you probably want to apply these scale factors. It's especially important for C2, because of that offset. it would for instance give incorrect values when calculating NDVI if you don't. From the C2 catalog page:

function applyScaleFactors(image) {
  var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2);
  var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0);
  return image.addBands(opticalBands, null, true)
              .addBands(thermalBands, null, true);
  • Good point! My further investigations points in the same direction, that indices get quite different values without the scaling, while pixel-values remain highly correlated, although with very different values.
    – Smerla
    Mar 20 at 8:46

Your Answer

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

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