I'm currently trying to produce a true color pansharpened Landsat 7 image in Google Earth Engine. I've included my code below and a subset of the resulting image. I'm simply using the rgbToHsv function to convert the true color bands for Landsat 7 (B3, B2, B1) to HSV then subbing in the panchromatic band and converting back to RGB. This process has worked for Landsat 8 and even worked on this same Landsat 7 image when I included the false-color bands (B4, B3, B2). However code below image results in a sharpened image but for some reason vegetation appears cyan-blue instead of the expected dark green color. I've included a screenshot of the resulting image. The issue with the color is most noticeable in active agriculture plots. I can't figure out why the resulting image is blue in places. Initially I thought I included the wrong bands for True Color with Landsat 7 but that doesn't seem to be the issue.

Does it have something to do with the rgbToHsv or hsvToRgb functions?

var L7image = ee.Image('LANDSAT/LE07/C01/T1_TOA/LE07_037037_20000606').clip(sa);
var L7image_hsv_truecolor = L7image.select(['B3','B2','B1']).rgbToHsv();
var L7image_sharp_truecolor = ee.Image.cat([L72000_hsv_truecolor.select('hue'),L72000_hsv_truecolor.select('saturation'),sngimgL72000_037037.select('B8')]).hsvToRgb();

resulting pansharpened Landsat 7 TOA Should be True Color

1 Answer 1


Your code is correct, but this does not work for Landsat 7 as its panchromatic band includes a range of wavelengths that is both wider and shifted longer (less blue, more infrared) than visible light.

This differs from Landsat 8 which has a panchromatic band much closer to the visible bands.

You can still pansharpen Landsat 7, but the techniques to do so are more involved than HSV swapping of luminance.

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.