第二章:遥感基础——电磁波谱与卫星传感器
各位同学好,我是老张。今天咱们聊聊遥感的基础知识。说实话,很多做量化交易的朋友一听到「遥感」两个字就觉得头大,觉得这是搞地理的人才会碰的东西。但我想告诉你,大宗商品预测里,遥感数据其实是个宝藏。
我刚开始接触这个领域时,也踩过不少坑。比如有一次,我用MODIS数据做玉米产量预测,结果模型死活拟合不好。后来才发现,我选的光谱波段根本不对——嗯,这就是今天要讲的核心问题。
2.1 电磁波谱:遥感的基础语言
说白了,遥感就是「隔空看物」。卫星在天上,怎么看到地面的东西?靠的就是电磁波。
电磁波谱是个连续的光谱带,从波长最短的伽马射线,到最长的无线电波。但对我们做农业、资源监测的人来说,真正有用的就几个波段:
- 可见光(0.4-0.7μm):就是我们肉眼能看到的红绿蓝。植被健康时反射绿光多,所以看起来是绿色的。
- 近红外(0.7-1.3μm):这个波段特别有意思。健康植被反射近红外很强,水体则几乎不反射。我当年做大豆估产时,就是靠近红外和红光的比值来算植被指数的。
- 短波红外(1.3-3μm):对土壤水分、矿物成分敏感。做干旱监测时,这个波段很关键。
- 热红外(3-15μm):测量地表温度。我记得有一次帮客户做小麦冻害评估,就是靠热红外数据发现温度异常区域的。
核心概念:不同地物在不同波段有独特的反射/发射特征,这就是我们识别作物、估算产量的物理基础。
2.2 卫星传感器:怎么「看」到地面
卫星传感器,你可以理解成一台超级相机。但它不是拍照片,而是记录每个像元(像素)在不同波段的反射率。
常见的传感器类型有两种:
- 多光谱传感器:一般有4-10个波段。Landsat的OLI传感器有11个波段,Sentinel-2的MSI有13个波段。我个人的习惯是,做作物分类时优先用Sentinel-2,因为它的红边波段对植被更敏感。
- 高光谱传感器:有上百个连续波段。精度高,但数据量大,处理起来也麻烦。说实话,做大宗商品预测时,多光谱基本够用了。
我的经验:别被「高光谱」三个字唬住。实际项目中,多光谱数据配合时间序列分析,效果往往比单次高光谱好得多。我曾经用Landsat 8的8个波段做玉米单产预测,R²达到了0.85。
2.3 常见卫星数据源
现在免费可用的卫星数据源不少,我挑三个最常用的说说:
| 数据源 | 空间分辨率 | 时间分辨率 | 光谱波段数 | 我的使用场景 |
|---|---|---|---|---|
| Landsat 8/9 | 30m(多光谱) | 16天 | 11 | 长时间序列分析,历史数据回溯 |
| Sentinel-2 | 10m/20m | 5天 | 13 | 精细作物分类,小地块监测 |
| MODIS | 250m-1km | 1天 | 36 | 大区域、高频次监测,如全球小麦长势 |
你想想看,这三个数据源各有侧重。Landsat像是个老黄牛,数据从1984年就有了,做历史对比特别好。Sentinel-2是后起之秀,分辨率高、重访周期短,我最近做大豆预测时主要用它。MODIS嘛,虽然分辨率粗,但每天都能看到,适合做大范围的趋势判断。
避坑指南:我曾经犯过一个错误——直接用MODIS的250m分辨率数据去分析中国南方的小地块水稻。结果每个像元里混了水稻、池塘、房屋,模型完全失效。后来我改用Sentinel-2的10m数据,问题才解决。记住:空间分辨率要和你的目标地块大小匹配。
2.4 数据分辨率:三个维度都要看
分辨率这个词,很多人只关注空间分辨率。其实做量化预测时,三个分辨率都得考虑:
- 空间分辨率:一个像元代表地面多大面积。30m就是每个像元30×30米。做美国玉米带这种大田块,30m够用;做中国南方丘陵地带,最好用10m甚至更高。
- 时间分辨率:卫星多久回来一次。Sentinel-2是5天,但云多的地方实际可用数据可能一个月才有一景。我个人的习惯是,先看研究区的历史云量统计,再选数据源。
- 光谱分辨率:波段数量和宽度。波段越多,能区分的地物越细。但也不是越多越好——数据量大了,处理时间也长。
为什么会这样?因为这三个分辨率是相互制约的。空间分辨率高了,幅宽就小,时间分辨率就低。MODIS空间分辨率粗,但每天都能覆盖全球。这就是工程上的取舍。
2.5 知识体系总览
下面这张图是我自己画的,把本章的核心逻辑串起来了。你看一遍,应该能有个整体印象:
这张图把本章的逻辑串起来了:电磁波谱是物理基础,传感器是采集工具,数据源是具体产品,分辨率是选择依据。做预测时,你得从下往上想清楚每一步。
总结一下:遥感数据不是万能的,但用对了地方,效果惊人。我见过太多人一上来就堆数据,结果模型过拟合。记住:先理解你的预测目标,再选合适的数据源和分辨率。这才是正道。
好了,这一章就到这里。下一章我们会讲如何用Python获取和处理这些卫星数据,到时候我会手把手带大家写代码。有什么问题,欢迎在群里交流。