遇到瓶颈了,在对土地覆盖进行分类的时候,由于实际地表类型复杂多样,采用监督分类方法,计算机会仅根据地物光谱特征进行分类,结果中势必有错分和漏分的现象,与实际地表覆被信息有别。尤其是在有大量山体分布的地区,山体的阳坡和阴坡光谱响应有巨大差异,而阴坡对分类结果的影响不可避免,往往会把阴坡的草地分成湿地。
今天要深入的理解一下什么是像元的光谱特征、光谱波段曲线等等,学会在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');
这次就先做这些吧,分析的结果发现:山体的阴坡和阳坡光谱特征存在很大的差异,这也是很多时候用计算机进行分类时,明明山体阴坡和阳坡的植被一致,分类结果却不一样的主要原因,机器学习分类器进行分类时,光谱特征就是一个很重要的分类依据。