ここでは、衛星リモートセンシングデータから生成された地表面温度 (Land Surface Temperature: LST) と植生指数 (Normalized Difference Vegetation Index: NDVI) の自動処理を紹介します。Pythonを使って、WebサイトからNDVI・LSTデータを取得するところから始まり、投影変換を通じて、最終的にNDVI・LSTデータを日本全国の市区町村に分ける処理までを説明します。人口分布を加味して、年間あるいは夏季(6〜9月)の平均NDVI・LSTを計算しています。
使用フォルダはNDVI・LSTに市区町村の属性が付与された「JapanAttributeData_LST」、「JapanAttributeData_NDVI」を使用する。(演習1 「7. クリッピング(属性の付加)処理 について」で作成されるフォルダ)
実行後、Dataフォルダ内に「27City_LST」、「27City_NDVI」が出力され、27都市ごとのフォルダにNDVI・LSTのデータが格納される。
分類の上では、政令指定都市か否かで場合分けを行い、27都市の属性名と一致するものを抽出している。
下記のリンクから、人口メッシュデータ(1 km)をCSV形式でダウンロードする。
参考:国勢調査(2015年)
ダウンロードしたファイル(txtファイル)は手動で全て「population_1kmmesh」に入れておく。データの詳細のフォーマットについては、同フォルダ中の「T000846.pdf」に記載されている。
以後の処理を簡単にするため、上記のPythonスクリプトを用いてtxtファイルをCSVファイルに変換し、そのうえでメッシュコードを緯度経度に変換する。メッシュコードの中心座標が緯度経度に変換される。メッシュコードを緯度経度に変換するにあたり、以下のWebページを参考にした。
参考:https://www.gis-py.com/entry/py-mesh
実行後、
の2つのフォルダが自動的に作成される。
最終的に、全国のメッシュデータを1つに統合したCSVファイルとして「population_1kmmesh_XY」内に「all_population_XY.csv」というファイルが保存される。
自己交差解消済みのshpファイルを用いて、27都市のshpファイルを作成する。 QGIS上で「japan_ver82_2.shp」を表示させ、 レイヤで右クリック→ 「属性テーブルを開く」→(属性テーブルウィンドウの左下のボタンから)「高度なフィルタ(式)」を選択する。
高度なフィルタ(式)内で記述する式を以下に示す。
これらを選択したあと、別のshapeファイルとして保存する。 「レイヤ」中の「japan_ver82.shp」で右クリックし「エクスポート」→「選択地物の保存」として、任意の名前で保存すればよい。
27都市のshpファイルと、全国の人口メッシュデータが結合された「all_population_XY.csv」を用いて、27都市の人口メッシュデータを切り抜く。
27都市のshpファイル、「all_population_XY.csv」をQGIS上で表示させ、 「ベクタ」→「空間演算ツール」→「切り抜き(clip)」とする。
そして、 入力レイヤ→「all_polulation_XY」 オーバーレイレイヤ→27都市のポリゴンレイヤ を選択し、実行する。
出力される点群をCSVファイルとして保存する。ファイル名は「1kmmesh_population_XY_main27.csv」とし、「population_1kmmesh_XY」フォルダ内に保存する。
「6月から9月までのNDVI・LSTの平均値」、「1年間のNDVI・LSTの平均値」を取得する。 処理については、NDVI・LSTデータ中の7桁の数字(例えば2012001→2012年1月1日)を活用し、「6月から9月まで」、「1年間」の数値を指定することで抽出を行っている。
実行後、Dataフォルダ内に「27City_LST(orNDVI)_6to9_AVE」、「27City_LST(orNDVI)_annual_AVE」の4フォルダが自動生成され、27都市の6月から9月までのNDVI・LSTの平均値」、「2012〜2015年までのそれぞれの年間のNDVI・LSTの平均値」が格納される。
「27City_LST(orNDVI)_6to9_AVE」、「27City_LST(orNDVI)_annual_AVE」に格納されたCSVファイルを1つに統合する。
統合されたファイルは
として保存される。
QGIS等のGISソフトを用い、27都市の人口メッシュデータ点(1kmmesh_population_XY_main27.csv)と、14.で得た「ALL_6to9_AVE.csv」、「2012(~2015)_ALLannual_AVE.csv」とを対応させる。
QGIS上に「1kmmesh_population_XY_main27.csv」、「ALL_6to9_AVE.csv」、「2012(~2015)_ALLannual_AVE.csv」の計6つのCSVファイルを表示させ、 「ベクタ」→「解析ツール」→「距離行列(distance matrix)」を選択する。
距離行列中において、以下のようにパラメータを設定する。
とし、実行する。適宜全てのファイルに対して実行する(実行にはやや時間がかかる(1時間程度)。
計算後、レイヤに現れる「距離行列(distance matrix)」をCSV形式として保存する。 取得したCSVファイルは、あらかじめ手動で作成した「population_1kmmesh_MinDistance」フォルダ内に「NDVI」、「LST」フォルダをそれぞれ作成し、その中に各々保存しておく。
最短距離による紐づけ処理後、「1kmmesh_population_XY_main27.csv」にpopulation_1kmmesh_MinDistanceフォルダ内のNDVI・LSTデータを結合させる。
QGIS上で1kmmesh_population_XY_main27.csvの点に対して最も近い1点のみを選定し、NDVI・LSTを対応させたが、ほとんど距離が同じ点が複数ある場合は、該当する複数の点が選定されてしまう場合がある。そこで、値が重複しているものを削除する必要がある。
具体的には、全てのファイルを'InputID'(8桁のメッシュコードに相当する)で昇順に並べ替え、"InputID"が重複するものを削除する処理を行い、全てを結合する処理を行っている。
最終的に得られるCSVファイルは「population_1kmmesh_MinDistance」フォルダ内に「populationConcat_NDVILST.csv」として保存される。
[GRASSのインストール、標高データを用いた地滑り危険度マップの作成]
[植生指数 (NDVI) の計算、表示]
[標高データ (SRTM)の表示、植生指数 (NDVI) の3次元表示]
[反射率、輝度温度、標高データを用いた土地被覆分類]
[QGIS, Rを用いた公示地価データの空間統計分析:空間的自己回帰モデル]
[QGIS, Rを用いた公示地価データの空間統計分析:静的な時空間モデリング]
[Rを用いた衛星データ(LST, NDVI)の空間統計分析]
[Pythonを用いた空間統計分析のための衛星データ(LST, NDVI)の処理1(市町村別データの生成)]
[Pythonを用いた空間統計分析のための衛星データ(LST, NDVI)の処理2(人口データの重みを加味した市町村別データの生成)]