e-sensing/sits
Satellite image time series in R
SITS – 面向地球觀測資料立方體的衛星影像時序分析
是什麼 – sits 是一個開源程式庫(主要以 R 實作,並附帶輕量級 Python 包裝器 pysits),可讓您建構、探索與分類儲存在 資料立方體 中的衛星影像時序資料。它可直接連接至越來越多的公開地球觀測資料集(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 中。
相關
- 專案
- 專案
- 專案
- 專案
- 專案