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

人口メッシュデータの緯度経度への変換

#!/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
from scipy.interpolate import griddata
import seaborn as sns
import matplotlib.pyplot as plt

import os
import glob
import csv
import glob
import jismesh.utils as ju
import shutil


datas = glob.glob('./population_1kmmesh/*.txt')

for i in range(len(datas)):
    # 保存するCSVファイルの場所
    data1 = datas[i]
    file_csv = data1.replace("txt", "csv")
    # テキストファイルを開く
    with open(data1)as rf:
        # 書き込むCSVファイルを開く
        with open(file_csv, "w")as wf:
            # テキストを1行ずつ読み込む
            # テキストの1行を要素としたlistになる
            readfile = rf.readlines()
           
            for read_text in readfile:
                # listに分割
                read_text = read_text.split(',')
                # csvに書き込む
                writer = csv.writer(wf, delimiter=',')
                writer.writerow(read_text)
                
                
datas = glob.glob('./population_1kmmesh/*.csv')   

os.makedirs('./population_1kmmesh_CSV', exist_ok=True)

for i in range(len(datas)):
    new_path = shutil.move(datas[i], 'population_1kmmesh_CSV')

path0000 = "./population_1kmmesh_CSV"
files = os.listdir(path0000)
ff = files[0:]
# フォルダ内のファイル名を昇順に並べ替える
ff = sorted(ff)
ff[0][0:-4]


os.makedirs('./population_1kmmesh_XY', exist_ok=True)

for y in range(len(ff)):
    pop_japan = pd.read_csv('./population_1kmmesh_CSV/' 
    + ff[y],header=0,engine="python")
    
    # 型の変換 実数値にしておく
    pop = pd.Series(pop_japan["T000846001"][1:], dtype=np.float64)
    pop_code = pd.Series(pop_japan["KEY_CODE"][1:], dtype=np.float64)
    pop_concat = pd.concat([pop_code, pop], axis=1)
    pop_concat = pop_concat.rename(columns={'T000846001': 'population'})

    # メッシュコードを緯度経度に変換(メッシュの中心点を緯度経度に変換)
    pop_concat['lat'], pop_concat['lon'] = ju.to_meshpoint(
    pop_concat["KEY_CODE"], lat_multiplier=0.5, lon_multiplier=0.5)
    pop_japan.insert(1,'lat',pop_concat['lat'])
    pop_japan.insert(2,'lon',pop_concat['lon'])
    pop_japan.to_csv("./population_1kmmesh_XY/" 
    + ff[y][0:-4] + "_XY.csv",encoding='utf_8_sig')

# ファイルを1つにまとめる
csv_files = glob.glob('./population_1kmmesh_XY/*.csv')
list1 = []

for file in csv_files:
    list1.append(pd.read_csv(file))

df = pd.concat(list1)
df = df.drop('Unnamed: 0', axis=1)
df = df.dropna(subset=['KEY_CODE'])
df.to_csv('./population_1kmmesh_XY/all_population_XY.csv',
index=False,encoding='cp932')

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

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

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