前言
Earth Engine中有多种光谱变换方法。其中包括图像上的实例方法,例如 normalizedDifference()、unmix()、rgbToHsv() 和 hsvToRgb()。
1 导入库并初始化
import ee
import geemap
ee.Initialize()
2 全色图像锐化(Pan sharpening)
Map = geemap.Map(center=[40, -100], zoom=4)
# Load a Landsat 8 top-of-atmosphere reflectance image.
image = ee.Image('LANDSAT/LC08/C01/T1_TOA/LC08_044034_20140318')
Map.addLayer(
image,
{'bands': ['B4', 'B3', 'B2'], 'min': 0, 'max': 0.25, 'gamma': [1.1, 1.1, 1]},
'rgb')
# 将图像从 RGB 颜色空间转换为 HSV 颜色空间。输入是在 [0, 1] 范围内的 3 波段图像,并生成三个波段:
# 色调、饱和度和值(hue, saturation, value),其值在 [0, 1] 范围内。
hsv = image.select(['B4', 'B3', 'B2']).rgbToHsv()
# 将'value'替换为全色波段并转换回 RGB。
sharpened = ee.Image.cat([
hsv.select('hue'), hsv.select('saturation'), image.select('B8')
]).hsvToRgb()
# 展示结果
Map.setCenter(-122.44829, 37.76664, 13)
Map.addLayer(sharpened,
{'min': 0, 'max': 0.25, 'gamma': [1.3, 1.3, 1.3]},
'pan-sharpened')
Map
Pan sharpening前后结果对比
3 光谱解混(Unmix)
Map = geemap.Map(center=[40, -100], zoom=4)
# Load a Landsat 5 image and select the bands we want to unmix.
bands = ['B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7']
image = ee.Image('LANDSAT/LT05/C02/T1/LT05_044034_20080214') \
.select(bands)
Map.setCenter(-122.1899, 37.5010, 10) # San Francisco Bay
Map.addLayer(image, {'bands': ['B4', 'B3', 'B2'], 'min': 0, 'max': 128}, 'image')
# 定义光谱端元
urban = [88, 42, 48, 38, 86, 115, 59]
veg = [50, 21, 20, 35, 50, 110, 23]
water = [51, 20, 14, 9, 7, 116, 4]
# 图像解混
fractions = image.unmix([urban, veg, water])
Map.addLayer(fractions, {}, 'unmixed')
Map
后记
大家如果有问题需要交流或者有项目需要合作,可以加Q Q :504156006详聊,加好友请留言“CSDN”,谢谢。