def vec_0(): dirs = "../result/mean_vector/mean_ocean_currents/" try: os.makedirs(dirs) except: print('directory {} already exists'.format(dirs)) for i, start in enumerate(start_list): print("****************** {}/{} *******************".format(i+1, M)) _, _, _, data = main_data( start, start, span=30, get_columns=["coeff"], region=None, accumulate=False ) save_name = dirs + "mean_ocean_currents_" + str(start)[:6] + ".png" #visualize.pyで関数を選ぶ visualize.plot_map_once( data.loc[:, ["mean_ocean_u", "mean_ocean_v"]], data_type="type_wind", save_name=save_name, show=False, vmax=None, vmin=None, cmap=None ) print("\n")
def H_R2_e2_30(): dirs_R2 = "../result_h/R2/R2_30/" mkdir(dirs_R2) dirs_e2 = "../result_h/epsilon2/epsilon2_30/" mkdir(dirs_e2) for i, start in enumerate(start_list): print("****************** {}/{} *******************".format( i + 1, M)) _, _, _, data = main_data(start, start, span=30, get_columns=["hermert"], region=None, accumulate=False) save_name_R2 = dirs_R2 + str(start)[:6] + ".png" visualize.plot_map_once(data["R2"], data_type="type_non_wind", save_name=save_name_R2, show=False, vmax=1, vmin=0, cmap=plt.cm.jet) save_name_e2 = dirs_e2 + str(start)[:6] + ".png" visualize.plot_map_once(data["epsilon2"], data_type="type_non_wind", save_name=save_name_e2, show=False, vmax=None, vmin=None, cmap=plt.cm.jet) print("\n")
def H_angle_30_high_coef(): dirs = "../result_h/angle/angle_30_high_coef/" mkdir(dirs) for i, start in enumerate(start_list): print("****************** {}/{} *******************".format(i+1, M)) date_ax, date_ax_str, skipping_date_str, data = main_data( start, start, span=30, get_columns=["hermert"], region=None, accumulate=False ) data.theta[data.R2<0.4**2] = np.nan save_name = dirs + "angle_30_high_coef_" + str(start)[:6] + ".png" visualize.plot_map_once( data["theta"], data_type="type_non_wind", save_name=save_name, show=False, vmax=180, vmin=-180, cmap=cm_angle ) print("\n")
def H_A_30(): dirs = "../result_h/A/A_30/" mkdir(dirs) for i, start in enumerate(start_list): print("****************** {}/{} *******************".format(i+1, M)) _, _, _, data = main_data( start, start, span=30, get_columns=["hermert"], region=None, accumulate=False ) save_name = dirs + str(start)[:6] + ".png" visualize.plot_map_once( data["A"], data_type="type_non_wind", save_name=save_name, show=False, vmax=0.025, vmin=0, cmap=plt.cm.jet ) print("\n")
def angle_1(): dirs = "../result/angle/angle_30_modified_test/" try: os.makedirs(dirs) except: print('directory {} already exists'.format(dirs)) for i, start in enumerate(start_list): print("****************** {}/{} *******************".format(i+1, M)) _, _, _, data = main_data( start, start, span=30, get_columns=["coeff"], region=None, accumulate=False ) data[(data.A<0) & (data.angle<0)] += 180 data[(data.A<0) & (data.angle>0)] -= 180 #data.angle.loc[data.coef**2<0.4**2] = np.nan #data[data.data_idx==0.] = np.nan save_name = dirs + "angle_30_modified_" + str(start)[:6] + ".png" #visualize.pyで関数を選ぶ visualize.plot_map_once( data["angle"], data_type="type_non_wind", save_name=save_name, show=False, vmax=180, vmin=-180, cmap=cm_angle ) print("\n")
def A_2(): dirs = "../result/A/A_30_modified_ocean/" try: os.makedirs(dirs) except: print('directory {} already exists'.format(dirs)) for i, start in enumerate(start_list): print("****************** {}/{} *******************".format(i+1, M)) _, _, _, data = main_data( start, start, span=30, get_columns=["coeff"], region=None, accumulate=False ) data.A.loc[data.A<0] *= -1 data.A.loc[data.data_idx==0.] = np.nan save_name = dirs + str(start)[:6] + ".png" visualize.plot_map_once( data["A"], data_type="type_non_wind", save_name=save_name, show=False, vmax=0.025, vmin=0, cmap="jet" ) print("\n")
def A_5(): A_by_year_list = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"] dirs = "../result/A/A_by_year_modified/" try: os.makedirs(dirs) except: print('directory {} already exists'.format(dirs)) for item in A_by_year_list: fname = "../data/csv_A_by_year/ssc_amsr_ads" + item + "_fin.csv" df_coeffs = pd.read_csv(fname, sep=',', dtype='float32') df_coeffs.columns = ["index", "angle", "mean_ocean_u", "mean_ocean_v", "A", "coef", "data_num", "mean_ice_u", "mean_ice_v", "mean_w_u", "mean_w_v"] df_coeffs = df_coeffs.drop("index", axis=1) df_coeffs[df_coeffs==999.] = np.nan df_coeffs.A[df_coeffs.A<0] *= -1 save_name = dirs + "A_" + item + ".png" visualize.plot_map_once( df_coeffs["A"], data_type="type_non_wind", save_name=save_name, show=False, vmax=0.025, vmin=0, cmap="jet" ) print("\n")
def H_A_and_theta_by_year(): A_by_year_list = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"] dirs_A = "../result_h/A/A_by_year/" mkdir(dirs_A) dirs_theta = "../result_h/theta/theta_by_year/" mkdir(dirs_theta) for item in A_by_year_list: fname = "../data/csv_Hermert_by_year/Hermert_by_year_" + item + ".csv" df_coeffs = pd.read_csv(fname, sep=',', dtype='float32') save_name_A = dirs_A + "Hermert_" + item + ".png" visualize.plot_map_once( df_coeffs["A"], data_type="type_non_wind", save_name=save_name_A, show=False, vmax=0.025, vmin=0, cmap=plt.cm.jet ) save_name_theta = dirs_theta + "Hermert_" + item + ".png" visualize.plot_map_once( df_coeffs["theta"], data_type="type_non_wind", save_name=save_name_theta, show=False, vmax=180, vmin=-180, cmap=cm_angle_2 ) print("\n")
def w_1(): wind_files = sorted(glob.glob("../data/csv_iw/*.csv")) lon = latlon_ex.Lon lat = latlon_ex.Lat lon = np.array(lon) lat = np.array(lat) dirs = "../result/test_ice_wind/" try: os.makedirs(dirs) except: print('directory {} already exists'.format(dirs)) for item in wind_files: data = calc_data.get_1day_iw_data(item) save_name = dirs + item[15:21] + ".png" print(save_name) visualize.plot_map_once( data.loc[:, ["iw_u", "iw_v"]], data_type="type_wind", show=False, save_name=save_name, vmax=None, vmin=None, cmap=None)
def H_vec_mean_ocean_currents(): dirs = "../result_h/mean_vector/mean_ocean_currents/" mkdir(dirs) for i, start in enumerate(start_list): print("****************** {}/{} *******************".format(i+1, M)) _, _, _, data = main_data( start, start, span=30, get_columns=["hermert"], region=None, accumulate=False ) save_name = dirs + "mean_ocean_currents_" + str(start)[:6] + ".png" visualize.plot_map_once( data.loc[:, ["ocean_u", "ocean_v"]], data_type="type_wind", save_name=save_name, show=False, vmax=None, vmin=None, cmap=None ) print("\n")
def compare_2_both_30_csv(): dirs = "../result_h/test/compare_2_both_30_csv/" if not os.path.exists(dirs): os.makedirs(dirs) y_list = [ "03", "04", "05", "06", "07", "08", "09", "10", "13", "14", "15", "16" ] month_list = [ "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" ] plot_kw_list = ["ocean_u", "ocean_v", "A", "theta", "R2", "epsilon2"] v_lim_list = [(-0.01, 0.01), (-0.01, 0.01), (-0.0001, 0.0001), (-0.01, 0.01), (-0.0001, 0.0001), (-0.01, 0.01)] for month in month_list: for year in y_list: print(year + month) file_mat = "../data/csv_Helmert_both_30/Helmert_both_30_20" + year + month + ".csv" df_mat = pd.read_csv(file_mat) file_non_mat = "../data/csv_Helmert_30_non_mat/Helmert_30_non_mat_20" + year + month + ".csv" df_non_mat = pd.read_csv(file_non_mat) for i, kw in enumerate(plot_kw_list): N_c_h = df_mat[kw].values N_c_c = df_non_mat[kw].values N_c_diff = N_c_h - N_c_c save_name = dirs + kw + "_" + year + month + ".png" visualize.plot_map_once(N_c_diff, data_type="type_non_wind", show=False, save_name=save_name, vmax=v_lim_list[i][1], vmin=v_lim_list[i][0], cmap=plt.cm.jet)
def map_corr_median(): dirs = "../result_h/corr_map/corr_median/" if not os.path.exists(dirs): os.makedirs(dirs) y_list = [ "03", "04", "05", "06", "07", "08", "09", "10", "13", "14", "15", "16" ] month_list = [ "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" ] corr_all = [] for month in month_list: file_list = sorted( glob.glob("../data/csv_Helmert_both_30/Helmert_both_30_*" + month + ".csv")) accumulate_data = [] for file in file_list: data = pd.read_csv(file) data = data.loc[:, [ "A", "theta", "R2", "epsilon2", "ic0_30_median", "sit_30_median" ]] print(data.columns) print(data.dropna().head(2)) print(np.array(data.dropna())[0:2, :]) accumulate_data.append(np.array(data)) accumulate_data = np.array(accumulate_data) #data_A_ic0 = accumulate_data[:, :, [0,4]] corr_list = [] for i in range(145**2): data_A = accumulate_data[:, i, 0] #data_A = data_A[~np.isnan(data_A)] data_ic0 = accumulate_data[:, i, 4] tmp_df = pd.DataFrame({"data_A": data_A, "data_ic0": data_ic0}) if len(tmp_df.dropna()) <= 5: corr = np.nan else: corr = tmp_df.dropna().corr() corr = np.array(corr)[0, 1] #print(i, corr) corr_list.append(corr) #corr_all.append(corr_list) save_name = dirs + "ic0_A_median_" + month + ".png" print(save_name) visualize.plot_map_once(corr_list, data_type="type_non_wind", show=False, save_name=save_name, vmax=1, vmin=-1, cmap=plt.cm.jet)
def test_SIT(): filename = "../data/csv_sit/SIT_20020813.csv" data = calc_data.get_1day_sit_data(filename) data[data >= 10001] = np.nan visualize.plot_map_once(data, data_type="type_non_wind", save_name=None, show=True, vmax=None, vmin=None, cmap=plt.cm.jet) """
def plot_data_corr_sit_1day_delay(): dirs_corr_map = "../result_h_1day_delay/corr_map/" dirs_corr_map_search_grid = "../result_h_1day_delay/corr_map_search_grid/" if not os.path.exists(dirs_corr_map): os.makedirs(dirs_corr_map) if not os.path.exists(dirs_corr_map_search_grid): os.makedirs(dirs_corr_map_search_grid) data_ex_dir = "../data/csv_Helmert_30_1day_delay/Helmert_30_1day_delay_200301.csv" data_ex = pd.read_csv(data_ex_dir) month_list = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"] for month in month_list: file_list = sorted(glob.glob("../data/csv_Helmert_30_1day_delay/Helmert_30_1day_delay_*" + month + ".csv")) accumulate_data = [] for file in file_list: data = pd.read_csv(file) data = data.loc[:, ["A", "theta", "R2", "epsilon2", "ic0_30", "sit_30"]] print(data.columns) print(data.dropna().head(2)) print(np.array(data.dropna())[0:2,:]) accumulate_data.append(np.array(data)) accumulate_data = np.array(accumulate_data) #data_A_ic0 = accumulate_data[:, :, [0,4]] corr_list = [] for i in range(145**2): data_A = accumulate_data[:, i, 0] #data_A = data_A[~np.isnan(data_A)] data_ic0 = accumulate_data[:, i, 5] tmp_df = pd.DataFrame({"data_A": data_A, "data_sit": data_ic0}) if len(tmp_df.dropna()) <= 5: corr = np.nan else: corr = tmp_df.dropna().corr() corr = np.array(corr)[0,1] #print(i, corr) corr_list.append(corr) save_name_corr = dirs_corr_map + "sit_A_" + month + ".png" visualize.plot_map_once(corr_list, data_type="type_non_wind", show=False, save_name=save_name_corr, vmax=1, vmin=-1, cmap=cm_angle_2) """
def vec_1(): dirs = "../result/mean_vector/mean_wind/" try: os.makedirs(dirs) except: print('directory {} already exists'.format(dirs)) for i, start in enumerate(start_list): print("******************* {}/{} *******************".format(i+1, M)) month_end = start_list_plus_1month[i+1] month_end = date(month_end//10000, (month_end%10000)//100, (month_end%10000)%100) - timedelta(days=1) end = start + month_end.day - 1 date_ax, date_ax_str, skipping_date_str, data = main_data( start, end, span=30, get_columns=["w"], region=None, accumulate=True ) data_array = np.array(data) #data_array_1 = np.ma.masked_invalid(data_array) #data_count_nan = np.sum(data_array_1.recordmask, axis=0) #date_ax_len = len(date_ax) #data_ave_sum = np.sum(data_array, axis=0) data_ave = np.nanmean(data_array, axis=0) #data_ave[date_ax_len-data_count_nan<=20] = np.nan data_ave = pd.DataFrame(data_ave) data_ave.columns = ["w_speed", "w_u", "w_v"] print(data_ave.head(3)) save_name = dirs + "mean_wind_" + str(start)[:6] + ".png" visualize.plot_map_once( data_ave.loc[:, ["w_u", "w_v"]], data_type="type_wind", save_name=save_name, show=False, vmax=None, vmin=None, cmap=None ) print("\n")
def H_angle_30(): dirs_original = "../result_h/angle/angle_30/" mkdir(dirs_original) dirs_h_coef = "../result_h/angle/angle_30_high_coef/" mkdir(dirs_h_coef) for i, start in enumerate(start_list): print("****************** {}/{} *******************".format(i+1, M)) _, _, _, data = main_data( start, start, span=30, get_columns=["hermert"], region=None, accumulate=False ) #angle_30 save_name_original = dirs_original + "angle_30_" + str(start)[:6] + ".png" visualize.plot_map_once( data["theta"], data_type="type_non_wind", save_name=save_name_original, show=False, vmax=180, vmin=-180, cmap=cm_angle ) #angle_30_high_coef data.loc[data.R2<threshold_R2, data.theta] = np.nan save_name = dirs_h_coef + "angle_30_high_coef_" + str(start)[:6] + ".png" visualize.plot_map_once( data["theta"], data_type="type_non_wind", save_name=save_name, show=False, vmax=180, vmin=-180, cmap=cm_angle ) print("\n")
def H_A_and_theta_by_year(): A_by_year_list = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"] dirs_A = "../result_h/A/A_by_year/" mkdir(dirs_A) dirs_theta = "../result_h/theta/theta_by_year/" mkdir(dirs_theta) for item in A_by_year_list: fname = "../data/csv_Hermert_by_year/Hermert_by_year_" + item + ".csv" df_coeffs = pd.read_csv(fname, sep=',', dtype='float32') #df_coeffs.columns = ["index", "angle", "mean_ocean_u", "mean_ocean_v", "A", "coef", "data_num", "mean_ice_u", "mean_ice_v", "mean_w_u", "mean_w_v"] #df_coeffs = df_coeffs.drop("index", axis=1) #df_coeffs[df_coeffs==999.] = np.nan save_name_A = dirs_A + "Hermert_" + item + ".png" visualize.plot_map_once( df_coeffs["A"], data_type="type_non_wind", save_name=save_name_A, show=False, vmax=0.025, vmin=0, cmap=plt.cm.jet ) save_name_theta = dirs_theta + "Hermert_" + item + ".png" visualize.plot_map_once( df_coeffs["theta"], data_type="type_non_wind", save_name=save_name_theta, show=False, vmax=180, vmin=-180, cmap=cm_angle_1 ) print("\n")
def H_A_by_day_30(): """ 基本的に古い方のA_by_day_30と変わらないが,こっちの方がちょっとだけ正確かも """ dirs = "../result_h/A/A_by_day_30/" mkdir(dirs) for i, start in enumerate(start_list): print("******************* {}/{} *******************".format(i+1, M)) month_end = start_list_plus_1month[i+1] month_end = date(month_end//10000, (month_end%10000)//100, (month_end%10000)%100) - timedelta(days=1) end = start + month_end.day - 1 date_ax, date_ax_str, skipping_date_str, data = main_data( start, end, span=30, get_columns=["ex_2"], region=None, accumulate=True ) data_array = np.array(data) data_ave = np.nanmean(data_array, axis=0) #A_by_dayなので0列目 data_ave = pd.DataFrame(data_ave[:, 0]) data_ave.columns = ["A_by_day"] save_name = dirs + "A_by_day_30_" + str(start)[:6] + ".png" visualize.plot_map_once( data_ave["A_by_day"], data_type="type_non_wind", save_name=save_name, show=False, vmax=0.025, vmin=None, cmap=plt.cm.jet ) print("\n")
def plot_data_map_1day_delay(num): dirs_A_30 = "../result_h_1day_delay/A/A_30/" dirs_R2_30 = "../result_h_1day_delay/R2/R2_30/" dirs_theta_30 = "../result_h_1day_delay/theta/theta_30/" dirs_epsilon2_30 = "../result_h_1day_delay/epsilon2/epsilon2_30/" dirs_A_90 = "../result_h_1day_delay/A/A_90/" dirs_R2_90 = "../result_h_1day_delay/R2/R2_90/" dirs_theta_90 = "../result_h_1day_delay/theta/theta_90/" dirs_epsilon2_90 = "../result_h_1day_delay/epsilon2/epsilon2_90/" dirs_A_by_year = "../result_h_1day_delay/A/A_by_year/" dirs_R2_by_year = "../result_h_1day_delay/R2/R2_by_year/" dirs_theta_by_year = "../result_h_1day_delay/theta/theta_by_year/" dirs_epsilon2_by_year = "../result_h_1day_delay/epsilon2/epsilon2_by_year/" dirs_list = [ dirs_A_30, dirs_R2_30, dirs_theta_30, dirs_epsilon2_30, dirs_A_90, dirs_R2_90, dirs_theta_90, dirs_epsilon2_90, dirs_A_by_year, dirs_R2_by_year, dirs_theta_by_year, dirs_epsilon2_by_year ] for dirs in dirs_list: if not os.path.exists(dirs): os.makedirs(dirs) file_list_30 = sorted(glob.glob("../data/csv_Helmert_30_1day_delay/Helmert_30_1day_delay_*.csv")) file_list_90 = sorted(glob.glob("../data/csv_Helmert_90_1day_delay/Helmert_90_1day_delay_*.csv")) file_list_year = sorted(glob.glob("../data/csv_Helmert_by_year_1day_delay/Helmert_by_year_1day_delay_*.csv")) if num == 1: for file in file_list_30: data = pd.read_csv(file) save_name_A = dirs_A_30 + file[56:62] + ".png" print(save_name_A) visualize.plot_map_once(np.array(data["A"]), data_type="type_non_wind", show=False, save_name=save_name_A, vmax=0.02, vmin=0, cmap=plt.cm.jet) save_name_theta = dirs_theta_30 + file[56:62] + ".png" print(save_name_theta) visualize.plot_map_once(np.array(data["theta"]), data_type="type_non_wind", show=False, save_name=save_name_theta, vmax=180, vmin=-180, cmap=cm_angle_2) save_name_R2 = dirs_R2_30 + file[56:62] + ".png" print(save_name_R2) visualize.plot_map_once(np.array(data["R2"]), data_type="type_non_wind", show=False, save_name=save_name_R2, vmax=1, vmin=0, cmap=plt.cm.jet) save_name_e2 = dirs_epsilon2_30 + file[56:62] + ".png" print(save_name_e2) visualize.plot_map_once(np.array(data["epsilon2"]), data_type="type_non_wind", show=False, save_name=save_name_e2, vmax=1.5, vmin=0, cmap=plt.cm.jet) elif num == 2: for file in file_list_90: data = pd.read_csv(file) save_name_A = dirs_A_90 + file[56:62] + ".png" print(save_name_A) visualize.plot_map_once(np.array(data["A"]), data_type="type_non_wind", show=False, save_name=save_name_A, vmax=0.02, vmin=0, cmap=plt.cm.jet) save_name_theta = dirs_theta_90 + file[56:62] + ".png" print(save_name_theta) visualize.plot_map_once(np.array(data["theta"]), data_type="type_non_wind", show=False, save_name=save_name_theta, vmax=180, vmin=-180, cmap=cm_angle_2) save_name_R2 = dirs_R2_90 + file[56:62] + ".png" print(save_name_R2) visualize.plot_map_once(np.array(data["R2"]), data_type="type_non_wind", show=False, save_name=save_name_R2, vmax=1, vmin=0, cmap=plt.cm.jet) save_name_e2 = dirs_epsilon2_90 + file[56:62] + ".png" print(save_name_e2) visualize.plot_map_once(np.array(data["epsilon2"]), data_type="type_non_wind", show=False, save_name=save_name_e2, vmax=1.5, vmin=0, cmap=plt.cm.jet) elif num == 3: for file in file_list_year: data = pd.read_csv(file) save_name_A = dirs_A_by_year + file[66:68] + ".png" print(save_name_A) visualize.plot_map_once(np.array(data["A"]), data_type="type_non_wind", show=False, save_name=save_name_A, vmax=0.02, vmin=0, cmap=plt.cm.jet) save_name_theta = dirs_theta_by_year + file[66:68] + ".png" print(save_name_theta) visualize.plot_map_once(np.array(data["theta"]), data_type="type_non_wind", show=False, save_name=save_name_theta, vmax=180, vmin=-180, cmap=cm_angle_2) save_name_R2 = dirs_R2_by_year + file[66:68] + ".png" print(save_name_R2) visualize.plot_map_once(np.array(data["R2"]), data_type="type_non_wind", show=False, save_name=save_name_R2, vmax=1, vmin=0, cmap=plt.cm.jet) save_name_e2 = dirs_epsilon2_by_year + file[66:68] + ".png" print(save_name_e2) visualize.plot_map_once(np.array(data["epsilon2"]), data_type="type_non_wind", show=False, save_name=save_name_e2, vmax=1.5, vmin=0, cmap=plt.cm.jet)
np.savetxt(savename, sit, delimiter=',') """ #landmask_low_NPのテスト filename = "../../data/landmask_low_NP" fp = open(filename, 'rb') ary = np.fromfile(fp, '<b', -1) savename = filename + ".csv" #np.savetxt(savename, ary, delimiter=',') #ocean_grid145との比較 data_0 = ary ocean_0 = np.where(data_0 == 0.)[0] data_1 = ocean_grid_145 ocean_1 = np.where(data_1 == 1.)[0] print(len(ocean_0)) print(len(ocean_1)) """ data, ic0_idx_t = calc_data.get_1day_ic0_data(savename, grid900to145_file_name) visualize.plot_map_once(data, data_type="type_non_wind", show=True, save_name=None, vmax=None, vmin=None) """ #visualize.plot_ic0_900(savename, None, True)
def plot_data_corr_sit_1day_delay(): dirs_corr_map = "../result_h_1day_delay/corr_map/" dirs_corr_map_search_grid = "../result_h_1day_delay/corr_map_search_grid/" if not os.path.exists(dirs_corr_map): os.makedirs(dirs_corr_map) if not os.path.exists(dirs_corr_map_search_grid): os.makedirs(dirs_corr_map_search_grid) data_ex_dir = "../data/csv_Helmert_30_1day_delay/Helmert_30_1day_delay_200301.csv" data_ex = pd.read_csv(data_ex_dir) month_list = [ "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" ] for month in month_list: file_list = sorted( glob.glob( "../data/csv_Helmert_30_1day_delay/Helmert_30_1day_delay_*" + month + ".csv")) accumulate_data = [] for file in file_list: data = pd.read_csv(file) data = data.loc[:, [ "A", "theta", "R2", "epsilon2", "ic0_30", "sit_30" ]] print(data.columns) print(data.dropna().head(2)) print(np.array(data.dropna())[0:2, :]) accumulate_data.append(np.array(data)) accumulate_data = np.array(accumulate_data) #data_A_ic0 = accumulate_data[:, :, [0,4]] corr_list = [] for i in range(145**2): data_A = accumulate_data[:, i, 0] #data_A = data_A[~np.isnan(data_A)] data_ic0 = accumulate_data[:, i, 5] tmp_df = pd.DataFrame({"data_A": data_A, "data_sit": data_ic0}) if len(tmp_df.dropna()) <= 5: corr = np.nan else: corr = tmp_df.dropna().corr() corr = np.array(corr)[0, 1] #print(i, corr) corr_list.append(corr) save_name_corr = dirs_corr_map + "sit_A_" + month + ".png" visualize.plot_map_once(corr_list, data_type="type_non_wind", show=False, save_name=save_name_corr, vmax=1, vmin=-1, cmap=plt.cm.jet) df_corr = pd.DataFrame({"corr": corr_list}) df_corr = pd.concat([ latlon_ex, df_corr, data_ex.loc[:, ["coastal_region_1", "coastal_region_2", "area_label"]] ], axis=1) corr_grid_pos = df_corr.loc[(df_corr["corr"] >= 0.7) & ( df_corr["area_label"].isin([0, 1, 4, 5, 7, 8, 10, 12, 16]) ), :].dropna().index corr_grid_neg = df_corr.loc[(df_corr["corr"] <= -0.7) & ( df_corr["area_label"].isin([0, 1, 4, 5, 7, 8, 10, 12, 16]) ), :].dropna().index try: plot_grids_pos = random.sample( np.array(corr_grid_pos).tolist(), 15) plot_grids_neg = random.sample( np.array(corr_grid_neg).tolist(), 15) except: plot_grids_pos = random.sample(np.array(corr_grid_pos).tolist(), 5) plot_grids_neg = random.sample(np.array(corr_grid_neg).tolist(), 5) for grid in plot_grids_pos: plot_A = accumulate_data[:, grid, 0] plot_ic0 = accumulate_data[:, grid, 5] sns.set_style("darkgrid") sns.jointplot(x=plot_ic0, y=plot_A, kind="reg") save_name = dirs_corr_map_search_grid + "sit_A_pos_grid_" + month + "_" + str( grid) + ".png" plt.savefig(save_name) plt.close() for grid in plot_grids_neg: plot_A = accumulate_data[:, grid, 0] plot_ic0 = accumulate_data[:, grid, 5] sns.set_style("darkgrid") sns.jointplot(x=plot_ic0, y=plot_A, kind="reg") save_name = dirs_corr_map_search_grid + "sit_A_neg_grid_" + month + "_" + str( grid) + ".png" plt.savefig(save_name) plt.close() m = Basemap(lon_0=180, boundinglat=65, resolution='l', projection='npstere') m.drawcoastlines(color='0.15') m.fillcontinents(color='#555555') lon = np.array(latlon_ex.Lon) lat = np.array(latlon_ex.Lat) x, y = m(lon, lat) m.scatter(x[plot_grids_pos], y[plot_grids_pos], marker='o', color="r", s=2, alpha=0.9) m.scatter(x[plot_grids_neg], y[plot_grids_neg], marker='o', color="b", s=2, alpha=0.9) for grid in plot_grids_pos: plt.annotate(str(grid), xy=(x[grid], y[grid]), xycoords='data', xytext=(x[grid], y[grid]), textcoords='data', color='r') for grid in plot_grids_neg: plt.annotate(str(grid), xy=(x[grid], y[grid]), xycoords='data', xytext=(x[grid], y[grid]), textcoords='data', color='b') plt.savefig(dirs_corr_map_search_grid + "sit_A_grid_info_" + month + ".png", dpi=200) plt.close()
region=None, accumulate=False) #print(data.head()) #data = data["A"] #print(len(data)) # latlon_exで絞り込む場合,ここに処理を書く #data = pd.concat([latlon_ex, data], axis=1) data.loc[data.A < 0] *= -1 data[data.data_idx == 0.] = np.nan save_name = "../result/A_30/A_30_" + str(start)[:6] + ".png" #visualize.pyで関数を選ぶ visualize.plot_map_once(data["A"], data_type="type_non_wind", save_name=save_name, show=False, vmax=0.025) print("\n") """ #A_by_dayのマップを月ごとに出力して保存するコード start_list = [] n = 20000000 y_list = [3,4,5,6,7,8,9,10,13,14,15,16] for i in y_list: m = n + i*10000 for j in range(12): start_list.append(m + (j+1)*100 + 1) start_ex_list = [20170101, 20170201, 20170301, 20170401, 20170501, 20170601,20170701,20170801] start_list = np.sort(np.array(list(set(start_list)|set(start_ex_list)))).tolist() M = len(start_list)
data_array_1 = np.ma.masked_invalid(data_array) data_count_nan = np.sum(data_array_1.recordmask, axis=0) date_ax_len = len(date_ax) data_ave_sum = np.sum(data_array, axis=0) data_ave_sum[date_ax_len - data_count_nan <= 20] = np.nan data_ave = data_ave_sum / (date_ax_len - data_count_nan) #A_by_dayなので0列目 data_ave = pd.DataFrame(data_ave) data_ave.columns = ["w_speed", "w_u", "w_v"] print(data_ave.head(3)) save_name = "../result/mean_vector/mean_wind/mean_wind_" + str( start)[:6] + ".png" visualize.plot_map_once(data_ave.loc[:, ["w_u", "w_v"]], data_type="type_wind", save_name=save_name, show=False, vmax=None, vmin=None) print("\n") """ #海流の平均のマップ出力 start_list = [] n = 20000000 y_list = [3,4,5,6,7,8,9,10,13,14,15,16] for i in y_list: m = n + i*10000 for j in range(12): start_list.append(m + (j+1)*100 + 1) start_ex_list = [20170101, 20170201, 20170301, 20170401, 20170501, 20170601,20170701,20170801] start_list = np.sort(np.array(list(set(start_list)|set(start_ex_list)))).tolist() M = len(start_list)
def A_6(): start_list = [] n = 20000000 y_list = [3,4,5,6,7,8,9,10,13,14,15,16] for i in y_list: m = n + i*10000 for j in range(12): start_list.append(m + (j+1)*100 + 1) start_ex_list = [20170101, 20170201, 20170301, 20170401, 20170501, 20170601,20170701,20170801] start_list = np.sort(np.array(list(set(start_list)|set(start_ex_list)))).tolist() M = len(start_list) start_list_plus_1month = start_list + [20170901] dirs = "../result/A/A_by_day_30/" try: os.makedirs(dirs) except: print('directory {} already exists'.format(dirs)) for i, start in enumerate(start_list): print("******************* {}/{} *******************".format(i+1, M)) month_end = start_list_plus_1month[i+1] month_end = date(month_end//10000, (month_end%10000)//100, (month_end%10000)%100) - timedelta(days=1) end = start + month_end.day - 1 date_ax, date_ax_str, skipping_date_str, data = main_data( start, end, span=30, get_columns=["ex_1"], region=None, accumulate=True ) data_array = np.array(data) """ data_array = np.ma.masked_invalid(data_array) data_count_nan = np.sum(data_array.recordmask, axis=0) #print(data_count_nan) #print(len(date_ax)) #print(len(date_ax_str)) data_ave = np.sum(data_array, axis=0) / (len(date_ax)-data_count_nan) """ data_ave = np.nanmean(data_array, axis=0) #A_by_dayなので0列目 data_ave = pd.DataFrame(data_ave[:, 0]) #print(data_ave) data_ave.columns = ["A_by_day"] # 閾値を設ける場合 #data_ave.loc[data_ave.A_by_day>=0.05, :] = np.nan # data_aveにLabelとかNameをくっつける場合、以下のdataをmain_plotに渡す # Labelなどで絞り込む場合は、ここに操作を付け足す #data = pd.concat([latlon_ex, data], axis=1) save_name = dirs + "A_by_day_30_" + str(start)[:6] + ".png" visualize.plot_map_once( data_ave["A_by_day"], data_type="type_non_wind", save_name=save_name, show=False, vmax=0.025, vmin=None, cmap="jet" ) print("\n")
def map_corr_slide_month(slide): dirs = "../result_h/corr_map/corr_slide_month/" if not os.path.exists(dirs): os.makedirs(dirs) y_list = [ "03", "04", "05", "06", "07", "08", "09", "10", "13", "14", "15", "16" ] month_list = [ "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" ] product_ym = list(itertools.product(y_list, month_list)) data_dict = {} for month in month_list: data_dict[month] = {} for year in y_list: data_dict[month][year] = {} data_dict[month][year]["ym_A"] = np.array([np.nan] * (145**2)) data_dict[month][year]["ym_ic0"] = np.array([np.nan] * (145**2)) data_dict[month][year]["data_A"] = np.array([np.nan] * (145**2)) data_dict[month][year]["data_ic0"] = np.array([np.nan] * (145**2)) for k, item in enumerate(product_ym): if k + slide > len(product_ym) - 1: break x_ym = product_ym[k][0] + product_ym[k][1] y_ym = product_ym[k + slide][0] + product_ym[k + slide][1] print(x_ym, y_ym) if (k <= 95) & (k + slide > 95): print("\tcontinue: {}".format((x_ym, y_ym))) data_dict[product_ym[k][1]][product_ym[k][0]]["ym_A"] = x_ym data_dict[product_ym[k][1]][product_ym[k][0]]["ym_ic0"] = y_ym data_dict[product_ym[k][1]][product_ym[k][0]]["data_A"] = np.array( [np.nan] * (145**2)) data_dict[product_ym[k][1]][ product_ym[k][0]]["data_ic0"] = np.array([np.nan] * (145**2)) continue else: helmert_axis_x_file = "../data/csv_Helmert_both_30/Helmert_both_30_20" + x_ym + ".csv" helmert_axis_y_file = "../data/csv_Helmert_both_30/Helmert_both_30_20" + y_ym + ".csv" data_A = pd.read_csv(helmert_axis_x_file)["A"] data_ic0 = pd.read_csv(helmert_axis_y_file)["ic0_30"] data_dict[product_ym[k][1]][product_ym[k][0]]["ym_A"] = x_ym data_dict[product_ym[k][1]][product_ym[k][0]]["ym_ic0"] = y_ym data_dict[product_ym[k][1]][product_ym[k][0]]["data_A"] = np.array( data_A) data_dict[product_ym[k][1]][product_ym[k] [0]]["data_ic0"] = np.array(data_ic0) for month in month_list: accumulate_data_A = [] accumulate_data_ic0 = [] for year in y_list: #print(month, year) accumulate_data_A.append(data_dict[month][year]["data_A"]) accumulate_data_ic0.append(data_dict[month][year]["data_ic0"]) accumulate_data_A = np.array(accumulate_data_A) accumulate_data_ic0 = np.array(accumulate_data_ic0) corr_list = [] for i in range(145**2): plot_data_A = accumulate_data_A[:, i] #data_A = data_A[~np.isnan(data_A)] plot_data_ic0 = accumulate_data_ic0[:, i] tmp_df = pd.DataFrame({ "data_A": plot_data_A, "data_ic0": plot_data_ic0 }) if len(tmp_df.dropna()) <= 5: corr = np.nan else: corr = tmp_df.dropna().corr() corr = np.array(corr)[0, 1] corr_list.append(corr) corr_array = np.array(corr_list) save_name = dirs + "ic0_A_start_month_" + month + "_slide_" + str( slide) + ".png" print("\t{}".format(save_name)) visualize.plot_map_once(corr_array, data_type="type_non_wind", show=False, save_name=save_name, vmax=1, vmin=-1, cmap=plt.cm.jet)
def presentation_03(slide): """ SICとの相関係数のslide month """ y_list = [ "03", "04", "05", "06", "07", "08", "09", "10", "13", "14", "15", "16" ] month_list = [ "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" ] product_ym = list(itertools.product(y_list, month_list)) data_dict = {} for month in month_list: data_dict[month] = {} for year in y_list: data_dict[month][year] = {} data_dict[month][year]["ym_A"] = np.array([np.nan] * (145**2)) data_dict[month][year]["ym_ic0"] = np.array([np.nan] * (145**2)) data_dict[month][year]["data_A"] = np.array([np.nan] * (145**2)) data_dict[month][year]["data_ic0"] = np.array([np.nan] * (145**2)) for k, item in enumerate(product_ym): if k + slide > len(product_ym) - 1: break x_ym = product_ym[k][0] + product_ym[k][1] y_ym = product_ym[k + slide][0] + product_ym[k + slide][1] print(x_ym, y_ym) if (k <= 95) & (k + slide > 95): print("\tcontinue: {}".format((x_ym, y_ym))) data_dict[product_ym[k][1]][product_ym[k][0]]["ym_A"] = x_ym data_dict[product_ym[k][1]][product_ym[k][0]]["ym_ic0"] = y_ym data_dict[product_ym[k][1]][product_ym[k][0]]["data_A"] = np.array( [np.nan] * (145**2)) data_dict[product_ym[k][1]][ product_ym[k][0]]["data_ic0"] = np.array([np.nan] * (145**2)) continue else: helmert_axis_x_file = "../data/csv_Helmert_30_1day_delay/Helmert_30_1day_delay_20" + x_ym + ".csv" helmert_axis_y_file = "../data/csv_Helmert_30_1day_delay/Helmert_30_1day_delay_20" + y_ym + ".csv" data_A = pd.read_csv(helmert_axis_x_file)["A"] data_ic0 = pd.read_csv(helmert_axis_y_file)["ic0_30"] data_dict[product_ym[k][1]][product_ym[k][0]]["ym_A"] = x_ym data_dict[product_ym[k][1]][product_ym[k][0]]["ym_ic0"] = y_ym data_dict[product_ym[k][1]][product_ym[k][0]]["data_A"] = np.array( data_A) data_dict[product_ym[k][1]][product_ym[k] [0]]["data_ic0"] = np.array(data_ic0) for month in month_list: accumulate_data_A = [] accumulate_data_ic0 = [] for year in y_list: #print(month, year) accumulate_data_A.append(data_dict[month][year]["data_A"]) accumulate_data_ic0.append(data_dict[month][year]["data_ic0"]) accumulate_data_A = np.array(accumulate_data_A) accumulate_data_ic0 = np.array(accumulate_data_ic0) corr_list_ic0_p = [] corr_list_ic0_r = [] for i in range(145**2): plot_data_A = accumulate_data_A[:, i] #data_A = data_A[~np.isnan(data_A)] plot_data_ic0 = accumulate_data_ic0[:, i] tmp_df = pd.DataFrame({ "data_A": plot_data_A, "data_ic0": plot_data_ic0 }) if len(tmp_df.dropna()) <= 5: r = np.nan p = np.nan else: corr_ic0 = np.array(tmp_df.dropna()) r, p = stats.pearsonr(corr_ic0[:, 0], corr_ic0[:, 1]) corr_list_ic0_p.append(p) corr_list_ic0_r.append(r) corr_array_p = np.array(corr_list_ic0_p) corr_array_r = np.array(corr_list_ic0_r) th = 0.05 corr_array_p = np.where(corr_array_p < th, 0, 1) month_slided = str((int(month) + slide) % 12) if len(month_slided) == 1: month_slided = "0" + month_slided save_name_p = "../result_h_1day_delay/corr_map_slide_month/ic0_A_start_month_" + month + "_" + month_slided + "_p.png" save_name_r = "../result_h_1day_delay/corr_map_slide_month/ic0_A_start_month_" + month + "_" + month_slided + "_r.png" print("\t{}".format(save_name_p)) print("\t{}".format(save_name_r)) visualize.plot_map_once(corr_array_p, data_type="type_non_wind", show=False, save_name=save_name_p, vmax=1, vmin=0, cmap=cm_p_value) visualize.plot_map_once(corr_array_r, data_type="type_non_wind", show=False, save_name=save_name_r, vmax=1, vmin=-1, cmap=plt.cm.jet)