Last active
November 11, 2017 06:16
-
-
Save jkatagi/0398b80aeceb6f82292b832c5cec5c39 to your computer and use it in GitHub Desktop.
get dojo-suibun, first_tank_value, second_tank_value near these area: # Tajimi, Gihu, Ogaki, Ibigawa, Sekigahara, Minogamo, Nagoya, Ibukiyama and Maibara.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
# 2017/02/27 Jin Katagi | |
# get dojo-suibun, first_tank_value, second_tank_value near these area: | |
# Tajimi, Gihu, Ogaki, Ibigawa, Sekigahara, Minogamo, Nagoya, Ibukiyama and Maibara. | |
# usage) $./arrange.py | |
# output) | |
# day, lat, lon, dojo-suibun, first_tank_value, second_tank_value | |
import pytz | |
import datetime | |
import pandas as pd | |
import csv | |
def UTC2JST(year, month, day, hour, minute): | |
""" convert UTC to JST. | |
return: | |
time_JST_fmt (str) : yyyy-mm-dd HH:MM:SS | |
""" | |
# set time zone | |
time_zone_JST = pytz.timezone("Asia/Tokyo") | |
time_zone_UTC = pytz.utc | |
time = datetime.datetime(year, month, day, hour, minute) | |
time_UTC = time_zone_UTC.localize(time) | |
# convet time JST time zone | |
time_JST = time_UTC.astimezone(time_zone_JST) | |
# arrange format | |
fmt = '%Y-%m-%d %H:%M:%S' | |
time_JST_fmt = time_JST.strftime(fmt) | |
return time_JST_fmt | |
def get_ymdhM(year_list, month_list, hour_list, minute_list): | |
""" get year, month, day, hour, minute from list. | |
input: | |
return: | |
ymhdM_list: list of year, month, day, hour, minute.""" | |
ymdhM_list = [] | |
for year in year_list: | |
for month in month_list: | |
if (month == 6 or month == 9): | |
day_list=range(1, 31) | |
else: | |
day_list=range(1,32) | |
for day in day_list: | |
for hour in hour_list: | |
for minute in minute_list: | |
ymdhM_list.append((year, month, day, hour, minute)) | |
return ymdhM_list | |
def main(): | |
area_list = ['Tajimi','Gifu','Ogaki','Ibigawa','Sekigahara','Minogamo','Nagoya','Ibukiyama','Maibara'] | |
# "area" : (lat, lon) | |
area_dict = { | |
"Tajimi" :(137.094, 35.325), | |
"Gifu" :(136.781, 35.425), | |
"Ogaki" :(136.594, 35.325), | |
"Ibigawa" :(136.594, 35.475), | |
"Sekigahara":(136.469, 35.375), | |
"Minogamo" :(137.031, 35.425), | |
"Nagoya" :(136.969, 35.175), | |
"Ibukiyama" :(136.406, 35.425), | |
"Maibara" :(136.344, 35.375) | |
} | |
year_list = [2016] # 2016 | |
month_list = range(6, 10) # 6, 7, 8, 9 | |
hour_list = range(0, 24) # 0, 1, ..., 23 | |
minute_list = [0, 30] # 0, 30 | |
tank_list = ["number0", "number1", "number2"] | |
ofile_dir="./txt_output_JST" | |
for area in area_list: | |
ofile = area + "_near.s-moist.csv" | |
# get lat lon from area_dict | |
lon, lat = area_dict[area] | |
ymdhM_list = get_ymdhM(year_list, month_list, hour_list, minute_list) | |
for ymdhM in ymdhM_list: | |
year, month, day, hour, minute = ymdhM | |
ifile_dir="/home/jinkatagi/takane/grib/script/wgrib2/output/" + str(year) | |
whattime = UTC2JST(year, month, day, hour, minute) | |
# 0 padding | |
month_padding = str('{0:02d}'.format(month)) | |
day_padding = str('{0:02d}'.format(day)) | |
hour_padding = str('{0:02d}'.format(hour)) | |
minute_padding = str('{0:02d}'.format(minute)) | |
name_day = str(year) + month_padding + day_padding + hour_padding + minute_padding | |
tank_value = [] | |
for tank in tank_list: | |
file_name = "Z__C_RJTD_" + name_day +"00_SRF_GPV_Gll5km_Psw_ANAL_grib2_" + tank + ".txt" | |
df_tank = pd.read_csv(ifile_dir +"/" + file_name, header=None) | |
# get tank value | |
tank_value = df_tank[(df_tank[0] == lon) & (df_tank[1] == lat)][2].values[0] | |
# append tank value to list | |
tank_value.append(tank_value) | |
# writer as csv file | |
with open(ofile_dir + "/" + "ofile", 'a') as csvfile: | |
writer = csv.writer(csvfile, delimiter=',') | |
writer.writerow([whattime, lat, lon, tank_value[0], tank_value[1], tank_value[2]]) | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment