e-sensing/sits

Satellite image time series in R

SITS – 地球観測データキューブにおける衛星画像時系列解析

何であるかsits は、主に R で実装され、pysits と呼ばれる軽量な Python ラッパーを持つオープンソースライブラリです。このライブラリは、データキューブ に格納された衛星画像時系列データを構築・探索・分類できるようにします。AWS、Microsoft Planetary Computer、ブラジルデータキューブ、Copernicus Data Space、Digital Earth Africa/Australia、スイスデータキューブなど、クラウドプラットフォーム上にホストされている多数の公開地球観測データセット(Sentinel-2、Landsat、MODIS など)に直接接続可能です。

なぜ重要か – 現代のリモートセンシングプロジェクトでは、数年間にわたる数千枚の画像を扱うことがよくあります。sits は以下の面倒な手順を自動化します:

  1. 取得 – クラウドベースの STAC カタログから画像を取得。
  2. 正規化 – 不規則なデータセットを均一な空間時系列グリッドに変換(gdalcubes を使用)。
  3. 抽出 – 学習用データとしてラベル付き時系列を抽出。
  4. 学習 – SVM、ランダムフォレスト、XGBoost、MLP、1-D ConvNets、ResNet、時系列アテンションエンコーダーなど、多様な機械学習・深層学習モデルを訓練。
  5. 分類 – データキューブ全体を分類可能。torch/luz スタックを用いて GPU 加速もサポート。
  6. 後処理 – ベイズ平滑化、不確実性推定、アクティブラーニングループ。

すべての機能は、tibblesf オブジェクト、ラスターファイルと連携する tidyverse 風の API で統合されており、ワークフローを再現可能かつスクリプト化可能にします。


主な機能(README から直接引用)

  • 複数ソースのデータキューブ作成 – AWS、MPC、BDC、CDSE、DEAFRICA、DEAUSTRALIA、SDC など、多数のクラウドプロバイダーからの Sentinel-1、Sentinel-2、Landsat、MODIS などを統合。
  • 正規化 – 不規則なコレクションをユーザー定義の空間解像度と時間間隔(例:60m / 15日)の規則的なキューブに変換。
  • サンプル抽出と品質管理 – CSV や shapefile からポイント/ポリゴンの時系列を抽出;オプションで自己組織化マップ(SOM)による品質管理。
  • 広範な ML/DLツールボックス – SVM、ランダムフォレスト、XGBoost、MLP、TempCNN、ResNet、時系列自己アテンションエンコーダー、LightTAE。
  • GPUサポートtorch が CUDA 対応デバイスを検出すると、深層学習モデルが自動的に GPU で実行。
  • 空間時系列セグメンテーション – 時系列データのオブジェクトベース分類。
  • ベイズ平滑化と不確実性 – 分類マップの外れ値を除去し、信頼度を提供する後処理。
  • アクティブラーニングと自己教師学習 – モデルの改善を反復的に支援するツール。
  • Python APIpysits は R 関数を完全に再現しており、Python ユーザーも機能の完全な同等性を享受。
  • 豊富なドキュメントSatellite Image Time Series Analysis on 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、SOM QC に kohonen、高速数値計算に RcppArmadillo
  • 出力形式 – ラスタファイル(GeoTIFF)、確率キューブ、不確実性レイヤー、インタラクティブマップ。
  • コミュニティ – rOpenSci エコシステムの一環(Peer-reviewed バッジ)、CRAN 安定リリース、GitHub Actions による CI、コードカバレッジレポート、貢献者行動規範あり。

成熟度とライセンス

  • ライフサイクルr-lib ライフサイクルバッジで stable とマーク。CI、コードカバレッジ、最新リリースを維持中。rOpenSci による Peer-review(issue #596)。
  • ライセンス – GPL-2(自由、オープンソース、コピーレフト)。
  • 引用 – 主要論文:Satellite Image Time Series Analysis for Big Earth Observation Data(Remote Sensing 2021, DOI 10.3390/rs13132428)。

どのユーザーに適しているか?

  • リモートセンシング研究者 – 土地被覆、農業、森林伐採、気候モニタリングのための再現可能なパイプラインが必要な方。
  • データサイエンティスト – 低レベルのラスタ処理コードを書かずに、最先端の ML/DL を衛星時系列に適用したい方。
  • GISアナリスト – R(または Python)に慣れているが、クラウドアーカイブから大規模な EO データを取得し、分類マップを作成したい方。
  • 学生・教育者 – 電子書籍と豊富な例題により、EO 時系列解析の教育リソースとして最適。

結論sits は、クラウド上の地球観測データ、正規化されたデータキューブ、現代の機械学習モデルを統合したフルスタックのオープンソースツールボックスであり、使いやすい R/Python API で提供されています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト