遇到瓶颈了,在对土地覆盖进行分类的时候,由于实际地表类型复杂多样,采用监督分类方法,计算机会仅根据地物光谱特征进行分类,结果中势必有错分和漏分的现象,与实际地表覆被信息有别。尤其是在有大量山体分布的地区,山体的阳坡和阴坡光谱响应有巨大差异,而阴坡对分类结果的影响不可避免,往往会把阴坡的草地分成湿地。

今天要深入的理解一下什么是像元的光谱特征、光谱波段曲线等等,学会在GEE中提取地物光谱特征。

1 什么是像元的光谱特征

像元的光谱特征(Spectral Features of a Pixel) 是指遥感影像中每个像元在不同波段上的反射率或辐射值。简单来说,就是传感器接收到的各个波段的电磁波信息,用于区分不同的地物类型。

多光谱和高光谱遥感影像会记录多个波段的信息,每个像元在这些波段上的反射率值形成了它的光谱特征。不同地物(如水体、植被、建筑物等)在不同波段上的反射率不同,因此可以通过分析这些特征来进行分类。

光谱特征的核心要点

  • 光谱反射率(Spectral Reflectance):地物对不同波长的电磁波的反射程度。

  • 光谱曲线(Spectral Signature):某一地物在多个波段上的反射率分布曲线,用于区分不同地物。

  • 光谱指数(Spectral Indices):通过特定波段的组合计算得出的特征值(如NDVI)。

像元的光谱特征可以通过原始光谱信息光谱指数两种方式来表示:

(1)原始光谱信息:

在遥感影像中,每个像元的光谱特征通常由多个波段的值组成。例如,Sentinel-2 影像有 13 个波段,每个像元可能有如下数据:

波段 波长范围 (nm) 典型用途
B1 443 大气校正、海洋研究
B2 490 蓝光,可见光
B3 560 绿光,植被分析
B4 665 红光,植被健康分析
B5 705 红边,植被生长
B6 740 红边,植被分析
B7 783 近红外,植被分析
B8 842 近红外,NDVI计算
B8a 865 近红外,水文研究
B9 945 水汽吸收
B10 1375 大气校正
B11 1610 短波红外,土壤和植被含水量
B12 2190 短波红外,地表分类

例如:

  • 植被在近红外波段(NIR,B8)上反射率很高,在红光波段(B4)上反射率很低。

  • 水体在红光(B4)、近红外(B8)和短波红外(B11、B12)上吸收率高,反射率低。

(2)光谱指数

为了增强特定的光谱特征,人们经常计算光谱指数,如:

  • 归一化植被指数(NDVI):衡量植被活力

  • 归一化水体指数(NDWI):检测水体

  • 土壤调节植被指数(SAVI):用于减少土壤背景影响

这些指数可以进一步提取像元的光谱特征,使分类更加准确。


打个比方,光谱特征就像是“颜色指纹”:

想象一下,你走进一个超市,看到各种各样的水果🍎🍊🍌。即使不摸、不闻,你也可以仅凭颜色来区分它们:

  • 🍎 苹果:红色

  • 🍊 橙子:橙色

  • 🍌 香蕉:黄色

如果再细一点,你会发现:

  • 青苹果 🍏 是绿色的,红苹果 🍎 是红色的。

  • 熟透的香蕉 🍌 是金黄色的,没熟的香蕉是青绿色的。

在遥感影像里,不同的地物(如水、植被、城市建筑等)也像这些水果一样,每种地物都有自己独特的“颜色指纹”,这就是它们的光谱特征

不过,遥感影像不仅仅是人眼能看到的颜色(红、绿、蓝),它还能捕捉人眼看不见的光(近红外、短波红外等)。这些“隐形颜色”进一步帮助我们精确区分不同地物


但事实上,光谱特征本质上是数字,它们表示某个像元(Pixel)在不同波段上的反射率或辐射值。

在遥感影像中,每个像元的光谱特征是由多个波段的数值组成的。例如,Sentinel-2 影像有 13 个波段,那么每个像元的光谱特征就可以用 13 个数字来表示:

📌 假设一个像元的光谱特征:

波段 反射率值(0-1之间)
蓝光(B2) 0.12
绿光(B3) 0.15
红光(B4) 0.10
近红外(B8) 0.78
短波红外(B11) 0.30

💡 从这组数值可以看出:

  • 这个像元在红光(B4)上反射率很低,但在近红外(B8)上反射率很高,这说明它可能是植被,因为植被的典型特征就是红光吸收强、近红外反射高。


2 光谱特征在影像中如何存储

遥感影像的光谱信息存储方式可分为 单光谱、彩色(RGB)、多光谱和高光谱 四类。

1. 单光谱影像(Panchromatic Image, PAN)

  • 特点

    • 只有一个波段(单通道),通常是 可见光全波段(0.4~0.7 μm) 的综合反射率。

    • 由于覆盖较宽的光谱范围,分辨率通常较高(如 WorldView-3 的 PAN 影像分辨率可达 0.31 m)。

  • 存储方式

    • 灰度值(0255 或 065535) 形式存储像素亮度信息。

    • 典型格式:GeoTIFF(.tif)、JPEG 2000(.jp2)等。

  • 用途

    • 主要用于增强其他影像的细节(如 PAN-Sharpening,即全色锐化)。

    • 适用于需要高空间分辨率但不要求高光谱分辨率的应用,如城市规划、道路提取等。

2. 彩色影像(RGB, True Color Image)

  • 红(Red)、绿(Green)、蓝(Blue) 三个波段组成,类似人眼视觉感知的彩色影像。

  • 典型数据源:航空影像、部分商业卫星(如 Google Earth 底图)。

  • 常见存储格式:GeoTIFF、JPEG、PNG。

3. 多光谱影像(Multispectral Image, MS)

  • 包含 4~20 个波段,覆盖可见光、近红外、短波红外等波段。

  • 典型数据源:

    • Landsat-8/9(11 个波段,30m 分辨率)

    • Sentinel-2(13 个波段,10~60m 分辨率)

  • 数据存储:

    • 影像栅格存储为多通道 TIFF 或 HDF 格式,每个波段单独存储一个通道。

4. 高光谱影像(Hyperspectral Image, HS)

  • 包含 数十到数百个连续波段(如 AVIRIS,224 个波段)。

  • 典型数据源:

    • AVIRIS(224 波段,10nm 光谱分辨率)

    • Hyperion(220 波段)

  • 存储格式:

    • 采用 ENVI(.hdr + .dat)、HDF5、NetCDF 形式存储,每个波段对应一个数据层。


总结

影像类型 波段数 典型波长范围 主要用途 典型存储格式
单光谱(PAN) 1 0.4~0.7 μm 高分辨率地物提取、全色锐化 GeoTIFF, JP2
彩色(RGB) 3 可见光 视觉解读、地图制图 JPEG, PNG, GeoTIFF
多光谱(MS) 4~20 可见光 + 近红外 + SWIR 植被指数、土地利用分类 GeoTIFF, HDF
高光谱(HS) 100+ 连续窄波段(0.4~2.5μm) 物质识别、端元分析 ENVI, HDF5, NetCDF

3 如何获取 Sentinel-2 影像的光谱曲线

下面,我想利用GEE来获取到Sentinel-2影像中山体阴坡、阳坡以及湿地的光谱波段曲线:

(1)选择研究区域和时间

首先,我们在 GEE 里加载 Sentinel-2 影像,并筛选研究区域和时间范围:

var roi = ee.Geometry.Point([100.0, 38.0]);  // 替换为研究区中心点
var s2 = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
           .filterBounds(roi)
           .filterDate('2024-01-01', '2024-03-01') // 选择时间范围
           .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 10)) // 过滤云量小于10%的影像
           .median();  // 取时间范围内的中值影像

(2)计算坡向(Aspect)用于区分阴坡和阳坡

var dem = ee.Image('USGS/SRTMGL1_003');  // 载入 SRTM DEM
var slope = ee.Terrain.slope(dem);  // 计算坡度
var aspect = ee.Terrain.aspect(dem);  // 计算坡向

// 定义阳坡(南向坡,90°~270°)
var sunFacing = aspect.gt(90).and(aspect.lt(270));
// 定义阴坡(北向坡,270°~360° 和 0°~90°)
var shadowFacing = aspect.lt(90).or(aspect.gt(270));

(3)选择典型像素点

手动选择代表阴坡、阳坡的样本点:

var sunSlope = ee.Geometry.Point([100.02, 38.02]);  // 阳坡
var shadowSlope = ee.Geometry.Point([100.01, 38.01]);  // 阴坡

(4)提取光谱反射率曲线

提取 Sentinel-2 的 10 个主要光谱波段:

var bands = ['B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B11', 'B12'];

// 获取各地物的光谱反射率
var sunSlopeValues = s2.reduceRegion({
  reducer: ee.Reducer.mean(),
  geometry: sunSlope,
  scale: 10
});

var shadowSlopeValues = s2.reduceRegion({
  reducer: ee.Reducer.mean(),
  geometry: shadowSlope,
  scale: 10
});


// 打印光谱反射率
print("阳坡光谱:", sunSlopeValues);
print("阴坡光谱:", shadowSlopeValues);

(5)在 GEE 中绘制光谱曲线

var chart = ui.Chart.image.regions({
  image: s2,
  regions: ee.FeatureCollection([
    ee.Feature(sunSlope, {label: '阳坡'}),
    ee.Feature(shadowSlope, {label: '阴坡'}),
  ]),
  reducer: ee.Reducer.mean(),
  scale: 10,
  xProperty: 'label'
}).setOptions({
  title: '光谱曲线',
  hAxis: {title: '波段'},
  vAxis: {title: '反射率'}
});

print(chart);

查看结果:

光谱数据也可以下载CSV文件到本地,再用Excel进行处理和分析:

4 如何进一步分析光谱曲线信息

(1) 观察光谱特征差异

  • 阴坡 vs. 阳坡

    • 阴坡通常因受阳光照射少,整体反射率较低,特别是在短波红外(SWIR)波段。

    • 阳坡在可见光和近红外(NIR)波段的反射率较高。

(2) 计算典型光谱指数

var ndvi = s2.normalizedDifference(['B8', 'B4']).rename('NDVI');
var ndwi = s2.normalizedDifference(['B3', 'B8']).rename('NDWI');

这次就先做这些吧,分析的结果发现:山体的阴坡和阳坡光谱特征存在很大的差异,这也是很多时候用计算机进行分类时,明明山体阴坡和阳坡的植被一致,分类结果却不一样的主要原因,机器学习分类器进行分类时,光谱特征就是一个很重要的分类依据。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐