マリウポリの火災地点を衛星画像から検出する-オープンデータから見る市内の最新状況-
2022年2月24日以来のロシアによるウクライナ侵略の焦点となっている、ウクライナ南東部の港湾都市マリウポリ。外部から入ることができないマリウポリの状況を知るには、人工衛星の画像が頼りだ。画像の目視だけでなく、赤外線のデータから火災と見られる場所を検出するという手法で多面的に事態の推移をうかがい知ることができる。5月6日付の読売新聞に筆者が提供したマリウポリ市街の火災発生地点データの検出について、5月8日の最新の状況を反映した結果とその手法について公開する。
マリウポリ市街の火災推定地点の変化 2022年2月24日-5月8日
画像のデータは、欧州宇宙機関が開発・運用する光学地球観測衛星「Sentinel-2(センチネル2)」のデータに含まれる赤外線の波長から、地上で火災が起きていると見られる場所を検出したものだ。衛星からの火災検出は、もともと森林火災のモニタリングのために開発された手法で、市街地への応用はあまり例がない。地上で検証することができないため誤検出の可能性も含んでいるものの、現地の情報が少ない現在は条件付きで利用できると考える。火災と見られる地点もあくまで推定だが、ここでは「火災地点」と呼ぶ。
マリウポリでは、2月24日からこれまで74日間で利用できた観測画像は2月27日、3月9日、3月14日、3月19日、3月24日、3月29日、4月3日、4月8日、5月3日、5月8日の10日間と実質的に7~8日に1回の頻度となった。検出された火災地点は累計で208カ所(うち12カ所ほどは誤検出の可能性がある)で、時系列で変化をみると2月末から港に近いアゾフスタリ製鉄所に向かって東西と北側から輪が小さくなるように火災地点が移動していく様子がうかがえる。火災件数は衛星で観測した昼ごろの状況を反映するもので1日の全体の件数ではないこと、また衛星画像から火災の原因は判別できないため、事故による火災の可能性も排除できず、全てが攻撃を反映しているとはいえないといった事情はあるものの「火災の輪」の移動は傾向としていえるだろう。
雲の少ないよく晴れた日は市街全体を観測でき、火災の検出件数は多くなる。3月14日、3月19日、3月24日、3月29日の4日間が晴天の日にあたるが、3月24日は52件と突出して件数が多く、他の3日は30件前後で推移している。
新しい画像データは5月3日、5月8日の昼ごろ撮影されたもので、3月とは異なり火災検出数は減ってきている。アゾフスタリ製鉄所では3カ所ほどの火災が検出され、ロシア軍が攻撃を再開したと伝えられる状況とも一致する。
データソースと火災検出の手法
Sentinel-2衛星を使用する理由
欧州は衛星地球観測プログラム「コペルニクス」の元で光学衛星Sentinel-2を始めとする地球観測衛星のデータを広く公開しており、無償で入手し解析が可能になっている。森林火災のモニタリングは衛星データ利用の一般的なアプリケーションで、さまざまなツールや手法が公開されている。
Sentinel-2衛星データからの火災検出には、「短波赤外(SWIR)」と呼ばれる波長から地上にある高温の熱源を検出する手法を使う。同じSWIRを用いた森林火災のモニタリング情報がNASAのサイト「FIRMS」で公開されている。FIRMSは世界の地球上のほとんどの場所で毎日火災モニタリングが可能という大きな利点があるが、森林火災という規模の大きな火災を対象にしているため市街地での利用には課題もある。
FIRMSは主に米国の気象衛星「Suomi-NPP」と「NOAA-20」が持つ短波赤外センサー「VIIRS」のデータを使用している。VIIRSは観測幅3000キロメートルと広範囲を一度に観測することができ、1日2回の高頻度観測が可能だが、解像度は375メートルと低い。地球上をくまなく見るという点では非常に有益だが、市街地で起きた規模の小さな火災を検出するには、火災地点を絞り込むことが難しいのだ。
Sentinel-2はSWIRの波長を2つのバンドで観測することができ、解像度は20メートルとVIIRSに比べて高精細だ。火災の範囲を400平方メートルまで絞り込むことができ、100坪以上の一戸建て住宅が並ぶマリウポリの市街では理論上、家1軒単位で火災地点を調べることができる。誤検出を減らし、衛星データによる推定と実際に起きているできごととのギャップを縮めるためには、「見つかった火災はどのような場所で起きているのか」までさまざまな地図上の情報と突き合わせて検証する作業が必要になる。高解像度であればこの作業がしやすくなる。
観測頻度と火災検出
Sentinel-2は2014年からこれまで同型の4機の衛星が打ち上げられ、交互に観測することでほぼ5日おきに衛星画像を無償公開している。画像はWebプラットフォーム「Sentinel Hub-EO Browser」(以下EOブラウザ)で公開され、簡易解析や位置情報を含むデータのダウンロードが可能だ。ただし、光学衛星は雲に遮られた日には地上の様子を知ることができず、雲に覆われた割合(被雲率)が高い日の画像は解析できない。衛星が観測する現地時刻は一定で、Sentinel-2は現地時刻で午前11時40分ごろ(夏時間となる3月27日以降は午前10時40分ごろ)となっている。
EOブラウザでは衛星画像を衛星の種類と地域、日付で検索することができる。地図でマリウポリを検索、表示しておき、衛星(Sentinel-2)を指定して検索する日付の範囲を指定する。検索候補からマリウポリ全域を観測した画像を選択すると、画面いっぱいに観測画像が表示される。
光学衛星の画像は写真と同じ「トゥルーカラー」で見ることができる。ただし、ここから目視で火災を探すことはかなり困難だ。よほど火災の範囲が大きい、または黒煙を大きく吹き上げているような場合であればともかく、244平方キロメートルもあるマリウポリ全域の衛星画像から、ともすれば地面の色と同化している火災を見つけることは難しい。
そのため、波長別の簡易解析を利用する。SWIRの波長はB11、B12のバンドに割り当てられており、2つの波長から火災を検出するスクリプト「Active Fire Detection」がSentinel Hubユーザーのための利用情報サイトで公開されている。EOブラウザでスクリプトを適用すると、火災と検出されたピクセルは赤く、雲や煙がかかっていて解析できない部分は青く(雲マスク)表示される。
今回、衛星リモートセンシングの専門家である東京大学大学院工学系研究科 電気系工学専攻の夏秋嶺准教授にアドバイスをいただいている。「広く公開されているスクリプトを使うことで、検証可能という点でも大変良い方法だと思います。屋根の色なども紛らわしいので火災検知に特化したスクリプトのほうが良さそうです。雲が青くなっている点も、すべての火災を検知しているわけではないという理解につながり、よいと思います」と、Sentinel-2向けに公開された火災検出スクリプトを使用するという点で一定の可能性がありそうだ。
マリウポリでの火災検出を始める前に、試験的に市街地での火災にスクリプトを適用してみたのが下記の画像だ。3月29日に、マリウポリの北側ドネツクの郊外で撮影されたSentinel-2の画像では、目視でもはっきりわかるほどの煙が立ち上っている。画像から火災であることが強く推定され、この部分で火災検出スクリプトが機能したことから、マリウポリでの利用に踏み切った。
火災地点のマッピング
ある程度は火災検出が有効と見られることから、観測されたマリウポリの画像に火災検出スクリプトを適用してみたところ、郊外から市街中心部まで市の全域で火災が検出された。市街地で激しい戦闘が行われていることが推定されるものの、画像から解釈可能なデータを作るには火災はどこで起きているのか位置を記録していく必要がある。
Sentinel-2の画像は最高でも解像度は10メートルで市街地の入り組んだ建物を識別することは難しい。EOブラウザは画像を出力する機能を持っており、火災検出の画像を地図と重ね合わせることが可能だ。そこで画像をkmz(JPEG画像と位置情報のパッケージ)形式で出力し、Google Earthでオーバーレイ表示して火災検出地点に目印をつけてマッピングしていった。
Google Earthのベースとなっている衛星画像は、衛星画像でウクライナやロシアの状況を提供している米国の衛星オペレーター「Maxar」の地球観測衛星WorldView-3や、エアバスの地球観測衛星Pleiadesなど、世界でもトップクラスの高解像度の地球観測衛星の画像だ。位置さえ照合できれば、Google Earthを使ってロシア侵攻前の高精細な衛星画像と地図情報から火災地点にもともと何があったのか、可燃物や攻撃目標とみられる政府施設や軍事施設の有無などの手がかりが得られる。これを観測日のデータで繰り返し、10日分の火災地点マップを作成したものが先に示した検出結果だ。
検出精度と誤検出
衛星データからの火災検出は万能ではなく、誤検出の可能性が避けられない。誤検出には、火災が生じているにもかかわらず衛星データでは検出できない見逃しエラー(omission error:OE)と、火災ではない部分を火災と認識してしまう見つけすぎエラー(commission error:CE)の2種類がある。このうち、見逃しエラーの場合は衛星のデータだけでは低減することができず、実際に火災が発生したという地上の情報との照合が必要だ。マリウポリの状況ではこの情報が入手困難であることから、今回はこの種のエラーの調整は今後の課題として見送った。
一方で、火災件数を過大に見積もってしまうおそれのある見つけすぎエラーには、入手できる限りの他の情報との照合を行った。赤外線による衛星での火災検出では、通常であれば地表からの太陽光の反射を観測しているSWIRセンサーに火災の熱による赤外線の放射が入ってきた場合に生じる輝度値の上昇を利用している。ただし、表面が鏡のように光を反射しやすい物体が地表にある場合、太陽光の反射が大きくなることから、画像中のそうしたピクセルを火災と誤認識する可能性が出てくる。
見つけすぎエラーの判定には、Sentinel-2のRGB画像とGoogle Earthの過去の衛星画像を用いた。Sentinel-2の画像で火災の傍証となる煙が認められれば、検出された火災が実際に起きている可能性が高くなる。そしてGoogle Earthの高精細な衛星画像からは、火災が起きうる物体がその地点にあるのか、という点を確認することができる。3月14日の画像では、マリウポリ西側の海岸沿いにある野鳥の保護区付近で海面に火災と判定されたピクセルが生じた。Sentinel-2画像ではその場所に船舶などの係留は見つからず、可燃物が存在するとは考えにくいことから誤検出の可能性が高いと考えている。このように、Sentinel-2のRGB画像、SWIR火災検出画像、Google Earth衛星画像を何度も見返して火災地点を確認する作業が必要だ。
さらに、火災が必ずしもロシア軍の攻撃を反映していない可能性も認識しておく必要がある。夏秋准教授は、「火災の原因は何個か考えられます。車両(軍民問わず)などが燃えている、耕作地などでは野火が発生している(別の年でも春先に河川敷で何かが燃えているのが見えます)、ロケット砲などの発射の瞬間が見えている(両軍のロケット砲は十数発を連続して発射するため、観測の時間帯によってはロケットの火炎や、発射の際に燃え移った枯草が起こした火事の可能性があります)。また、家屋などの木造部分が火災として認識される一方、コンクリートの建物の内部のような、上からは火炎が見えないところでは、火災が見落とされている可能性があります」と指摘する。衛星画像の「解釈」を事実に近づけて推定の精度を上げていくには、衛星画像と地図のほかに関係者の証言を集めた報道や米英の政府機関が発表する戦況レポートなど、さまざまな情報を積み上げて時系列に整理し、矛盾を洗い出す必要がある。時間のかかる作業だが、今回作成した衛星からの火災検出はその「ベースマップ」だと考えている。
終わりに
衛星画像でマリウポリ市街の火災検出を始めたのは、包囲され外部から立ち入ることができない街の状況の手がかりを少しでも増やし、面的な情報を構築できないかと考えたからだ。マッピングに取り組んでいた4月半ばごろ、火災地点となった場所に想像以上に住宅街が多く、強い違和感をおぼえた。
戦闘の中心となった河口のアゾフスタリ製鉄所や市庁舎の付近など、戦時には攻撃目標となるであろう場所も確かに含まれてはいる。ただ、一戸建ての住宅が立ち並ぶ、のどかな住宅街やスポーツ施設で多数の火災が検出された。付近にあるのは学校や病院といった民間施設だ。マリウポリの中心街に続く幹線道路に近かったから、建物が大きく目立つから、そんな理由でマリウポリの街並みは破壊され燃やされたのだろうかという疑問が尽きない。方法論は荒削りで誤検出の可能性もあることは承知の上で、手法の洗練を図りつつデータを積み重ねていくほか疑問の答えは得られないと考えている。