植物と気候のかかわり合い
降水量 (cm yr-1)
気温
(oC
)
熱帯雨林
北方林
温帯林
砂漠
植物の分布と気候 (Chapin et al., 2002).
寒冷
温暖
湿潤乾燥
世界の植物の分布は、気候条件特に、気温と降水量などに強く関連
Chapin Ⅲ, F. S., P. A. Matson, and H. A. Mooney, 2002: Principles of terrestrial ecosystem ecology. Springer-Verlag Press, New York, 436 pp.
堺市 : 年降水量1187.0 mm yr-1
年平均気温:15.9℃(気象庁)
実習ですること
対象領域内の植物タイプがどのような気候条件で生育しているかを調べる。
-20
-10
0
10
20
30
1 3 5 7 9 110
20
40
60
80
100
120
140
160
2 4 6 8 10 12
降水量
(mm
)
気温
(oC
)
月
0.0
0.2
0.4
0.6
0.8
1.0
ND
VI
年平均気温 : 4.0oC
年最高気温 : 18.9oC
年最低気温 : -11.7oC
年間降水量 : 834 mm
1 3 5 7 9 112 4 6 8 10 12
月
NDVI
気温
降水量
年平均気温 : 1.7oC
年最高気温 : 17.9oC
年最低気温 : -15.2oC
年間降水量 : 435 mm
混合林 草地
混合林
草地
植物の分光反射率
0.3 0.7 0.9 1.5
反射率
光の波長 (μm)
可視光(0.4 – 0.7 μm)
近赤外線(0.7 – 1.3 μm)
短波長赤外線(1.3 – 3 μm)
0.0
0.5
植物土壌
水
正規化植生指数:NDVI
0.3 0.7 0.9
反射率
植物
光の波長 (μm) 1.5
植物は赤色の光を吸収し、近赤外の光をよく反射する特徴を持つ
NDVI (Normalized Difference Vegetation Index)
植物の有無、活性をリモートセンシングで求めるには?
NDVI = NIR - RED
NIR + RED
NIR : 近赤外線RED : 赤色波長
* Near Infra Red (NIR)
正規化植生指数:NDVI
0.3 0.7 0.9
反射率
RED
光の波長 (μm) 1.5
NIR
0.3 0.7 0.9
反射率
RED
光の波長 (μm) 1.5
NIR
NDVI = NIR - RED
NIR + RED
緑の植物
紅葉した植物
NDVIは-1~1の値をとる。
NIRに対してREDが小さいほど植物量が多い、或いは活性が高い。
実験に使用するデータ
人工衛星データ MODIS
NDVI (MOD13)
土地被覆データ (MOD12)入手先 (LP DAAC : https://lpdaac.usgs.gov/)
気候データ気温 : NCEP/NCAR客観解析データ入手先 (http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis2.html)
降水量 : GPCP
入手先 (http://lwf.ncdc.noaa.gov/oa/wmo/wdcamet-ncdc.html)
今回使用するデータは、全て無料で公開されているデータを加工したものである。
中分解能撮像分光放射計 (MODIS)
http://modis-sr.ltdri.org/index.html
NASAの人工衛星Terra / Aqua という2つの人工衛星に搭載された分光放射計それぞれの衛星が一日に午前と午後の二回の計測を実施(一日に4回観測を実施)Terra は2000年から、Aquaは2002年から運用が開始
観測されたデータは無料でリアルタイム配信今回の実験に用いたデータは、下記からダウンロードしたものLP DAAC (Land Processes Distributed Active Archive Center) :https://lpdaac.usgs.gov/
MODISにより観測された2004年8月のNDVI
(Moderate resolution spectral radiometer)
中分解能撮像分光放射計 (MODIS)
0.3 0.7 0.9
反射率
RED
光の波長 (μm) 1.5
NIR
元データ空間解像度 : バンド1,2 は250 m (その他のバンドは500 m ~ 1 km)
今回の実験で用いるデータはオリジナルデータを以下のように加工したものNDVI の月別平均値空間解像度 約 16 km
Band 1 : 赤色光 (620 – 670 nm)
Band 2 : 近赤外線 (841 – 876 nm)
中分解能撮像分光放射計 (MODIS)
常緑針葉樹林常緑広葉樹林落葉針葉樹林落葉紅葉樹林混合林密な低木疎な低木サバンナ(woody)
サバンナ草地湿地耕作地都市耕作地・自然植生雪氷裸地
北方ユーラシアからアジアにかけての植生分布
水域 0常緑針葉樹林 1常緑広葉樹林 2落葉針葉樹林 3落葉広葉樹林 4混合林 5密な低木 6疎な低木 7サバンナ (Woody) 8サバンナ 9草地 10湿地 11耕作地 12都市 13耕作地・自然植生の混合 14雪氷 15裸地 16
土地被覆の形態 デジタル値
植生分布図のデジタル値
土地被覆データ (MOD12): 植生毎の分光反射特性を用いて植生タイプを分類
気候データ
客観解析 :
様々な観測データ (地上観測・衛星観測)と数値モデルなどを用いて気象要素を3次元空間分布を求める手法
客観解析による2004年1月の地上2 mの気温水平分布 経度方向
緯度方向
今回配布するデータは緯度・経度方向の二次元配列データ
気候データ
NCEP/NCAR 客観解析 : 地上2 m 気温気象解析で一般によく用いられるデータ(地上観測・衛星観測と数値モデルから算出)
6時間ごとのデータ空間分解能 (東西 x 南北 : 1.9 x 1.9度)
データの単位:℃
GPCP 客観解析 : 降水量Global Precipitation Climatology Project
地上観測と人工衛星から求めた降水量データ1日ごとのデータ空間分解能 (東西 x 南北 : 1.0 x 1.0度)
データの単位:mm month-1
対象領域
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
東経70度 東経160度
南緯10度
北緯70度
90度
80度
675グリッド
600グリッド
空間分解能は約16 km に相当
常緑針葉樹林常緑広葉樹林落葉針葉樹林落葉紅葉樹林混合林密な低木疎な低木サバンナ(woody)
サバンナ草地湿地耕作地都市耕作地・自然植生雪氷裸地
実習ですること
対象領域内の植物タイプがどのような気候条件で生育しているかを調べる。
-20
-10
0
10
20
30
1 3 5 7 9 110
20
40
60
80
100
120
140
160
2 4 6 8 10 12
降水量
(mm
)
気温
(oC
)
月
0.0
0.2
0.4
0.6
0.8
1.0
ND
VI
年平均気温 : 4.0oC
年最高気温 : 18.9oC
年最低気温 : -11.7oC
年間降水量 : 834 mm
1 3 5 7 9 112 4 6 8 10 12
月
NDVI
気温
降水量
年平均気温 : 1.7oC
年最高気温 : 17.9oC
年最低気温 : -15.2oC
年間降水量 : 435 mm
混合林 草地
混合林
草地
解析ツール
Python 3 (Jupyter Notebook): フリーソフトプログラムを用いて対話形式でデータ解析を支援するツール* 気候データなどの二次元バイナリデータの可視化* 統計計算* 二次元データ解析の簡易化
以下のHPから無料でダウンロード可能 (Anacondaをインストール)
https://www.anaconda.com/download/
Jupyter Notebook の使い方https://pythondatascience.plavox.info/python%E3%81%AE%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83/jupyter-
notebook%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86
https://tech-camp.in/note/careerchange/49077/
機械学習・深層学習、科学計算などに使用される。AI実用化が研究される中で需要が高まる?
データ
下記の生態気象学研究GのHPからダウンロードする。http://atmenv.envi.osakafu-u.ac.jp/
(NDVI, 気温、降水量、植生マップデータ)
実験実習ー>H31年度
サンプルプログラムを実行してみる。
以下をセルに入力して、
print(‘Hello World!’)
[Cell] => [Run Cells]から実行してみる。できたら以下もやってみる。
a = 1
a = a + 1
print(a)
b = 10 * 10 / 2
print(b)
名前を付けてプロジェクトの保存
ここから保存できる。定期的にこのボタンを押して、プロジェクトを保存すること。
■プロジェクトの保存
■プロジェクトの名前を分かりやすいものに変える。
Renameを選択する。
作業フォルダの移動
ダウンロードしたフォルダをcドライブ直下においてデータ解凍(c:¥SatelliteData ができるはず。)
今参照しているフォルダの確認
pwd
c:¥SatelliteData¥SatelliteData フォルダへ移動
import os
os.chdir(‘c:¥¥SatelliteData¥¥SatelliteData’)
¥¥はフォルダの区切りを表す。¥ではなく、¥¥と2つ書くこと。
土地被覆データの読み込み
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np
# size of data
sample = 675
line = 600
infile = 'MOD12¥¥MOD12.LandCover.byt'
# Read Two-dimensional Binary File
fin = open(infile, 'rb')
dbuf = np.fromfile(fin, dtype=np.uint8, count=-1)
fin.close()
LAND = dbuf.reshape(sample, line, order='F')
ファイルの名前フォルダの名前
¥¥で区切る
675 (横) x 600 (縦) のデータ
読み出したデータを、LAND変数に格納 : (LANDは675 x 600 の二次元配列)
2バイトの符号なし整数データ
Read mode で開く
土地被覆データの作図
fig = plt.figure(figsize=(5, 5), dpi=100)
plt.imshow(np.transpose(LAND), clim=(0, 16), cmap=cm.tab20)
clb = plt.colorbar(extend='min',fraction=0.04)
plt.axis('off')
plt.show()
土地被覆データは、最大値16、最低値 0 地図を書く関数
図右のカラーバーを各関数
https://matplotlib.org/3.1.0/tutorials/colors/colormaps.html
様々なcolor mapについて
Color mapの種類を指定
NDVIデータの読み込みと作図infile = 'NDVI¥¥MOD13.NDVI.200401.flt'
# Read Two-dimensional Binary File
fin = open(infile, 'rb')
dbuf = np.fromfile(fin, dtype=np.float32, count=-1)
fin.close()
NDVI = dbuf.reshape(sample, line, order='F')
fig = plt.figure(figsize=(5, 5), dpi=100)
plt.imshow(np.transpose(NDVI), clim=(0,1), cmap=cm.jet)
clb = plt.colorbar(extend='min',fraction=0.04)
plt.axis('off')
plt.show()
気温データの読み込みと作図
infile = 'NCEP¥¥NCEP.TEMP.200401.flt'
# Read Two-dimensional Binary File
fin = open(infile, 'rb')
dbuf = np.fromfile(fin, dtype=np.float32, count=-1)
fin.close()
TAVE = dbuf.reshape(sample, line, order='F')
fig = plt.figure(figsize=(5, 5), dpi=100)
plt.imshow(np.transpose(TAVE), clim=(-10, 30), cmap=cm.jet)
clb = plt.colorbar(extend='min',fraction=0.04)
plt.axis('off')
plt.show()
気温データの陸域のみ表示
infile = 'NCEP¥¥NCEP.TEMP.200401.flt'
# Read Two-dimensional Binary File
fin = open(infile, 'rb')
dbuf = np.fromfile(fin, dtype=np.float32, count=-1)
fin.close()
TAVE = dbuf.reshape(sample, line, order='F')
idx = np.where(LAND==0)
TAVE[idx] = np.nan
fig = plt.figure(figsize=(5, 5), dpi=100)
ax = plt.imshow(np.transpose(TAVE), clim=(-20, 30), cmap=cm.jet)
clb = plt.colorbar(extend='min',fraction=0.04)
plt.axis('off')
ax.cmap.set_bad('w')
plt.show()
where関数は、指定された条件が当てはまるインデックスを返す
[=]ではなく、[==]と2個書くことに注意する。
where関数で得られたピクセルに対して、異常値(np.nan)を代入する。
異常値を白('w')に塗りつぶす。
降水量データの読み込みと作図
infile = 'GPCP¥¥GPCP.PREC.200401.flt'
# Read Two-dimensional Binary File
fin = open(infile, 'rb')
dbuf = np.fromfile(fin, dtype=np.float32, count=-1)
fin.close()
PREC = dbuf.reshape(sample, line, order='F')
idx = np.where(LAND==0)
PREC[idx] = np.nan
fig = plt.figure(figsize=(5, 5), dpi=100)
ax = plt.imshow(np.transpose(PREC), clim=(0, 200), cmap=cm.jet)
clb = plt.colorbar(extend='min',fraction=0.04)
plt.axis('off')
ax.cmap.set_bad('w')
plt.show()
土地被覆毎のNDVI の平均値を算出
idx_ndvi = np.where((LAND == 5) & (NDVI > 0))
LANDが5番(混合林)でNDVIが正の場合のインデックスをidx_ndviに抽出する。
mean_NDVI = np.mean(NDVI[idx_ndvi])
抽出した地点のNDVIを平均して、結果をmeam_NDVI変数に代入する。np.meanは、平均値を計算する関数
idx = np.where(LAND == 5)
mean_T = np.mean(TAVE[idx])
mean_P = np.mean(PREC[idx])
print(mean_NDVI, mean_T, mean_P)
printは結果を表示する関数
1~
12月まで繰り返す
レポートに向けてすること
気温の月別値の読み込み
降水量の月別値の読み込み
NDVIの月別値の読み込み
土地被覆データの読み込み(対象植生を決める)
植生分布データから各植生タイプが占有するピクセルの位置を検索する
特定された場所の気温、降水量NDVIを平均
Example 6 プログラムを、1~12月まで月を変えて繰り返してもよいし、Example 7プログラムを作って一括実行してもよい。
レポート
-20
-10
0
10
20
30
1 3 5 7 9 112 4 6 8 10 12
気温
(oC
)月
0.0
0.2
0.4
0.6
0.8
1.0
ND
VI
年平均気温 : 4.0oC
年最高気温 : 18.9oC
年最低気温 : -11.7oC
年間降水量 : 834 mm
混合林
植生の種類ごとに気温、降水量、NDVIの季節変化を下記の図のように整理する。
植生タイプは16種類の植生区分の中から3~5種類を選ぶ。
グラフ中に年平均気温年最高気温年最低気温年間積算降水量 も記載
レポート
A4用紙に4枚以内で、目的、方法、結果、考察、感想を記載。
目的では、明快な目的と仮説設定
3つの植生タイプを選らんだ理由・ねらいを必ず記載
本レポートの最終的な目的 (実習のテキストとは異なる自分なりの目的)
結果では、
定量的に記述すること (「すごく」などは不可、「xx℃高かった」)