Exemplo n.º 1
0
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")
Exemplo n.º 2
0
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")
Exemplo n.º 3
0
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")
Exemplo n.º 4
0
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")
Exemplo n.º 5
0
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")
Exemplo n.º 6
0
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")
Exemplo n.º 7
0
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")
Exemplo n.º 8
0
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")
Exemplo n.º 9
0
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)
Exemplo n.º 10
0
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")
Exemplo n.º 11
0
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)
Exemplo n.º 12
0
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)
Exemplo n.º 13
0
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)
    """
Exemplo n.º 14
0
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)
		"""
Exemplo n.º 15
0
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")
Exemplo n.º 16
0
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")
Exemplo n.º 17
0
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")
Exemplo n.º 18
0
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")
Exemplo n.º 19
0
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)
Exemplo n.º 20
0
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)
Exemplo n.º 21
0
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()
Exemplo n.º 22
0
        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)
Exemplo n.º 23
0
    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)
Exemplo n.º 24
0
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")
Exemplo n.º 25
0
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)
Exemplo n.º 26
0
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)