Pythonを用いた空間統計分析のための衛星データ(LST, NDVI)の処理2

NDVI・LSTデータの結合

import h5py
import pandas as pd
import tables
from pyhdf.SD import SD, SDC
import numpy as np
import pandas as pd
from scipy.interpolate import griddata
import seaborn as sns
import matplotlib.pyplot as plt

import os
import glob
import csv

import jismesh.utils as ju


pop_27City = pd.read_csv("./population_1kmmesh_XY/
1kmmesh_population_XY_main27.csv",header=0,engine="python")

## データをKEY_CODEに対して昇順にしておく
pop_27City = pop_27City.sort_values('KEY_CODE')
pop_27City = pop_27City.reset_index(drop=True)


# 対象期間
annual = [2012,2013,2014,2015]


## LSTの処理

concat_list = []

# 6月から9月までの平均値
season_all = pd.read_csv("./population_1kmmesh_MinDistance/
LST/ALL_6to9_AVE_LST_Distance.csv",header=0,engine="python")


# 'InputID'(8桁のメッシュコード)で昇順 → 重複する"InputID"を削除
season_all = season_all.sort_values('InputID')
season_all = season_all.reset_index(drop=True)
season_all = season_all[~season_all.duplicated(
subset=["InputID"])].reset_index(drop=True)

concat_list.append(season_all.iloc[:,1:])
concat_list[0] = concat_list[0].rename(columns={
'TargetID': 'LST_6to9_ave', 'Distance': 'Min_D[m]LST_6to9_ave'})


# 各年のデータの処理
for i in range(len(annual)):
    annual_alls = pd.read_csv("./population_1kmmesh_MinDistance/
LST/" + str(annual[i]) + "_ALLannual_AVE_Distance.csv",
header=0,engine="python")
    
    # 'InputID'(8桁のメッシュコード)で昇順 → 重複削除
    annual_alls = annual_alls.sort_values('InputID')
    annual_alls = annual_alls.reset_index(drop=True)
    annual_alls = annual_alls[~annual_alls.duplicated(
    subset=["InputID"])].reset_index(drop=True)
    
    concat_list.append(annual_alls.iloc[:,1:])
    concat_list[i+1] = concat_list[i+1].rename(
    columns={'TargetID': 'LST_' + str(annual[i]) + 'annual_AVE', 
    'Distance': 'Min_D[m]LST_' + str(annual[i]) + 'annual_AVE'})


# 結合
concat1 = pd.concat([concat_list[0], concat_list[1],
concat_list[2],concat_list[3],concat_list[4]], axis=1)


## NDVIの処理
concat2_list = []


# 6月から9月までの平均値
season_all = pd.read_csv("./population_1kmmesh_MinDistance/
NDVI/ALL_6to9_AVE_NDVI_Distance.csv",header=0,engine="python")


# 'InputID'(8桁のメッシュコード)で昇順 → 重複する"InputID"を削除
season_all = season_all.sort_values('InputID')
season_all = season_all.reset_index(drop=True)
season_all = season_all[~season_all.duplicated(
subset=["InputID"])].reset_index(drop=True)

concat2_list.append(season_all.iloc[:,1:])
concat2_list[0] = concat_list[0].rename(columns={
'TargetID': 'NDVI_6to9_ave', 'Distance': 'Min_D[m]NDVI_6to9_ave'})

# 各年のデータの処理

for i in range(len(annual)):
    annual_alls = pd.read_csv(
    "./population_1kmmesh_MinDistance/NDVI/" + str(annual[i]) 
    + "_ALLannual_AVE_Distance.csv",header=0,engine="python")
    
    # 'InputID'(8桁のメッシュコード)で昇順 → 重複削除
    annual_alls = annual_alls.sort_values('InputID')
    annual_alls = annual_alls.reset_index(drop=True)
    annual_alls = annual_alls[~annual_alls.duplicated(
    subset=["InputID"])].reset_index(drop=True)
    
    concat2_list.append(annual_alls.iloc[:,1:])
    concat2_list[i+1] = concat2_list[i+1].rename(
    columns={'TargetID': 'NDVI_' + str(annual[i]) + 'annual_AVE', 
    'Distance': 'Min_D[m]NDVI_' + str(annual[i]) + 'annual_AVE'})

# 結合
concat2 = pd.concat([concat2_list[0], concat2_list[1],
concat2_list[2],concat2_list[3],concat2_list[4]], axis=1)


## 人口メッシュデータ+「NDVIとLST」を更に結合

ALL_concat = pd.concat([pop_27City ,concat1, concat2], axis=1)

ALL_concat.to_csv("./population_1kmmesh_MinDistance/
populationConcat_NDVILST.csv",index = False)

[GRASSのインストール、標高データを用いた地滑り危険度マップの作成]
[植生指数 (NDVI) の計算、表示]
[標高データ (SRTM)の表示、植生指数 (NDVI) の3次元表示]
[反射率、輝度温度、標高データを用いた土地被覆分類]
[QGIS, Rを用いた公示地価データの空間統計分析:空間的自己回帰モデル]
[QGIS, Rを用いた公示地価データの空間統計分析:静的な時空間モデリング]
[Rを用いた衛星データ(LST, NDVI)の空間統計分析]
[Pythonを用いた空間統計分析のための衛星データ(LST, NDVI)の処理1(市町村別データの生成)]
[Pythonを用いた空間統計分析のための衛星データ(LST, NDVI)の処理2(人口データの重みを加味した市町村別データの生成)]

[講義「リモートセンシングと地理情報システム(GIS)」のトップページ]
[須ア純一のページへ]

須ア純一 京都大学大学院 工学研究科社会基盤工学専攻 空間情報学講座