【비망록】 CSV 파일의 위도·경도를 바탕으로 대상 범위의 데이터 추출 및 메쉬 코드를 추가하는 스크립트를 작성했습니다.
목적
CSV 파일의 위도와 경도를 바탕으로 대상 범위의 데이터 추출 및 메쉬 코드를 추가하는 스크립트를 작성했습니다.
전제 조건
[비망록] grib2 형식 데이터를 csv 파일로 변환하는 스크립트를 만들었습니다.
실행
highres_nowcast_add_meshcode.py
# -*- coding: utf-8 -*-
import os
import glob
import csv
import pandas as pd
import pprint
import calendar
import jismesh.utils as ju
# 出力ファイルの指定
output_csvfile = "./out/highres_nowcast_anl_kanto.csv"
# 対象範囲の設定
y1 = 37.29166666666667
y2 = 34.04166666666667
x1 = 140.9375
x2 = 137.0625
#出力ファイルオープン
with open(output_csvfile, 'a', encoding='utf-8', newline="") as f:
# フォルダ内の全csvファイルのパスを取得
All_Files = glob.glob('./data/*.csv')
pprint.pprint (All_Files)
# csvファイル数分ループ処理
for file in All_Files:
# データをリストに格納
df = pd.read_csv(file, header=None, encoding='utf-8')
print(u'データフレームに格納処理終了')
#カラム名を付ける
df.columns = ["time_s_utc","time_f_utc","sign","surface","lon","lat","rain"]
print("---データ抽出前---")
# 最初の5個の値を表示する
print(df.head(5))
# 各列のdtypeを見る
print(df.dtypes)
# 行と列の個数をとる
print(df.shape)
# 対象範囲のデータを抽出
df_kt = df[(df["lon"]>x2) & (df["lon"]<x1) & (df["lat"]>y2) & (df["lat"]<y1)]
# 5次メッシュコード追加
df_kt['meshcode'] = ju.to_meshcode(df_kt.lat, df_kt.lon, 5)
print("---データ抽出後---")
# 最初の5個の値を表示する
print(df_kt.head(5))
# 各列のdtypeを見る
print(df_kt.dtypes)
# 行と列の個数をとる
print(df_kt.shape)
# 出力CSVファイルに書き込む
df_kt.to_csv(f, index=False)
print(u'処理終了')
출력 결과 다이어그램
출력한 csv 파일(5차 메쉬당 5분간 강수량)과 5차 메쉬 모양 파일 을 바탕으로 QGIS 으로 도화합니다.
Reference
이 문제에 관하여(【비망록】 CSV 파일의 위도·경도를 바탕으로 대상 범위의 데이터 추출 및 메쉬 코드를 추가하는 스크립트를 작성했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/syanseto/items/3d20b49fea6ab9690104
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【비망록】 CSV 파일의 위도·경도를 바탕으로 대상 범위의 데이터 추출 및 메쉬 코드를 추가하는 스크립트를 작성했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/syanseto/items/3d20b49fea6ab9690104텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)