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 自动化了以下繁琐步骤:
- 获取 – 从基于云的 STAC 目录中提取影像。
- 正则化 – 将不规则的数据集转换为统一的时空网格(使用
gdalcubes)。 - 提取 – 从训练数据中提取带标签的时序数据。
- 训练 – 训练多种机器学习和深度学习模型(SVM、随机森林、XGBoost、MLP、1-D ConvNets、ResNet、时序注意力编码器等)。
- 分类 – 对整个数据立方体进行分类,可选地通过
torch/luz堆栈实现 GPU 加速。 - 后处理(贝叶斯平滑、不确定性估计、主动学习循环)。
所有这些功能都封装在符合 tidyverse 风格的 API 中,支持 tibble、sf 对象和栅格文件,使工作流可复现且可脚本化。
主要特性(直接来自 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 API –
pysits完全镜像 R 函数,Python 用户可获得功能完全对等。 - 详尽文档 – 电子书《Earth Observation Data Cubes 上的卫星影像时序分析》和 pkgdown 网站。
典型使用流程
- 选择数据集(例如:Microsoft Planetary Computer 上的 Sentinel-2 L2A)。
- 使用
sits_cube()定义立方体(瓦片、波段、日期)。 - 使用
sits_regularize()将立方体正则化为固定 60m / 15 天网格。 - 从 CSV 或 shapefile 中获取训练样本,并通过
sits_get_data()提取其时序数据。 - 训练模型,例如
rfor_model <- sits_train(samples, sits_rfor())。 - 对单个序列(
sits_classify())或整个立方体进行分类,生成概率栅格。 - 平滑结果(
sits_smooth())并转换为标签地图(sits_label_classification())。 - 使用
plot()或交互式sits_view()可视化。
安装方法
- R(CRAN 稳定版):
install.packages("sits", dependencies = TRUE) - 开发版(最新修复):
devtools::install_github("e-sensing/sits", dependencies = TRUE) - Python 包装器(需要 R +
arrowR 包):pip install pysits # 需要 Python 3.10+ - GPU 支持在
torchR 包检测到 CUDA 设备时自动启用。
生态系统与互操作性
- 数据源 – STAC 兼容云目录(AWS、MPC、BDC、CDSE、DEAFRICA、DEAUSTRALIA、SDC 等)。
- 底层库 –
gdalcubes用于立方体正则化,torch/luz用于深度学习,sf、stars、terra、tidyverse用于数据处理,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 中。
相关
- 项目
- 项目
- 项目
- 项目
- 项目