宙畑 Sorabatake

衛星データ

宇宙から海洋や河川のゴミは見えるのか!?NASA主催のハッカソンでの取り組み紹介

NASA主催のアイデアソンが今年も開催!その中の1チームの事例を紹介します!

2021年10月2日から3日にかけてNASAが主催するSpace Apps Challengeが今年も開催されました。COVID-19によるパンデミックを鑑み2年連続でオンライン開催となりました。この記事は豊橋会場にてDream Clean Streamチーム(ソーシャルグッド賞受賞)として参加した筆者の体験を基に、衛星データを用いて海洋や河川のゴミが見つけられるのかという試みについて紹介いたします。

プロジェクト概要
プロジェクト名:Dream Clean Stream
プロジェクトページ:Space Apps Challenge内 https://2021.spaceappschallenge.org/challenges/statements/leveraging-aiml-for-plastic-marine-debris/teams/dream-clean-stream/project
プラットフォーム:Google Earth Engine [1], Google Colaboratory
衛星データ:Sentinel-2 MSI: MultiSpectral Instrument, Level-2A [2]
サンプルコード:[Google Earth Engine] 熱海の土砂崩れ現場https://code.earthengine.google.com/999ffc40917021875df1bf9cf6cd2561

自己紹介とお断り
筆者はSpace Apps Challengeの日本会場運営の互助組織であるSpaceApps Japanにて翻訳及びデータメンターとして活動してきましたが、衛星データ(今回は加えて海洋デブリ)についてのプロというわけではありません(太陽・太陽圏物理学とプログラミング教育を生業にしている者です)。枝葉末節において誤解に基づく記述があるかもしれません。 ご容赦ください。

1.宇宙から海洋デブリを見つけろ!

海鳥や海獣に絡まる釣り糸、ウミガメの胃から出てきたプラスチック袋、人の目には見えないマイクロプラスチックなど心を痛める海のゴミ(海洋デブリ)の話は、悲しいことに数えきれないほどあります。では、その海洋デブリの発生源はどこなのでしょうか?海上や海岸での人為的な投棄は発生源のひとつです。しかし人間は海岸だけに住んでいるわけではありません。内陸で行われたゴミの投棄はやがて河川によって運ばれ海洋デブリの一群に合流します。海洋デブリの約20%が河川を経由したものだという試算[3]がある一方、河床にまぎれ運ばれるものは正しく試算することが難しいという指摘[4]もあります。

今回、我々Dream Clean Streamは、この海洋デブリの検出と量的評価を行えという課題「LEVERAGING AI/ML FOR PLASTIC MARINE DEBRIS」(豊橋会場訳:海洋プラゴミに対するAI/機械学習の活用)に取り組みました。チームメンバーが2人とも内陸住まいでしたので、海だけだと難しく、河川も含めたデブリ検出を試みました。

2.衛星データ:多色よりも1指標、1指標よりも多指標で

図1:自然界の波長と衛星で見えるもの Credit : JAXA

我々の目や衛星のカメラは、電磁波を捉えることで物を知覚します。電磁波はその波長帯によって大まかに電波、赤外線、可視光、紫外線、X線、γ線に分けられます。我々は目で電磁波の波長の違いを色として認識しますが、それは可視光という非常に狭い波長帯域の中での事です。物理学者や衛星データ解析者達は便宜的に色という言葉を可視光を超えた範囲でも使用します。この様々な色の組み合わせによって物質や現象の特徴をより分かりやすく1つの値としたものが指標です[5]。

今回は、先行研究[6]を参考に、Sentinel-2のデータを基に以下の3指標による海洋デブリ検出精度の比較を行いました。
1.Floating Debris Index (FDI)
2.Plastic Index (PI)
3.Normalized Difference Vegetation Index (NDVI)
各指標の計算式は以下となります。

NIRは近赤外線(SentinelのB8バンド)、RE2は赤色の長波長側(同B6バンド)、SWIR1は短波赤外線(同B11バンド)です。3指標とも赤色と赤外線の組み合わせから算出されます。

FDIとPIはプラスチックゴミに感度があると提案されている指標、NDVIは植物の活性度を示す指標です。3指数とも可視光の赤から赤外線の複数の波長帯の観測量を組み合わせたものです[7]。プラスチックゴミと一見関係なさそうなNDVIを指標としたのは、藻などの自然な浮遊物と海洋デブリを見分けるためです。

今回は赤をPI、青をFDI、緑をNDVIにそれぞれ割り当てることで、PIとFDIでは高い値を取り、かつNDVIでは低い値を取る、つまり赤と青が強く見える(=紫色になる場所)場所=海洋デブリがある場所、と仮説を立てて可視化に挑みます。

この3指標をただ眺めるだけでは元々ゴミ以外の何らかの理由で元々高い値をとっていた高い場所をデブリか流れ藻がある場所と誤解してしまうかもしれません。ですので、NDVIと見比べる以外にも、調査対象期間と異なる年を基準として、その基準からの変化の割合を求めました。

この3指数の変化をRGBの各チャンネルで表示することで、ゴミがありそうな場所を直感的に判断出来るようにしました。

3.ゴミじゃないものは見えた

手法に目途が立ったところで、実際に衛星画像でみてみましょう。最初はゴミではないと思われるものから始めます。JAXAのしきさい衛星による観測結果[8]にて流れ藻があると指摘される領域の近辺で、この3指標の解析結果を可視光と共に可視化してみました。

図2:九州沖の流れ藻。上段左:2018年4月18日から4月21日の可視光中央値(True Color)、上段右:2018年4月18日から4月21日の3指標の2019年同期間からの変化、下段:3指標それぞれ単独で表示 Source : https://code.earthengine.google.com/af6794541999ded1226aab6e07c1dc21

図2でNDVIが局所的に高い緑色の領域は流れ藻だと推測されます。緑に混じり赤い部分が点在しますが、そこはPIのみが高くなっている場所です。この流れ藻の領域は所謂「潮目」にあり、可視光(図2上段左)で濃い青の領域と合致します。このような潮目は流れ藻だけでなく海洋ゴミも集積しやすいと言われていますが、この図からはFDIが局所的に高い領域は見当たりません。

ゴミではなさそうなケースをもう一か所紹介します。松江市島根町加賀の海岸です。海上保安庁が公開している海洋状況表示システム「海しる」にて、海岸清掃時のゴミの量のデータ(環境省H25年)を確認した際に、たまたまカーソルが向かったゴミが比較的多かった地域です。先ほどと同様に可視光と3指標の変化で見てみました。

図3:松江市島根町加賀の海岸。図2と同様に、上段左:2021年7月1日から8月31日、上段右:2021年7月1日から8月31日と2020年の同期間、下段:同。 Source : https://code.earthengine.google.com/e1826123020eb0166d4be84ffa1a5cee

図3の黄色の破線は防波堤、矢印の先はPI(赤)が目立つ領域を指しています。PIが目立つ領域は可視光では白く映っています。湾の防波堤の内側なので、ゴミがたまりそうだと思ったのですが、可視光でこれほど白っぽいという事は砂地という可能性もあります。実際、衛星データとの大きさの比較は出来ていませんが、Googleストリートビューで小さな砂浜があることが確認できています。単純に新たな砂地に反応したのか、それともその砂浜が特にプラスチックゴミを多く含んでいるのかは実地調査が必要なところです。ただ、様々な所をこの手法で眺めたところ、新たな砂地に反応してそうな感想を持っています。

4.ゴミが見つけられそう!でも、現場に行かなきゃ分からない

メンターの石坂 丞二教授(名古屋大学 宇宙地球環境研究所 海洋学研究室)に大雨などでデブリが多く流された後の衛星データを見ると海洋デブリ検出には良いとアドバイスを頂きました。最近の大雨で該当しそうな事案として思い出したのが2021年7月3日に発生した熱海の土石流でした。

図4:熱海の土石流跡。図2と同様に、上段左:2021年7月3日から同年8月31日、上段右:上段左内の四角部分の拡大、2021年7月3日から同年8月31日を2020年の同期間、下段:同 [9]。 Source : https://code.earthengine.google.com/f174e2012d8d57730a28d5fae595b306

土石流の流れた先に防波堤(黄破線)があり、その先に青い領域が広がっていることが認められます(矢印先)。土砂崩れ直後の空撮写真を確認したところ、土石流の濁った水と外海の水との切れ目あたりだと分かりました。問題はこれが本当にプラスチックゴミなのかということです。

本当は衛星データと同時間に現地でサンプル調査をすべきです。しかしメンバーは熱海近辺どころか海すら遠い内陸住まいでした。そこで海は諦め河川で同様の事が出来ないか挑戦してみました。

筆者がアクセス可能な範囲でそれらしい変化の見えた場所として京都の嵐山を流れる桂川に注目しました。

図6:京都嵐山の桂川。上段左:2021年10月3日正午頃に矢印の先あたりから見た桂川(筆者撮影)、以下図2と同様に、上段中:2021年7月1日から8月31日、上段右:2021年7月1日から8月31日と2020年の同期間、下段:同。 Source : https://code.earthengine.google.com/ced9745b8d20bf62e35b3f75ae4dee2e

図6の3指標を確認すると、葛野大堰より上流(左側)で紫色が目立つ領域があります(図内の矢印の先)。紫ということはPlastic IndexとFloating Debris Indexが共に前年よりも上がっているということです。先の加賀の例で砂地だろうと推測したシグナルと似たところもあります。衛星データの日付からは2か月ほど経ってはしまいましたが、Space Apps Challenge期間にその場所に行きました(図6上段左)。このあたりは保津川の船着き場かつ手漕ぎの貸ボートが行き交う場所です。緊急事態宣言明けだったからか、観光地らしくゴミ1つ見当たらない水面で、特に新たな砂地が出現した様子もありませんでした。

全体を通して、Plastic Indexは新たな砂地に感度を持っている可能性があり、Floating Debris Indexの方が信頼できそうな手ごたえを得ました。しかしこれらを実証していくには、圧倒的に実地データが足りませんでした。日本の河川にゴミが溢れていればもう少し検証がしやすかったかもしれません。河川が綺麗な事はもちろん良い事なのですが、この様な研究では正解情報を得るのに少し難儀する環境です。熱海のケースの様に災害発生時の調査は難しいでしょうが、衛星が回ってくる晴れのタイミングで実際に海上のゴミのサンプル調査が出来れば、研究がより進められるだろうと思います。衛星データの拡充も大切ですが、同様に地上でのその場観測も重要だと実感したオンラインイベントでした。

謝辞
当プロジェクトの発展の場となった Space Apps Challenge 2021 Toyohashi の素晴らしい運営に携われた皆さま、 特にメンターの石坂 丞二教授(名古屋大学 宇宙地球環境研究所 海洋学研究室)と牟田梓様(さくらインターネット)にこの場をお借りしまして御礼申し上げます。

参考資料および脚注

[1] N. Gorelick, et al. (2017). Google Earth Engine: Planetary-scale geospatial analysis for everyone. Remote Sensing of Environment. https://earthengine.google.com/
[2] Sentinel-2 MSI: MultiSpectral Instrument, Level-2A, Google Earth Engine Data Catalog https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_SR
[3] コペルニクス計画 EU https://marine.copernicus.eu/services/plastic-pollution/sources-marine-plastic-pollution
[4] 国連環境計画 https://wedocs.unep.org/handle/20.500.11822/7720
[5] 詳しく知りたい方は過去の宙畑記事「課題に応じて変幻自在? 衛星データをブレンドして見えるモノ・コト #マンガでわかる衛星データ」(https://sorabatake.jp/5192/)をご覧下さい。
[6] S. Sannigrahi, et al. (2021) Detection of marine floating plastic using Sentinel-2 imagery and machine learning models, arXiv
[7] 一例としてGoogle Earth EngineでNDVIを計算するには、以下の様な関数を組み、`ee.ImageCollection.map(calcNDVI)`で適用します。選択した期間に複数の観測が存在する可能性がありますので、必ず`ImageCollection`の状態で指標を計算し、それから`median()`などで時間方向を縮退します。そうしなければ波長帯により異なる時間の観測を使用する可能性があります。

# Google Earth Engine Code (JavaScript)
function calcNDVI(image) {
  return (image.select('B8').subtract(image.select('B4')))
          .divide(image.select('B8').add(image.select('B4')))
          .rename('NDVI')
          .copyProperties(image,['system:time_start']);
}

[8] https://www.spf.org/opri/newsletter/447_1.html?latest=1
[9] Google Earth Engineで画像を取得する事にかなり難儀しました。`ee.Image.getThumbURL({params})`メソッドを使うのですが、`params`内で`’scale’:5`などとして1ピクセル当たりの長さ(m)を規定しておかないと極小の画像が出力されてしまいます。

宙畑関連記事