Computer Vision

Python, Computer Vision, AI, Transhumanism 関連

【空から】森林伐採はいつ?を調べてみた

今回はこのニュースから。

 

【独自】山の所有者激怒「間伐」のはずが…ヒノキ6000本“勝手に”伐採 災害リスクも
https://news.tv-asahi.co.jp/news_society/articles/000257322.html

 

間伐を依頼したつもりだったのが、どういうわけか意図しない形状の伐採が行われたという話。

 

まあ、もし散髪で暑いからちょっと髪、スイておきますねと言われて、トラ刈りにされたら、まあ怒ると思うので、所有者の気持ちはわかる。


とはいえ、どんな経緯で、いつから、そうなったのかもきになる所。
経緯については不明だが、衛星画像でみると、いつごろからそうなったかはすぐわかる。

 

sentinelshare.page.link

 

いつものように sentinel-hub で検索。

オクシズというのは初めて知ったが、場所はこの辺りらしい。

 

2021/05/12

 

遡るところ2021年の5月までいくと、この時点ではまだ目立った伐採は行われていないようである。

左上に茶色い部分が結構あるが、その辺は落葉樹なのだろう。

 

尚、標準のカラー画像(通常の色に近い雰囲気に調整されている画像)だと把握しにくいが、NDVIを選ぶと、植物の状態が一気にわかりやすくなる。

右側の緑色の画像がNDVI 用の画像である。

 

これが、2021年8月の画像に行くと、突如恐竜の化石みたいな模様が出現。

左のカラー画像でいうと、中央に茶色い部分が出現している。

 

2021/08/10

 

さらに、これが、直近ではどうなっているかというと

 

2022/5/22

 

と言う感じで、たしかにさらにくっきりしているように見える。追加で伐採された可能性が見て取れる。


しかし、もしここ数ヶ月で追加の伐採があったとしても、この線状の伐採は、昨年の8月ぐらいの写真に出現しているので、トラ刈り自体は、すでにその時点で行われていたのだろう。

 

画像で見ただけでも、十分、分かるのだが、今回は、pythonも使ってみようということで、まずは、差分をだしてみる。

 

差分を出すコードは

import cv2
import numpy as np

img1 = cv2.imread('t20210512-ndvi.png',0)
#img1 = img1[0:500, 0:500]#トリミングしたければ

 

img2 = cv2.imread('t20220530-ndvi.png',0)
#img2 = img2[0:500, 0:500]

 

diff = cv2.absdiff(img1,img2)
cv2.imwrite("diff.png", diff)

 

という感じで至って単純。

 

 

左側が、ビフォアアフターの差分画像だが、これだと逆にわかりにくい。

 

なぜわかりにくいかというと、2つの時期が異なる人工衛星の画像は、「気象上の要素(雲)」と「環境の変化(主に植生の変化を想定)」という要素が含まれていてそれが差分になってしまうからである。

 

それを除去するのに、今回は、2021年の画像と、それに近い日付の画像をとってきてマスクを作ることで対応した。


マスクの作り方はざっというと、小さな差分を残して大きな差分をばっさり消した感じ。マスクの作成コードは割愛するが、ピクセルをある程度の塊にして、一定の閾値を設ける事でノイズの除去をしようとしている。

上記の右側の画像が作成したマスク画像である。

 

それを組み合わせて、作成した画像がこちら

 

先ほどの、差分画像に対し、マスクを使い可能な範囲の不要な要素を削除。

残った部分より対照部分を赤にした画像を作成、カラー画像と重ね合わせるとこんな感じとなる。

 

最近の画像に着色してもよかったのだろうが、イメージはできると思う。

尚、単純な差分解析なので、関係ない部分も着色されていると考えてください。

 


ところで、森林伐採というと、CO2排出がーという人がいるが、CO2の観点で言うと、実は木というのは伐採しても、また新たに植ええれば良いものである。

 

もっとも植林においては、適切な間伐方法があるし、森の豊かさをまもるという観点で、森林保護も重要だ。


とはいえ、木を植えるとCO2が減るみたいな、誤ったイメージは適度に修正しておくことが、正しいSDGsのためには重要だと思う。

 

参考:

木を植えても二酸化炭素は減らない。カーボン・ニュートラルの話