geemap学习笔记048:光谱变换

发布时间:2024年01月16日

前言

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前后结果对比
image.png
image.png

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

image.png

后记

大家如果有问题需要交流或者有项目需要合作,可以加Q Q :504156006详聊,加好友请留言“CSDN”,谢谢。

文章来源:https://blog.csdn.net/qq_41951977/article/details/135604055
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。