#!/usr/bin/env python
# coding: utf-8
import h5py
import pandas as pd
import tables
from pyhdf.SD import SD, SDC
import numpy as np
import pandas as pd
import os
### HDFファイルからLST、NDVIのCSVファイルを抽出する処理。
# 画像出力フォルダの自動生成処理
new_dir_path_NDVI = './Data/NDVI_Before_change_of_coordinate'
new_dir_pathLST = './Data/LST_Before_change_of_coordinate'
os.makedirs(new_dir_path_NDVI, exist_ok=True)
os.makedirs(new_dir_pathLST, exist_ok=True)
# LST抽出処理
### 参考:http://pen.envr.tsukuba.ac.jp/~torarimon/
### ?cmd=view&p=HDF4
path = './Data/LST_HDF'
files = os.listdir(path)
ff = files[0:]
for i in range(len(ff)):
FILE_name= ff[i][8:23]
hdf = SD(path + '/' + str(ff[i]), SDC.READ)
# LSTデータ抽出
LST_sds=hdf.select('LST_Day_1km')
LST0=LST_sds.get()
nan_index=np.where(LST0==LST_sds.attributes()['_FillValue'])
# 正規化
LST1 = LST0 * LST_sds.attributes()['scale_factor']
# 欠損部分はNanを代入
LST1[nan_index]=np.nan
LS_T = pd.DataFrame(LST1)
LS_T.to_csv("./Data/LST_Before_change_of_coordinate/"
+ str(FILE_name)+".csv")
# NDVI抽出処理
path = "./Data/NDVI_HDF"
files = os.listdir(path)
ff = files[0:]
for i in range(len(ff)):
FILE_name= ff[i][8:23]
hdf = SD(path + '/'+ str(ff[i]), SDC.READ)
# 植生指数データ抽出
ndvi_sds=hdf.select('1 km 16 days NDVI')
ndvi0=ndvi_sds.get()
nan_index=np.where(ndvi0==ndvi_sds.attributes()['_FillValue'])
# 正規化(10000で割っただけ)
ndvi1 = ndvi0 / ndvi_sds.attributes()['scale_factor']
# 欠損部分はNanを代入
ndvi1[nan_index]=np.nan
ND_VI = pd.DataFrame(ndvi1)
ND_VI.to_csv("./Data/NDVI_Before_change_of_coordinate/"
+ str(FILE_name)+".csv")
[GRASSのインストール、標高データを用いた地滑り危険度マップの作成]
[植生指数 (NDVI) の計算、表示]
[標高データ (SRTM)の表示、植生指数 (NDVI) の3次元表示]
[反射率、輝度温度、標高データを用いた土地被覆分類]
[QGIS, Rを用いた公示地価データの空間統計分析:空間的自己回帰モデル]
[QGIS, Rを用いた公示地価データの空間統計分析:静的な時空間モデリング]
[Rを用いた衛星データ(LST, NDVI)の空間統計分析]
[Pythonを用いた空間統計分析のための衛星データ(LST, NDVI)の処理1(市町村別データの生成)]
[Pythonを用いた空間統計分析のための衛星データ(LST, NDVI)の処理2(人口データの重みを加味した市町村別データの生成)]