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 は以下の面倒な手順を自動化します:
- 取得 – クラウドベースの STAC カタログから画像を取得。
- 正規化 – 不規則なデータセットを均一な空間時系列グリッドに変換(
gdalcubesを使用)。 - 抽出 – 学習用データとしてラベル付き時系列を抽出。
- 学習 – SVM、ランダムフォレスト、XGBoost、MLP、1-D ConvNets、ResNet、時系列アテンションエンコーダーなど、多様な機械学習・深層学習モデルを訓練。
- 分類 – データキューブ全体を分類可能。
torch/luzスタックを用いて GPU 加速もサポート。 - 後処理 – ベイズ平滑化、不確実性推定、アクティブラーニングループ。
すべての機能は、tibble、sf オブジェクト、ラスターファイルと連携する 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 API –
pysitsは R 関数を完全に再現しており、Python ユーザーも機能の完全な同等性を享受。 - 豊富なドキュメント – Satellite Image Time Series Analysis on 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、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 で提供されています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト