Landsat年度合成影像数据集(1985-2023)入门指南:从数据获取到预处理全流程

1次阅读
没有评论

共计 1730 个字符,预计需要花费 5 分钟才能阅读完成。

image.webp

背景介绍

Landsat 系列卫星是历史最悠久的对地观测项目之一。1985-2023 年无云合成数据集通过最大 NDVI 值合成算法,有效消除云层干扰,具有以下特点:

Landsat 年度合成影像数据集 (1985-2023) 入门指南:从数据获取到预处理全流程

  • 时间连续性:覆盖近 40 年地表变化
  • 全球覆盖:30 米分辨率适用于区域级研究
  • 多光谱特性 :包含可见光到短波红外(SWIR) 共 11 个波段
  • 科研友好:已进行辐射校正和几何精校正

数据获取

EarthExplorer 方式

  1. 注册 USGS 账号(需邮箱验证)
  2. 在搜索条件中选择:
  3. Dataset: Landsat Collection 2 Level-2
  4. Time Range: 按年度筛选
  5. Cloud Cover: 设置<10%
  6. 使用 Data Sets 标签下的Annual Composites

GEE 平台方式

import ee
ee.Initialize()

# 加载 1985-2023 年合成数据集
composite = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
    .filterDate('1985-01-01', '2023-12-31')
    .select('SR_B.*')  # 选择地表反射率波段

预处理实战

波段合成与 NDVI 计算

import rasterio
import numpy as np

# 读取波段
with rasterio.open('B4.tif') as red, rasterio.open('B5.tif') as nir:
    red_band = red.read(1).astype('float32')
    nir_band = nir.read(1).astype('float32')

    # 计算 NDVI
    ndvi = (nir_band - red_band) / (nir_band + red_band + 1e-10)

    # 保存结果
    profile = red.profile
    profile.update(dtype=rasterio.float32)
    with rasterio.open('NDVI.tif', 'w', **profile) as dst:
        dst.write(ndvi, 1)

GDAL 处理技巧

# 坐标系转换(WGS84 转 UTM)gdalwarp -t_srs EPSG:32649 input.tif output_utm.tif

# 重采样到 100 米分辨率
gdalwarp -tr 100 100 input.tif resampled.tif

典型应用场景

土地利用分类

  1. 准备 7 个波段作为输入特征
  2. 添加 NDVI/NDWI 等指数波段
  3. 使用随机森林分类示例:
    from sklearn.ensemble import RandomForestClassifier
    
    # 将影像转为二维数组
    X = np.stack([b1, b2, b3, b4, b5, b7, ndvi], axis=-1).reshape(-1, 7)
    
    # 训练分类器
    clf = RandomForestClassifier(n_estimators=100)
    clf.fit(X_train, y_train)

变化检测流程

  1. 对 1985 和 2023 年数据分别计算 NDVI
  2. 使用阈值法检测变化区域:
    change_mask = np.where(np.abs(ndvi_2023 - ndvi_1985) > 0.2, 1, 0)

避坑指南

大文件处理技巧

  • 分块读取:使用 rasterio 的block_windows
  • 内存映射 :添加rasterio.open(..., sharing=False) 参数
  • 压缩存储:保存为 COG 格式

元数据常见问题

  • 缺失投影信息时,通过 gdal_edit.py -a_srs EPSG:4326 修复
  • 时间戳解析错误时检查 DATE_ACQUIRED 字段

扩展思考

结合 Sentinel- 2 数据可提升时空分辨率:
1. 空间融合:10 米分辨率补充细节
2. 时间插补:5 天重访周期填补 Landsat 空缺
3. 融合方法示例:

# 使用 STARFM 算法
from pystarfm import STARFM
fusion = STARFM(landsat_img, sentinel_img)

结语

经过完整流程实践后,建议:
1. 建立本地数据管理目录结构
2. 对长期序列数据使用 xarray 处理
3. 尝试在 Google Colab 上运行完整流程

处理遥感数据需要耐心,遇到问题时建议优先检查:波段顺序、空值处理、坐标系一致性这三个关键点。

正文完
 0
评论(没有评论)