e-sensing/sits

Satellite image time series in R

SITS – 面向地球观测数据立方体的卫星影像时序分析

是什么sits 是一个开源库(主要用 R 实现,附带一个名为 pysits 的轻量级 Python 包装器),可让您构建、探索和分类存储在 数据立方体 中的卫星影像时序数据。它可直接连接到越来越多的公共地球观测数据集(Sentinel-2、Landsat、MODIS 等),这些数据集托管在 AWS、Microsoft Planetary Computer、巴西数据立方体、Copernicus Data Space、Digital Earth Africa/Australia、瑞士数据立方体等云平台。

为何重要 – 现代遥感项目通常需要处理跨越数年的数千张影像。sits 自动化了以下繁琐步骤:

  1. 获取 – 从基于云的 STAC 目录中提取影像。
  2. 正则化 – 将不规则的数据集转换为统一的时空网格(使用 gdalcubes)。
  3. 提取 – 从训练数据中提取带标签的时序数据。
  4. 训练 – 训练多种机器学习和深度学习模型(SVM、随机森林、XGBoost、MLP、1-D ConvNets、ResNet、时序注意力编码器等)。
  5. 分类 – 对整个数据立方体进行分类,可选地通过 torch/luz 堆栈实现 GPU 加速。
  6. 后处理(贝叶斯平滑、不确定性估计、主动学习循环)。

所有这些功能都封装在符合 tidyverse 风格的 API 中,支持 tibblesf 对象和栅格文件,使工作流可复现且可脚本化。


主要特性(直接来自 README)

  • 多源数据立方体创建 – 从多个云提供商(AWS、MPC、BDC、CDSE、DEAFRICA、DEAUSTRALIA、SDC 等)整合 Sentinel-1、Sentinel-2、Landsat、MODIS 等数据。
  • 正则化 – 将不规则集合转换为用户定义空间分辨率和时间周期的规则立方体。
  • 样本提取与质量控制 – 从 CSV 或 shapefile 中提取点/多边形的时序数据;可选自组织映射(SOM)质量控制。
  • 广泛的 ML/DL 工具箱 – SVM、随机森林、XGBoost、MLP、TempCNN、ResNet、时序自注意力编码器、LightTAE。
  • GPU 支持 – 当 torch 检测到 CUDA 设备时,深度学习模型会自动在 GPU 上运行。
  • 时空分割 – 基于对象的时序数据分类。
  • 贝叶斯平滑与不确定性 – 对分类图进行后处理以去除异常值并提供置信度。
  • 主动学习与自监督学习 – 提供迭代改进模型的工具。
  • Python APIpysits 完全镜像 R 函数,Python 用户可获得功能完全对等。
  • 详尽文档 – 电子书《Earth Observation Data Cubes 上的卫星影像时序分析》和 pkgdown 网站。

典型使用流程

  1. 选择数据集(例如:Microsoft Planetary Computer 上的 Sentinel-2 L2A)。
  2. 使用 sits_cube() 定义立方体(瓦片、波段、日期)。
  3. 使用 sits_regularize() 将立方体正则化为固定 60m / 15 天网格。
  4. 从 CSV 或 shapefile 中获取训练样本,并通过 sits_get_data() 提取其时序数据。
  5. 训练模型,例如 rfor_model <- sits_train(samples, sits_rfor())
  6. 对单个序列(sits_classify())或整个立方体进行分类,生成概率栅格。
  7. 平滑结果(sits_smooth())并转换为标签地图(sits_label_classification())。
  8. 使用 plot() 或交互式 sits_view() 可视化。

安装方法

  • R(CRAN 稳定版):
    install.packages("sits", dependencies = TRUE)
    
  • 开发版(最新修复):
    devtools::install_github("e-sensing/sits", dependencies = TRUE)
    
  • Python 包装器(需要 R + arrow R 包):
    pip install pysits   # 需要 Python 3.10+
    
  • GPU 支持在 torch R 包检测到 CUDA 设备时自动启用。

生态系统与互操作性

  • 数据源 – STAC 兼容云目录(AWS、MPC、BDC、CDSE、DEAFRICA、DEAUSTRALIA、SDC 等)。
  • 底层库gdalcubes 用于立方体正则化,torch/luz 用于深度学习,sfstarsterratidyverse 用于数据处理,kohonen 用于 SOM 质量控制,RcppArmadillo 用于快速数值内核。
  • 输出 – 栅格文件(GeoTIFF)、概率立方体、不确定性层、交互式地图。
  • 社区 – rOpenSci 生态系统成员(同行评审徽章),稳定 CRAN 发布,GitHub Actions CI,代码覆盖率报告,贡献者行为准则。

成熟度与许可

  • 生命周期r-lib 生命周期徽章标记为 stable;积极维护(CI、代码覆盖率、近期发布)。rOpenSci 同行评审(问题 #596)。
  • 许可 – GPL-2(自由、开源、copyleft)。
  • 引用 – 主要论文:《Big Earth Observation Data 的卫星影像时序分析》(Remote Sensing 2021,DOI 10.3390/rs13132428)。

适合谁使用?

  • 遥感研究人员 – 需要用于土地覆盖、农业、森林砍伐或气候监测的可复现流程。
  • 数据科学家 – 希望将最先进的 ML/DL 应用于卫星时序数据,而无需编写低级栅格处理代码。
  • GIS 分析师 – 熟悉 R(或 Python)并需要从云存档中提取大型 EO 数据集并生成分类地图。
  • 学生与教育者 – 电子书和丰富示例使其成为 EO 时序分析教学的良好资源。

总结sits 是一个全栈式、开源的卫星影像时序分析工具箱,连接云地球观测数据、正则化数据立方体和现代机器学习模型,全部封装在用户友好的 R/Python API 中。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目