第1章:卫星数据获取——主流数据源与下载策略
做遥感数据分析,第一步就是搞到数据。很多人一上来就问我:“老师,哪个卫星数据最好?”
说实话,没有“最好”的数据,只有“最合适”的数据。我做了十几年遥感项目,踩过不少坑,今天就把这些经验分享给你。
1.1 三大主流卫星数据源
目前全球用得最多的开源卫星数据,主要来自三个系列:Landsat、Sentinel 和 MODIS。它们各有各的脾气,我一个个说。
1. Landsat(陆地卫星)——老牌劲旅
Landsat 是美国 NASA 和 USGS 联合搞的项目,从 1972 年到现在,已经跑了 50 多年。我个人最常用的是 Landsat 8 和 Landsat 9。
- 空间分辨率:30米(多光谱),15米(全色)
- 时间分辨率:16天重访
- 波段数量:11个波段(Landsat 8/9)
- 适用场景:土地利用分类、植被监测、城市扩展分析
我的经验:Landsat 数据最大的优势是历史存档长。我做过一个 30 年的城市扩张分析,全靠 Landsat 5/7/8 的数据接力。但要注意,Landsat 7 的扫描线校正器(SLC)在 2003 年坏了,数据有条纹,用的时候要小心。
2. Sentinel(哨兵卫星)——欧洲新秀
Sentinel 是欧盟哥白尼计划的核心,我特别喜欢 Sentinel-2。它比 Landsat 年轻,但性能更强。
- 空间分辨率:10米(可见光/近红外),20米(红边/短波红外),60米(大气校正波段)
- 时间分辨率:5天(双星组网)
- 波段数量:13个波段
- 适用场景:精细农业、森林监测、水体提取
避坑指南:我曾经用 Sentinel-2 做作物识别,发现它有个红边波段(Band 5-7),对植被健康状态特别敏感。但要注意,Sentinel-2 的数据量比 Landsat 大得多,处理起来更吃内存。
3. MODIS(中分辨率成像光谱仪)——大尺度利器
MODIS 搭载在 Terra 和 Aqua 卫星上,每天能覆盖全球。说白了,它适合看“大面儿”,不适合看“细节”。
- 空间分辨率:250米(波段1-2),500米(波段3-7),1000米(其余波段)
- 时间分辨率:1-2天
- 波段数量:36个波段
- 适用场景:全球植被指数(NDVI)、海面温度、火灾监测
嗯,这里要注意:MODIS 的 250 米分辨率,在城市分析里基本就是一团糊。我一般用它做区域尺度的趋势分析,比如整个华北平原的植被变化。
1.2 数据下载平台
数据源知道了,上哪儿下载?我整理了几个最常用的平台,按推荐程度排个序。
| 平台名称 | 数据源 | 特点 | 我的评价 |
|---|---|---|---|
| USGS EarthExplorer | Landsat, MODIS | 老牌、稳定、功能全 | ★★★★★ 首选 |
| Copernicus Open Access Hub | Sentinel 全系列 | 官方、免费、速度快 | ★★★★☆ 下载 Sentinel 必用 |
| NASA LAADS DAAC | MODIS, VIIRS | 专门处理 MODIS 产品 | ★★★★☆ 做 MODIS 项目时用 |
| Google Earth Engine | 全系列 | 云端处理,无需下载 | ★★★★★ 我现在的首选 |
重要提醒:别把所有数据都下载到本地!我早期做项目时,下载了 2TB 的 Landsat 数据,结果硬盘坏了,欲哭无泪。现在我用 Google Earth Engine 直接在云端处理,省心多了。
1.3 数据检索策略
数据源和平台都知道了,但怎么快速找到你要的数据?我总结了一套“三步检索法”。
第一步:明确需求
先问自己三个问题:
- 研究区域:经纬度范围?行政边界?
- 时间范围:需要哪几年的数据?季节有要求吗?
- 云量要求:一般我设云量小于 20%,做精细分析时设小于 5%
第二步:选择数据源
根据需求选卫星:
- 做历史长序列分析 → Landsat
- 做高精度分类 → Sentinel-2
- 做全球尺度监测 → MODIS
第三步:批量检索与下载
我习惯用 Python 脚本批量处理。给你看个例子:
# 使用 earthengine-api 批量检索 Landsat 8 数据
import ee
ee.Initialize()
# 定义区域(北京市中心)
roi = ee.Geometry.Point([116.4, 39.9])
# 检索 2023 年夏季云量小于 10% 的 Landsat 8 影像
collection = (ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
.filterBounds(roi)
.filterDate('2023-06-01', '2023-08-31')
.filter(ee.Filter.lt('CLOUD_COVER', 10)))
print(f"找到 {collection.size().getInfo()} 景影像")
小技巧:检索时别只盯着云量。我遇到过云量 0% 但全是雪的情况,那数据根本不能用。建议加上季节过滤,比如“夏季+云量<10%”的组合。
1.4 知识体系总览
下面这张图,是我自己总结的卫星数据获取全流程。你把它存下来,以后做项目时对照着看。
这张图把整个数据获取流程串起来了。你想想看,从数据源选择到平台使用,再到检索策略,每一步都有讲究。
最后说一句:数据获取是遥感分析的基础,但也是最容易被忽视的环节。我见过太多人花大量时间处理错误的数据,结果白忙一场。记住:好的分析,从好的数据开始。
公众号:蓝海数据掘金营,微信deep3321