第2章:高光谱数据获取平台
做高光谱遥感这些年,我接触过不少数据获取平台。从太空到地面,每个平台都有自己的脾气。今天咱们就聊聊星载、机载和地面这三种主流平台。
说实话,刚开始接触高光谱时,我也被这些传感器搞得晕头转向。后来慢慢摸清了门道,发现选对平台比什么都重要。你想想看,用卫星数据做精细农业,那分辨率可能不够;用地面光谱仪做大面积监测,又得累死。
2.1 星载高光谱传感器
星载平台,说白了就是卫星上装的高光谱传感器。这类传感器最大的优势是覆盖范围广,能定期重复观测。我个人习惯先看星载数据,再决定要不要用机载或地面数据做补充。
2.1.1 Hyperion
Hyperion 是美国 NASA 的 EO-1 卫星上的传感器,2000年发射,2017年退役。它算是星载高光谱的元老级人物了。
| 参数 | 数值 |
|---|---|
| 光谱范围 | 400-2500 nm |
| 波段数 | 220 个 |
| 空间分辨率 | 30 米 |
| 幅宽 | 7.5 公里 |
我在项目中用过 Hyperion 数据做作物分类。嗯,这里要注意,Hyperion 数据需要做大气校正,不然反射率算出来偏差很大。我记得第一次用的时候,没做大气校正直接分析,结果植被指数全乱套了。
2.1.2 PRISMA
PRISMA 是意大利航天局的卫星,2019年发射。它比 Hyperion 年轻多了,性能也提升不少。
| 参数 | 数值 |
|---|---|
| 光谱范围 | 400-2500 nm |
| 波段数 | 239 个 |
| 空间分辨率 | 30 米(高光谱)/ 5 米(全色) |
| 幅宽 | 30 公里 |
PRISMA 有个好处,它自带全色波段,可以做融合处理。我建议做精细农业时,把 30 米高光谱和 5 米全色融合,空间细节会好很多。
2.2 机载高光谱系统
机载系统装在飞机或无人机上。它的空间分辨率比星载高得多,但覆盖范围小,成本也高。说白了,星载适合大面积普查,机载适合重点区域详查。
2.2.1 AVIRIS
AVIRIS 是美国 NASA 的机载可见光/红外成像光谱仪。它从 1987 年就开始飞了,积累了大量的数据。
| 参数 | 数值 |
|---|---|
| 光谱范围 | 380-2500 nm |
| 波段数 | 224 个 |
| 空间分辨率 | 4-20 米(取决于飞行高度) |
| 瞬时视场角 | 1 mrad |
AVIRIS 的数据质量很高,我特别喜欢用它做矿物填图。你想想看,224 个波段,每个波段都有高信噪比,做光谱解混效果特别好。
2.2.2 HySpex
HySpex 是挪威 NEO 公司的产品,分 VNIR 和 SWIR 两个传感器。它比 AVIRIS 轻便,适合无人机搭载。
| 参数 | HySpex VNIR-1800 | HySpex SWIR-384 |
|---|---|---|
| 光谱范围 | 400-1000 nm | 1000-2500 nm |
| 波段数 | 186 个 | 288 个 |
| 空间像素 | 1800 像素 | 384 像素 |
我建议做作物监测时,优先用 HySpex VNIR 数据。因为作物在可见光-近红外区域的光谱特征最明显,而且 VNIR 传感器的信噪比更高。
2.3 地面非成像光谱仪
地面光谱仪,说白了就是拿着仪器到田里测光谱。它不成像,只记录一个点的光谱曲线。但精度最高,是星载和机载数据的"真值"来源。
2.3.1 ASD FieldSpec
ASD FieldSpec 是地面光谱仪的标杆产品。我用了十几年,从 FieldSpec 3 到 FieldSpec 4,算是老用户了。
| 参数 | FieldSpec 4 |
|---|---|
| 光谱范围 | 350-2500 nm |
| 采样间隔 | 1.4 nm(350-1000 nm)/ 2 nm(1000-2500 nm) |
| 光谱分辨率 | 3 nm(700 nm)/ 10 nm(1400 nm)/ 8 nm(2100 nm) |
| 视场角 | 1°、8°、25° 可选 |
用 ASD 测光谱,有几个关键点要注意。第一,测之前一定要做白板校正。第二,测的时候要避开阴影。第三,每个点至少测 10 条光谱取平均。
地面光谱数据怎么用?我一般用它做三件事:一是建立光谱库,二是验证卫星和机载数据的精度,三是做光谱特征分析。
# 用 Python 读取 ASD 光谱数据
import pandas as pd
import numpy as np
# 读取 ASD 的 .asd 文件
def read_asd(file_path):
# 实际项目中用 asdreader 库
from asdreader import ASDReader
reader = ASDReader(file_path)
wavelengths = reader.wavelengths
reflectance = reader.spectrum
return wavelengths, reflectance
# 读取并显示光谱
wv, ref = read_asd('wheat_leaf.asd')
print(f'波段数: {len(wv)}')
print(f'光谱范围: {wv[0]:.1f} - {wv[-1]:.1f} nm')
2.4 三种平台的对比与选择
这三种平台各有千秋。我画了个图,帮你理清思路。
选平台时,我一般按这个思路来:
- 大面积普查:用星载数据,比如 Hyperion 或 PRISMA
- 重点区域详查:用机载数据,比如 AVIRIS 或 HySpex
- 验证和建模:用地面的 ASD 数据
实际项目中,我经常三种平台一起用。比如做作物病害监测,先用卫星数据找到疑似区域,再用无人机飞一遍获取高分辨率数据,最后到田里用 ASD 测光谱验证。
好了,这一章就聊到这儿。记住,选平台没有绝对的好坏,关键看你的应用场景和预算。下一章咱们聊聊高光谱数据的预处理,那才是真正考验技术的地方。
公众号:蓝海资料掘金营,微信deep3321