温暖化は山岳生態系へどのように影響するか?
筑波大学農林工学系 奈佐原(西田)顕郎
はじめに
前回で学んだSRTMの地形データは、局地的な環境解析に有用である。ここではその応用例として、温暖化が山岳地帯の生態系へどのような影響を及ぼすか検討してみよう。高山に棲む生物にとっては、温暖化によって生息域が狭くなり、分断されてしまう可能性がある。これを地形データで解析してみるのである。
注: これらの課題は、あくまでGISの概念と操作を習得するための仮想的なものであり、実際の生物の生態はもっと複雑であって、慎重な検討を要するものであることに注意せよ。(たとえば、「ライチョウは生きていた 絶滅懸念の北岳で発見」)
SRTMデータの準備
日本の中部山岳地帯の地形データを取得し、読み込み、モザイクしよう:
wget -c http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N35E136.hgt.zip wget -c http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N36E136.hgt.zip wget -c http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N36E137.hgt.zip wget -c http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N35E137.hgt.zip wget -c http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N35E138.hgt.zip wget -c http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N36E138.hgt.zip rm *.hgt for i in N3[5-6]E13[6-8].hgt.zip; do unzip $i; done g.region s=35.2 n=36.9 w=137.4 e=138.9 res=0.000833333 d.erase r.mapcalc "dummy=null()" g.remove rast=SRTM for i in N3[5-6]E13[6-8].hgt; do r.in.srtm input=$i output=SRTM r.mapcalc "dummy1=if(isnull(dummy),SRTM,dummy)" g.remove rast=dummy g.rename rast=dummy1,dummy g.remove rast=SRTM rm $i done r.mapcalc "SRTM_Alps = if(isnull(dummy), GTOPO_E100N40, dummy)" r.colors map=SRTM_Alps color=grey d.mon x0 d.rast SRTM_Alps
※GRASS7.0.3では12行目を"g.remove type=raster name=SRTM"と打つと上手くいきます(追記:2018/02/08 菊島)

左上の山脈が北アルプス、その下の小さな山脈が中央アルプス。 画面下半分のまんなかあたりの大きな山脈が南アルプス。画面右下は富士山。
雷鳥の生息範囲
雷鳥は、標高2400m以上の山岳地に生息すると言われる。もちろんそれ以外にも、気象や植生などの環境要因によっても生息範囲は左右されるだろうが、ここではあくまで「GISの練習」の目的のために、雷鳥の生息範囲がこのように単純に標高(から決まる温度)で決まると考えよう。まず、現在の雷鳥の生息範囲をGISで抽出する:
r.mapcalc "habitat=if(SRTM_Alps < 2400, null(), 1)" d.rast habitat -o

ここでr.mapcalcによって、標高2400m未満の場所はNULL、2400m以上の場所は1とするようなラスターマップを作り、地形図に重ねて描いた。地形図上でピンク色に表示されているところが標高2400m以上の場所で、雷鳥の生息範囲とみなされる地域である。
このような雷鳥の生息範囲が、現在、日本の中部山岳地帯でどのくらいの面積として存在するかを調べてみよう:
r.stats input=habitat -a r.stats: 100% 1 479501092.712817 * 25015059042.195137
ここで1という数の横に、479501092.7という数がある。これが求める面積(平方メートル)である。これは、直接的には、habitatというラスターマップの中で1を値とするピクセルの占める面積を示しているが、前述のように、1という値は標高2400m以上の地域、つまり雷鳥の生息範囲に付与されている。
従って、現在は雷鳥の生息範囲は、約480平方キロメートル存在する。
雷鳥の生息範囲のパッチ
生物の生息範囲は、あるていどの広さで連結している必要がある。狭い生息範囲のなかには少ない個体しか棲まないので、他のさまざまな個体と生殖行動できる機会が少なく、そのために、集団としての遺伝的な多様性を維持できない。そこで、稀少生物を保全するには、その生物の生息域をなるべく孤立化させないように、連結してやることが大切である。連結した生物の生息域のことを「パッチ」と呼ぶ。小さなパッチをたくさん作るよりも、大きなパッチを少数作るほうが、生物にはありがたいのである。
そこで、現在の雷鳥の生息範囲が、どのくらいのサイズのパッチになっているかを調べよう。
r.clump input=habitat output=patch 経過 1... 100% 経過 2... 100% r.clump 完了. 122 のクランプ(塊)
ここではぜんぶで122個のパッチになっていることがわかった。それを表示してみよう:
d.rast patch -o

ここで、それぞれのパッチは違う色で表示されている。
それでは、これらのパッチのサイズを調べよう:
r.stats input=patch -a > patch.txt
ここで作られるpatch.txtというテキストファイルに、各パッチのサイズが記述される。これを統計ソフトや表計算ソフトに入れれば、様々な解析ができる。しかしここでは、awkを使った簡単な解析をしてみよう。パッチの合計面積、パッチの数、パッチの平均面積、最大のパッチの面積を表示するのである:
cat patch.txt | grep -v "*" | awk '{a=a+$2; n++; if(max<$2) max=$2}END{print a, n, a/n, max}' 4.79702e+08 122 3.93198e+06 117411454.338169
すなわち、パッチの平均面積は3.9km2、最大パッチは117km2であることがわかった。
以上の操作を、標高を変数とするシェルスクリプトにまとめてしまおう(viなどのテキストエディタで作業):
#!/bin/sh g.remove rast=habitat,patch > /dev/null r.mapcalc "habitat=if(SRTM_Alps < $1, null(), 1)" > /dev/null r.clump input=habitat output=patch > /dev/null d.rast SRTM_Alps d.rast habitat -o d.out.png output="habitat.$1.png" res=1 > /dev/null d.rast patch -o r.stats input=patch -a > patch.txt cat patch.txt | grep -v "*" | \ awk '{a=a+$2; n++; if(max<$2) max=$2}END{print h, a/1000000, n, a/(n*1000000), max/1000000}' h=$1
※GRASS7.0.3では"g.out.png"コマンドが無くなっている模様です。"d.out.file output="habitat.$1.png" format=png > /dev/null"と代わりに打ち込むと一応動きますが、"res=1"が書けなくなるので以前と全く同じ操作になっているかは不明です。(追記:2018/02/08 菊島)
このスクリプトをhabitat.shというファイルにして、いつものように、
chmod +x habitat.sh
という操作を施す。すると、今までのだいたいの作業は、
./habitat.sh 2400
で再現されるはずである。
温暖化するとどうなるか?
では、いよいよ温暖化の影響を見てみよう。温暖化すると、山地の気温も上がるため、雷鳥の生息範囲は、より標高の高い場所に限定されるだろう。山岳地域の気温がどのように変化するかはまだ科学的に定かではないので、ここでは山岳地域の気温上昇が1℃、2℃、3℃、4℃のそれぞれの場合を考えよう。平均的には、標高が100m上がると気温は0.6℃程度、下がる。従って、1℃の温度上昇は、標高が167m上がることで相殺される。つまり、1℃の温度上昇によって、雷鳥の生息範囲の下限は167mづつ上がっていくと考えよう。
すると、1℃、2℃、3℃、4℃のそれぞれの温度上昇によって、雷鳥の生息範囲の下限は2567m, 2733m, 2900m, 3066mとかわっていくはずである。これらをシミュレートするには、上で作ったスクリプトを使えばよい:
rm habitat.txt for h in 2400 2567 2733 2900 3066; do ./habitat.sh $h >> habitat.txt done
すると、 habitat.2400.png habitat.2567.png habitat.2733.png habitat.2900.png habitat.3066.png という名前の画像ファイルができる:
現在(2400m) 1℃上昇(2567m) 2℃上昇(2733m) 3℃上昇(2900m) 4℃上昇(3066m)
これらを見ると、1℃や2℃という温度上昇によって、雷鳥の生息範囲は大きく変わってしまうことが示唆される。特に、2℃の上昇によって、八ヶ岳(南アルプスのすぐ上の山地。画面の中央やや右より)から雷鳥の生息範囲は消滅するという結果になった。4℃の上昇が起きれば、雷鳥の生息可能な範囲は富士山にしか残されないという結果になった。
一方、habitat.txtというファイルに、統計的な解析結果が集約されている:
cat habitat.txt 2400 479.702 122 3.93198 117.411 2567 222.072 136 1.63288 24.2575 2733 78.4069 92 0.852248 14.1095 2900 22.4881 35 0.642517 10.1113 3066 7.80466 8 0.975583 7.05129
このファイルには、1行の中に、順に、標高、生息面積、パッチ数、平均パッチ面積、最大パッチ面積が記述されている。このファイルをもとに、温暖化によって雷鳥の生息範囲がどのように変わって行くかを示す、様々なグラフを描くことができる。たとえば、以下のようなシェルスクリプトを作ってみよう:
#!/bin/sh gnuplot << EOF set terminal postscript enhanced 18 set size 0.6,0.6 set grid set pointsize 1.8 set xlabel "lower limit (m)" set xrange [2200:3200] set xtics 200 set nokey set ylabel "habitat area (km^2)" set ytics 100 set output "habitat_area.eps" plot "habitat.txt" u 1:2 w lp set ylabel "mean patch area (km^2)" set yrange [0:5] set ytics 1.0 set output "patch_area.eps" plot "habitat.txt" u 1:4 w lp EOF convert -density 72 habitat_area.eps -rotate 90 habitat_area.png convert -density 72 patch_area.eps -rotate 90 patch_area.png
※gnuplotのバージョンにもよると思いますが、私の場合は10行目の"set nokey"を"unset key"と打ち込んだほうが上手くいきました。(追記:2018/02/09 菊島)
(ここで、bash: gnuplot: command not foundなどのエラーが出たら、$ sudo apt-get install gnuplotとして、gnuplotをインストールすること)
解説: plot "habitat.txt" u 1:4 w lp 6 について、 * u 1:4 は、habitat.txtというテキストファイルに入っている数値の、 1列めを横軸、4列めを縦軸とせよ、という意味。 * w lp は、グラフの書式を設定する。w lpは、with line point。
このシェルスクリプトを実行すると、以下のようなグラフができる:
$ display habitat_area.png

habitat_area.png ... 下限標高と生息面積の関係
$ display patch_area.png

patch_area.png ... 下限標高とパッチ平均面積の関係
これらを見ると、温度上昇によって、生息範囲の面積が急激に減少することに加えて、ひとつひとつのパッチの面積も急激に減少することがわかる。
注: もし, gnuplotやdisplayなどのコマンドが動かない場合, インストールされていない可能性がある。その場合, 以下のコマンドでインストールせよ(学情端末では無理):
$ sudo apt-get install gnuplot imagemagick
課題
1. 上のシミュレーション結果から、下限標高と最大パッチ面積の関係をグラフにあらわせ。
2. 気温が逆に低くなる場合を検討してみよ。現在よりも気温が6℃程度低い状況(氷河期に相当)では、雷鳥の生息範囲はどのようになると推測されるか?
注: これらの課題は、あくまでGISの概念と操作を習得するための仮想的なものであり、実際の生物の生態はもっと複雑であって、慎重な検討を要するものであることに注意せよ。
→ GIS入門に戻る。
Keyword(s):
References:[GIS入門]