見出し画像

人工衛星データでウクライナ侵攻状況を推定する方法

この一連の記事では、人工衛星データを使ってウクライナ侵攻の状況を推定する2種類の方法をとりあげます。

最終的には、以下の画像のように、ウクライナで火災が起きていると思われる地点を地図上に赤く表示します。

Contains modified Copernicus Sentinel Data [2022]
  • EO Browserを使う方法
    土地や日付を切り替えて見て回りたいとき向けです。

  • Google Earth Engineを使う方法
    Pythonのライブラリを使って衛星データ解析したいとき向けです。

人工衛星データのいいところ


人工衛星データの分析は、離れた地の情報を自力で得られる数少ない手段です。

ウクライナ侵攻関連の報道には、疑わしいものもあるかもしれません。映像の加工技術が発達した現代ではなおさらです。そんなときに、自分で裏を取れることは重要です。しかし、ウクライナのような離れた地の情報を自分で得るのは難しい側面があります。

そこで、人工衛星のデータ(以下、衛星データ)を利用すれば、遠くの地の状況を推定できるかもしれません。

無料の衛星データを利用する

解像度がcm級のデータを使えば、車や家も認識できるので、戦況の詳細な分析に役立ちます。
ただし、高額です。例えば、Maxar TechnologiesのWorldView-4という衛星による解像度30 cmのデータの最低購入価格は562.5米ドルです。

個人で利用するには高すぎるので、ここでは無料で入手可能な衛星データからできることを考えます。今回は、Sentinel-2という衛星のデータを扱います。以下のような特徴があります。

  • データが無料

  • 解像度が10 ~ 60 mで無料の中では高い

  • 同一地点のデータを5日周期で観測できる(無料の中では頻度が高い)

Sentinel-2のデータを使うと、例えば、ウクライナがロシア軍の侵攻を遅らせるために橋を落としたという報道もありましたが、その様子も観察できます。

一連の記事では、以下の2点を説明します。

  1. 上のツイートのようにSentinel-2の光学画像(RGB画像)でウクライナの様子を観察する方法

  2. 赤外領域データを使って光学画像からは観察できないような火災を検出する方法

衛星データの観察と火災推定

具体的な手順については、JavaScript編Python編それぞれの記事をご覧ください。
ここでは火災推定のロジックについて軽く説明します。

火災推定のロジック

火災推定ロジックの実装は以下のHuらの論文を参考にしました。

Huらの報告を乱暴に参考にすると、以下の条件が揃った際に「火災である」と判定すると精度の高い火災推定をしやすいようです。

  • Sentinel-2の短波長赤外(SWIR2, Short-wave Infrared 2)の輝度が赤(Red)の輝度に対して十分大きい

  • 短波長赤外そのものの輝度もある程度大きい

今回は SWIR2 / Red > 2 かつ SWIR > 0.5 を火災と推定することにしました。
(この数字は適当です。HuらはSWIR2-RedでOLS回帰を行い、SWIR2側に標準偏差の3倍を加えて境界線としています。他にも土壌の種類ごとに様々な判断基準が議論されています。)

SWIR2の波長は2190 nmで、高温の物質はこの帯域でも高い放射輝度を示すので、この輝度が大きいところで火災が起きていると推定できます。例えば、Huらの論文のFig. 3によると、1000 Kの炎の放射輝度はSWIR2付近で最大になります。

SWIR2のRedに対するOLS回帰を行う理由は、Redの火災に対する感度が低いからのようです。このアイディアは、Landsat-8を使った火災検知アルゴリズム「GOLI」を提案したKumarらの論文でも説明されています。

火災推定の限界

衛星データからの火災推定と侵攻状況の推定にはまだまだ課題があります。

  1. そもそも精度がそんなに高くない
    Huらの報告でも、偽陽性・偽陰性ともに数10%オーダーで残っています。(そもそも正解データの確実性にも疑義があります。)今回の火災推定ロジックはいろいろなことを無視しているので、精度はもっと低いと思います。

  2. 仮に火災だったとしても爆撃によるものかどうかは分からない

  3. 正常な活動の影響を受ける
    例えば、下の画像は2022年1月8日のマリウポリで、侵攻前ですが、港の近くなどの赤い点では火災が起きていると判定されています。他の日付でもこの地点は繰り返し火災判定されます。どうやらこの辺りには冶金・製鉄系の大きな工場があるようで、高温の物質を扱っていると火災との見分けが難しいようです。(2022/10 追記:この地域は後にアゾフスタリ製鉄所の名前で報道されるようになりました)

Mariupol, Jan. 8, 2022

また、Sentinel-2の特徴に関連する難しい点もあります:

  • SWIR2の解像度が20 mなので、それより小規模な火災の検出は難しい。

  • 5日間の観測周期の間に起きて終わったことは原則観測できない。

  • 天候に左右される。雲が重なると見えない。

合成開口レーダーなど雲の影響を受けにくいデータを使ったり、火災が起きた後の特徴を抽出したりといった対策も考えられますが、解像度や周期の問題を解決するのは難しそうです。

ありえる使い方

「ある場所が砲撃されて燃え続けている」という報道に対して、この衛星データからも火災だと推定されれば、その報道内容は信用しやすいといえそうです。

以上です。衛星データを使ったファクトチェックを行うきっかけや、発展的な解析による詳細な状況の推定の足掛かりになれば幸いです。

この記事が気に入ったらサポートをしてみませんか?