Exemplo n.º 1
0
def H_angle_30_and_wind():
	dirs = "../result_h/angle/angle_30_and_wind/"
	main_v.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

		#angleデータの取得
		_, _, _, data = main_v.main_data(
			start, start, 
			span=30, 
			get_columns=["hermert"], 
			region=None, 
			accumulate=False
			)

		data.theta[data.R2<threshold_R2] = np.nan

		#地衡風平均の出力
		_, _, _, data_w = main_v.main_data(
			start, end, 
			span=30, 
			get_columns=["w"], 
			region=None, 
			accumulate=True
			)

		data_array = np.array(data_w)
		data_ave = np.nanmean(data_array, axis=0)

		data_ave = pd.DataFrame(data_ave)
		data_ave.columns = ["w_speed", "w_u", "w_v"]

		save_name = dirs + "angle_30_and_wind_" + str(start)[:6] + ".png"

		visualize.plot_map_multi(
			data_ave.loc[:, ["w_u", "w_v"]], 
			data["theta"],
			data_type="type_non_wind",
			save_name=save_name,
			show=False, 
			vmax=180, 
			vmin=-180,
			cmap=cm_angle_2
			)
		print("\n")
Exemplo n.º 2
0
def H_A_30_test():
	dirs = "../result_h/A/A_30_test/"
	main_v.mkdir(dirs)

	for i, start in enumerate(start_list):
		print("******************  {}/{}  *******************".format(i+1, M))
		_, _, _, data = main_v.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=None, 
			vmin=None,
			cmap=plt.cm.jet
			)
		print("\n")
Exemplo n.º 3
0
def H_vec_mean_ocean_currents():
	dirs = "../result_h/mean_vector/mean_ocean_currents/"
	main_v.mkdir(dirs)

	for i, start in enumerate(start_list):
		print("******************  {}/{}  *******************".format(i+1, M))
		_, _, _, data = main_v.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.º 4
0
def H_A_30_with_coef():
	dirs = "../result_h/A/A_30_with_coef/"
	main_v.mkdir(dirs)

	df_latlon = pd.read_csv("../data/latlon_ex.csv")
	lon = df_latlon.Lon
	lat = df_latlon.Lat
	lon = np.array(lon)
	lat = np.array(lat)

	for i, start in enumerate(start_list):
		print("******************  {}/{}  *******************".format(i+1, M))
		_, _, _, data = main_v.main_data(
			start, start, 
			span=30, 
			get_columns=["hermert"], 
			region=None, 
			accumulate=False
			)

		idx_low_coef = data[data.R2<threshold_R2].index
		data_low_coef = np.array([np.nan]*(145**2))
		data_low_coef[idx_low_coef] = 1
		data_low_coef1 = np.reshape(data_low_coef, (145,145), order="F")
		data_low_coef1 = np.ma.masked_invalid(data_low_coef1)
		data.A.loc[data.R2<threshold_R2] = np.nan
		data = np.array(data.A)
		data1 = np.reshape(data, (145,145), order="F")
		data1 = np.ma.masked_invalid(data1)

		save_name = dirs + str(start)[:6] + ".png"

		m = Basemap(lon_0=180, boundinglat=50, resolution='i', projection='npstere')
		fig = plt.figure(figsize=(6.5, 6.5))
		x, y = m(lon, lat)
		x1 = np.reshape(x, (145,145), order="F")
		y1 = np.reshape(y, (145,145), order="F")
		dx1 = (x1[1,0]-x1[0,0])/2
		dy1 = (y1[0,1]-y1[0,0])/2
		x2 = np.linspace(x1[0,0], x1[144,0], 145)
		y2 = np.linspace(y1[0,0], y1[0,144], 145)
		xx, yy = np.meshgrid(x2, y2)
		xx, yy = xx.T, yy.T
		xx = np.hstack([xx, xx[:,0].reshape(145,1)])
		xx_ex = np.vstack([xx, (xx[144,:] + (xx[1,0]-xx[0,0]))])
		yy = np.vstack([yy, yy[0,:]])
		yy_ex = np.hstack([(yy[:,0].reshape(146,1) + (yy[0,0]-yy[0,1])), yy])

		m.drawcoastlines(color = '0.15')
		# m.plot(xx[144,0], yy[144,0], "bo")
		m.pcolormesh(xx_ex-dx1, yy_ex+dy1, data1, cmap=plt.cm.jet, vmax=0.025, vmin=0)
		m.colorbar(location='bottom')
		cm_brown = visualize.generate_cmap(["burlywood", "burlywood"])
		m.pcolormesh(xx_ex-dx1, yy_ex+dy1, data_low_coef1, cmap=cm_brown)
		#plt.show()
		plt.savefig(save_name, dpi=900)
		plt.close()

		print("\n")
Exemplo n.º 5
0
def H_angle_30():
	dirs_original = "../result_h/angle/angle_30/"
	main_v.mkdir(dirs_original)
	dirs_h_coef = "../result_h/angle/angle_30_high_coef/"
	main_v.mkdir(dirs_h_coef)

	for i, start in enumerate(start_list):
		print("******************  {}/{}  *******************".format(i+1, M))
		_, _, _, data = main_v.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_2
			)

		#angle_30_high_coef
		data.theta[data.R2<threshold_R2] = 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_2
			)

		print("\n")
Exemplo n.º 6
0
def H_A_by_day_30():
	"""
	基本的に古い方のA_by_day_30と変わらないが,こっちの方がちょっとだけ正確かも
	"""
	dirs = "../result_h/A/A_by_day_30/"
	main_v.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_v.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.º 7
0
def get_helmert_ocean_90():
	dirs = "../data/csv_Helmert_ocean_90/"
	mkdir(dirs)

	start_list_plus_1month = start_list + [20170901]
	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

		#csv_Helmert_90の当該月のcsvを読み込む
		hermert_file_name = "../data/csv_Helmert_both_90/Helmert_both_90_" + str(start)[:6] + ".csv"
		helmert_90_data = pd.read_csv(hermert_file_name)

		#wデータの取得・整形
		_, _, _, data_w = main_data(
			start, end, 
			span=30, 
			get_columns=["w"], 
			region=None, 
			accumulate=True
			)
		data_array_w = np.array(data_w)
		data_ave_w = np.nanmean(data_array_w, axis=0)

		#iwデータの取得・整形
		_, _, _, data_iw = main_data(
			start, end, 
			span=30, 
			get_columns=["iw"], 
			region=None, 
			accumulate=True
			)
		data_array_iw = np.array(data_iw)
		print("\n")

		w_array = np.vstack((data_array_iw[:,:,1], data_array_iw[:,:,2]))
		ocean_array_u = np.array(helmert_90_data["ocean_u_90"])
		ocean_array_v = np.array(helmert_90_data["ocean_v_90"])
		ocean_array = np.hstack((ocean_array_u.reshape((-1,1)), ocean_array_v.reshape((-1,1))))
		ocean_array = np.tile(ocean_array, (data_array_iw.shape[0],1,1))
		ocean_array = np.vstack((ocean_array[:,:,0], ocean_array[:,:,1]))
		#print(ocean_array.shape)
		#print(w_array[:, 0].shape)
		Helmert = []
		#for j in range(100):
		for j in range(145**2):
			print("j: {}".format(j))
			#欠損データの処理
			not_nan_idx = np.sum(np.isnan(data_array_iw[:, j, :]), axis=1)==False
			#print("\tnot_nan_idx: {}".format(not_nan_idx))
			x = data_array_w[:, j, 1][not_nan_idx].reshape((-1,1))
			y = data_array_w[:, j, 2][not_nan_idx].reshape((-1,1))
			w = (w_array[:, j]-ocean_array[:, j])[np.tile(not_nan_idx, 2)].reshape((-1,1))
			iw_u_ave = np.nanmean(data_array_iw[:, j, 1])
			iw_v_ave = np.nanmean(data_array_iw[:, j, 2])
			iw_u_ave_ocean = np.nanmean(data_array_iw[:, j, 1] - ocean_array_u[j])
			iw_v_ave_ocean = np.nanmean(data_array_iw[:, j, 2] - ocean_array_v[j])
			N_c = np.sum(not_nan_idx==True)
			if N_c <= 1:
				print("\tskipping for loop...")
				Helmert.append([np.nan, np.nan, np.nan, np.nan, N_c, np.nan, np.nan])
				continue
			one_N = np.ones(N_c).reshape((-1,1))
			zero_N = np.zeros(N_c).reshape((-1,1))
			#D_1 = np.hstack((one_N, zero_N, x, -y))
			#D_2 = np.hstack((zero_N, one_N, y, x))
			D_1 = np.hstack((x, -y))
			D_2 = np.hstack((y, x))
			Dt = np.vstack((D_1, D_2))
			#print(N_c, Dt, np.dot(Dt.T, Dt))
			D_inv = np.linalg.inv(np.dot(Dt.T, Dt))
			gamma = np.dot(D_inv, np.dot(Dt.T, w))
			print("\t{}".format(gamma.shape))
			A = np.sqrt(gamma[0]**2 + gamma[1]**2)
			theta = np.arctan2(gamma[1], gamma[0]) * 180/np.pi
			R_denominator = np.dot(w.T, w) - N_c*(iw_u_ave_ocean**2 + iw_v_ave_ocean**2)
			epsilon = w - np.dot(Dt, gamma)
			R_numerator = np.dot(epsilon.T, epsilon)
			R2 = 1 - (R_numerator/R_denominator)[0,0]
			#print("\t{}".format([A[0], theta[0], gamma[0,0], gamma[1,0], R2, N_c]))
			if N_c <= 20:
				Helmert.append([np.nan, np.nan, np.nan, np.nan, N_c, iw_u_ave_ocean, iw_v_ave_ocean])
			else:
				Helmert.append([A, theta, R2, R_numerator, N_c, iw_u_ave_ocean, iw_v_ave_ocean])

		result = np.hstack((Helmert, data_ave_w[:,[1,2]]))
		#print(result.shape)
		data = pd.DataFrame(result)
		data.columns = ["A_30_90", "theta_30_90", "R2_30_90", "epsilon2_30_90", "N_c_30_90", "mean_iw_u_with_ocean_30_90", "mean_iw_v_with_ocean_30_90", "mean_w_u_30", "mean_w_v_30"]

		data_ex_dir = "../data/csv_Helmert_ex/Helmert_ex_" + str(start)[:-2] + ".csv"
		data_ = pd.read_csv(data_ex_dir).loc[:, ["coastal_region_1", "coastal_region_2", "area_label", "ic0_30", "ic0_30_median", "sit_30", "sit_30_median"]]
		data = pd.concat([latlon_ex, data_, data], axis=1)
		#print(data.head(3))
		save_name = dirs + "Helmert_30_90_" + str(start)[:6] + ".csv"
		print(save_name)
		data.to_csv(save_name, index=False)
Exemplo n.º 8
0
def get_helmert_both_90(data_ex_basic):
	dirs = "../data/csv_Helmert_both_90/"
	mkdir(dirs)

	#start_list = [20030101]
	start_list_plus_3month = start_list + [20170901, 20171001, 20171101]
	for k, start_1 in enumerate(start_list):
		if start_1 == 20170801:
			print("Breaking the loop...")
			break
		print("*******************  {}/{}  *******************".format(k+1, M))
		if k == 0:
			month_end_1 = start_list_plus_3month[k+1]
			month_end_1 = date(month_end_1//10000, (month_end_1%10000)//100, (month_end_1%10000)%100) - timedelta(days=1)
			end_1 = start_1 + month_end_1.day - 1

			start_2 = month_end_1 + timedelta(days=1)
			month_end_2 = start_list_plus_3month[k+2]
			month_end_2 = date(month_end_2//10000, (month_end_2%10000)//100, (month_end_2%10000)%100) - timedelta(days=1)
			end_2 = start_2 + timedelta(days=month_end_2.day-1)

			start_2 = int(start_2.strftime('%Y/%m/%d').replace("/", ""))
			end_2 = int(end_2.strftime('%Y/%m/%d').replace("/", ""))

			start_list_3month = [start_1, start_2, 0]
			end_list_3month = [end_1, end_2, 0]
		else:
			kk = k - 1
			start_1_1 = start_list[kk]
			month_end_1 = start_list_plus_3month[kk+1]
			month_end_1 = date(month_end_1//10000, (month_end_1%10000)//100, (month_end_1%10000)%100) - timedelta(days=1)
			end_1 = start_1_1 + month_end_1.day - 1

			start_2 = month_end_1 + timedelta(days=1)
			month_end_2 = start_list_plus_3month[kk+2]
			month_end_2 = date(month_end_2//10000, (month_end_2%10000)//100, (month_end_2%10000)%100) - timedelta(days=1)
			end_2 = start_2 + timedelta(days=month_end_2.day-1)

			start_3 = month_end_2 + timedelta(days=1)
			month_end_3 = start_list_plus_3month[kk+3]
			month_end_3 = date(month_end_3//10000, (month_end_3%10000)//100, (month_end_3%10000)%100) - timedelta(days=1)
			end_3 = start_3 + timedelta(days=month_end_3.day-1)

			start_2 = int(start_2.strftime('%Y/%m/%d').replace("/", ""))
			start_3 = int(start_3.strftime('%Y/%m/%d').replace("/", ""))
			end_2 = int(end_2.strftime('%Y/%m/%d').replace("/", ""))
			end_3 = int(end_3.strftime('%Y/%m/%d').replace("/", ""))

			start_list_3month = [start_1_1, start_2, start_3]
			end_list_3month = [end_1, end_2, end_3]

		data_w_90 = np.zeros((1, 145**2, 3))
		data_iw_90 = np.zeros((1, 145**2, 3))
		for i in range(3):
			start = start_list_3month[i]
			end = end_list_3month[i]
			if start == 0 and end == 0:
				continue

			#wデータの取得・整形
			_, _, _, data_w = main_data(
				start, end, 
				span=30, 
				get_columns=["w"], 
				region=None, 
				accumulate=True
				)
			data_array_w = np.array(data_w)
			#data_ave_w = np.nanmean(data_array_w, axis=0)
			data_w_90 = np.concatenate([data_w_90, data_array_w], axis=0)

			#iwデータの取得・整形
			_, _, _, data_iw = main_data(
				start, end, 
				span=30, 
				get_columns=["iw"], 
				region=None, 
				accumulate=True
				)
			data_array_iw = np.array(data_iw)
			data_iw_90 = np.concatenate([data_iw_90, data_array_iw], axis=0)	
			print("\n")

		data_w_90 = data_w_90[1:, :, :]
		data_iw_90 = data_iw_90[1:, :, :]
		data_ave_w = np.nanmean(data_w_90, axis=0)
		data_ave_iw = np.nanmean(data_iw_90, axis=0)
		w_array = np.vstack((data_iw_90[:,:,1], data_iw_90[:,:,2]))

		Helmert = []
		for j in range(145**2):
			print("j: {}".format(j))
			#欠損データの処理
			not_nan_idx = np.sum(np.isnan(data_iw_90[:, j, :]), axis=1)==False
			#print("\tnot_nan_idx: {}".format(not_nan_idx))
			x = data_w_90[:, j, 1][not_nan_idx].reshape((-1,1))
			y = data_w_90[:, j, 2][not_nan_idx].reshape((-1,1))
			w = w_array[:, j][np.tile(not_nan_idx, 2)].reshape((-1,1))
			iw_u_ave = np.nanmean(data_iw_90[:, j, 1])
			iw_v_ave = np.nanmean(data_iw_90[:, j, 2])
			N_c = np.sum(not_nan_idx==True)
			if N_c <= 1:
				print("\tskipping for loop...")
				Helmert.append([np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, N_c, np.nan, np.nan])
				continue
			one_N = np.ones(N_c).reshape((-1,1))
			zero_N = np.zeros(N_c).reshape((-1,1))
			D_1 = np.hstack((one_N, zero_N, x, -y))
			D_2 = np.hstack((zero_N, one_N, y, x))
			Dt = np.vstack((D_1, D_2))
			#print(N_c, Dt, np.dot(Dt.T, Dt))
			D_inv = np.linalg.inv(np.dot(Dt.T, Dt))
			gamma = np.dot(D_inv, np.dot(Dt.T, w))
			A = np.sqrt(gamma[2]**2 + gamma[3]**2)
			theta = np.arctan2(gamma[3], gamma[2]) * 180/np.pi
			R_denominator = np.dot(w.T, w) - N_c*(iw_u_ave**2 + iw_v_ave**2)
			epsilon = w - np.dot(Dt, gamma)
			R_numerator = np.dot(epsilon.T, epsilon)
			R2 = 1 - (R_numerator/R_denominator)[0,0]
			print("\t{}".format([A[0], theta[0], gamma[0,0], gamma[1,0], R2, N_c]))
			if N_c < 45:
				Helmert.append([np.nan, np.nan, gamma[0], gamma[1], np.nan, np.nan, N_c, iw_u_ave, iw_v_ave])
			else:
				Helmert.append([A, theta, gamma[0], gamma[1], R2, R_numerator, N_c, iw_u_ave, iw_v_ave])

		result = np.hstack((Helmert, data_ave_w[:,[1,2]]))
		#print(result.shape)
		data = pd.DataFrame(result)
		data.columns = ["A_90", "theta_90", "ocean_u_90", "ocean_v_90", "R2_90", "epsilon2_90", "N_c_90", "mean_iw_u_90", "mean_iw_v_90", "mean_w_u_90", "mean_w_v_90"]
		data["ocean_speed_90"] = np.sqrt(data["ocean_u_90"]**2 + data["ocean_v_90"]**2)
		#print(data.head(3))
		data = pd.concat([latlon_ex, data_ex_basic, data], axis=1)
		save_name = dirs + "Helmert_both_90_" + str(start_1)[:6] + ".csv"
		print(save_name)
		data.to_csv(save_name, index=False)
Exemplo n.º 9
0
def get_csv_ex(array_label, array_coastal_region_1, array_coastal_region_2):
    data_ex_dir = "../data/csv_Helmert_ex/"
    mkdir(data_ex_dir)
    dirs_pair = "../result_h/pairplot/"
    mkdir(dirs_pair)

    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

        _, _, _, data_ic0_30 = main_data(start,
                                         end,
                                         span=30,
                                         get_columns=["ic0_145"],
                                         region=None,
                                         accumulate=True)
        data_array_ic0 = np.array(data_ic0_30)
        data_ave_ic0 = np.nanmean(data_array_ic0, axis=0).ravel()
        data_med_ic0 = np.nanmedian(data_array_ic0, axis=0).ravel()
        data_ic0_ave_med_30 = pd.DataFrame({
            "ic0_30": data_ave_ic0,
            "ic0_30_median": data_med_ic0
        })

        _, _, _, data_sit_30 = main_data(start,
                                         end,
                                         span=30,
                                         get_columns=["sit_145"],
                                         region=None,
                                         accumulate=True)
        data_array_sit = np.array(data_sit_30)
        data_ave_sit = np.nanmean(data_array_sit, axis=0).ravel()
        data_med_sit = np.nanmedian(data_array_sit, axis=0).ravel()
        data_sit_ave_med_30 = pd.DataFrame({
            "sit_30": data_ave_sit,
            "sit_30_median": data_med_sit
        })

        _, _, _, data_A_original = main_data(start,
                                             start,
                                             span=30,
                                             get_columns=["hermert"],
                                             region=None,
                                             accumulate=False)
        data_A_original["mean_ocean_speed"] = np.sqrt(
            data_A_original["ocean_u"]**2 + data_A_original["ocean_v"]**2)
        data_A_original["mean_iw_speed"] = np.sqrt(
            data_A_original["mean_iw_u"]**2 + data_A_original["mean_iw_v"]**2)
        data_A_original["mean_w_speed"] = np.sqrt(
            data_A_original["mean_w_u"]**2 + data_A_original["mean_w_v"]**2)
        data_A_original["w_iw_ratio"] = data_A_original[
            "mean_iw_speed"] / data_A_original["mean_w_speed"]
        data_A_original["mean_iw_speed_no_ocean"] = np.sqrt(
            (data_A_original["mean_iw_u"] - data_A_original["ocean_u"])**2 +
            (data_A_original["mean_iw_v"] - data_A_original["ocean_v"])**2)

        data = pd.concat([
            latlon_ex, data_A_original, data_ic0_ave_med_30,
            data_sit_ave_med_30
        ],
                         axis=1)

        #data["t_ocean"] = t_ocean
        #data["t_iw"] = t_iw
        #print(len(data))
        #print(array_coastal_region_1.shape)
        data["coastal_region_1"] = array_coastal_region_1
        data["coastal_region_2"] = array_coastal_region_2
        data["area_label"] = array_label

        #print("\n\n{}\n".format(data.head(3)))
        data_name = data_ex_dir + "Helmert_ex_" + str(start)[:-2] + ".csv"
        data.to_csv(data_name, index=False)

        data_no_nan = data_A_original.dropna()
        sns.pairplot(
            data_no_nan.loc[:, ["A", "R2", "epsilon2", "mean_ocean_speed"]])
        plt.savefig(dirs_pair + "ocean_" + str(start)[:-2] + ".png")
        plt.close()
        sns.pairplot(data_no_nan.loc[:,
                                     ["A", "R2", "epsilon2", "mean_iw_speed"]])
        plt.savefig(dirs_pair + "iw_" + str(start)[:-2] + ".png")
        plt.close()
        sns.pairplot(data_no_nan.loc[:, ["A", "R2", "epsilon2", "w_iw_ratio"]])
        plt.savefig(dirs_pair + "ratio_" + str(start)[:-2] + ".png")
        plt.close()
        sns.pairplot(
            data_no_nan.loc[:,
                            ["A", "R2", "epsilon2", "mean_iw_speed_no_ocean"]])
        plt.savefig(dirs_pair + "iw_no_ocean_" + str(start)[:-2] + ".png")
        plt.close()
        sns.pairplot(data_no_nan.loc[:, [
            "mean_iw_speed", "mean_w_speed", "mean_ocean_speed",
            "mean_iw_speed_no_ocean"
        ]])
        plt.savefig(dirs_pair + "speed_" + str(start)[:-2] + ".png")
        plt.close()

        print("\n")
Exemplo n.º 10
0
def H_scatter_ic0_np(mode):
    if mode == "mean":
        dirs_A_30_and_ic0_np = "../result_h/scatter/scatter_A_30_and_ic0_np/"
        mkdir(dirs_A_30_and_ic0_np)
        dirs_A_30_and_ic0_h_np = "../result_h/scatter/scatter_A_30_and_ic0_h_np/"
        mkdir(dirs_A_30_and_ic0_h_np)
        dirs_angle_30_and_ic0_np = "../result_h/scatter/scatter_angle_30_and_ic0_np/"
        mkdir(dirs_angle_30_and_ic0_np)
        dirs_angle_30_and_ic0_h_np = "../result_h/scatter/scatter_angle_30_and_ic0_h_np/"
        mkdir(dirs_angle_30_and_ic0_h_np)
    elif mode == "median":
        dirs_A_30_and_ic0_median_np = "../result_h/scatter/scatter_A_30_and_ic0_median_np/"
        mkdir(dirs_A_30_and_ic0_median_np)
        dirs_A_30_and_ic0_median_h_np = "../result_h/scatter/scatter_A_30_and_ic0_median_h_np/"
        mkdir(dirs_A_30_and_ic0_median_h_np)
        dirs_angle_30_and_ic0_median_np = "../result_h/scatter/scatter_angle_30_and_ic0_median_np/"
        mkdir(dirs_angle_30_and_ic0_median_np)
        dirs_angle_30_and_ic0_median_h_np = "../result_h/scatter/scatter_angle_30_and_ic0_median_h_np/"
        mkdir(dirs_angle_30_and_ic0_median_h_np)

    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

        _, _, _, data_A_original = main_data(start,
                                             start,
                                             span=30,
                                             get_columns=["hermert"],
                                             region=None,
                                             accumulate=False)

        _, _, _, data_ic0_30 = main_data(start,
                                         end,
                                         span=30,
                                         get_columns=["ic0_145"],
                                         region=None,
                                         accumulate=True)

        data_array = np.array(data_ic0_30)

        if mode == "mean":
            data_ave = np.nanmean(data_array, axis=0)
            data_ave = pd.DataFrame(data_ave)
            data_ave.columns = ["ic0_30"]

            #dirs_A_30_and_ic0_np
            data_A = data_A_original["A"]
            data = pd.concat([latlon_ex, data_A, data_ave], axis=1)
            data = data[data.Name == "north_polar"]

            save_name = dirs_A_30_and_ic0_np + str(start)[:6] + ".png"
            visualize.visual_non_line(data,
                                      mode=["scatter", ["ic0_30", "A"]],
                                      save_name=save_name,
                                      show=False)

            #dirs_A_30_and_ic0_h_np
            """
			data_A_1 = data_A_original.loc[:, ["A", "R2"]]
			data_A_1.A[data_A_1.R2<threshold_R2] = np.nan
			data_1 = pd.concat([latlon_ex, data_A_1, data_ave], axis=1)
			data_1 = data_1[data_1.Name=="north_polar"]

			save_name = dirs_A_30_and_ic0_h_np + str(start)[:6] + ".png"
			visualize.visual_non_line(
				data_1,
				mode=["scatter", ["ic0_30", "A"]],
				save_name=save_name,
				show=False
				)
			"""

            #dirs_angle_30_and_ic0_np
            data_angle = data_A_original["theta"]
            data_2 = pd.concat([latlon_ex, data_angle, data_ave], axis=1)
            data_2 = data_2[data_2.Name == "north_polar"]

            save_name = dirs_angle_30_and_ic0_np + str(start)[:6] + ".png"
            visualize.visual_non_line(data_2,
                                      mode=["scatter", ["ic0_30", "theta"]],
                                      save_name=save_name,
                                      show=False)

            #dirs_angle_30_and_ic0_h_np
            """
			data_angle_1 = data_A_original.loc[:, ["theta", "R2"]]
			data_angle_1.theta[data_angle_1.R2<threshold_R2] = np.nan
			data_3 = pd.concat([latlon_ex, data_angle_1, data_ave], axis=1)
			data_3 = data_3[data_3.Name=="north_polar"]

			save_name = dirs_angle_30_and_ic0_h_np + str(start)[:6] + ".png"
			visualize.visual_non_line(
				data_3,
				mode=["scatter", ["ic0_30", "theta"]],
				save_name=save_name,
				show=False
				)
			"""

        elif mode == "median":
            data_ave = np.nanmedian(data_array, axis=0)
            data_ave = pd.DataFrame(data_ave)
            data_ave.columns = ["ic0_30"]

            #dirs_A_30_and_ic0_np
            data_A = data_A_original["A"]
            data = pd.concat([latlon_ex, data_A, data_ave], axis=1)
            data = data[data.Name == "north_polar"]

            save_name = dirs_A_30_and_ic0_median_np + str(start)[:6] + ".png"
            visualize.visual_non_line(data,
                                      mode=["scatter", ["ic0_30", "A"]],
                                      save_name=save_name,
                                      show=False)

            #dirs_A_30_and_ic0_h_np
            """
			data_A_1 = data_A_original.loc[:, ["A", "R2"]]
			data_A_1.A[data_A_1.R2<threshold_R2] = np.nan
			data_1 = pd.concat([latlon_ex, data_A_1, data_ave], axis=1)
			data_1 = data_1[data_1.Name=="north_polar"]

			save_name = dirs_A_30_and_ic0_median_h_np + str(start)[:6] + ".png"
			visualize.visual_non_line(
				data_1,
				mode=["scatter", ["ic0_30", "A"]],
				save_name=save_name,
				show=False
				)
			"""

            #dirs_angle_30_and_ic0_np
            data_angle = data_A_original["theta"]
            data_2 = pd.concat([latlon_ex, data_angle, data_ave], axis=1)
            data_2 = data_2[data_2.Name == "north_polar"]

            save_name = dirs_angle_30_and_ic0_median_np + str(
                start)[:6] + ".png"
            visualize.visual_non_line(data_2,
                                      mode=["scatter", ["ic0_30", "theta"]],
                                      save_name=save_name,
                                      show=False)

            #dirs_angle_30_and_ic0_h_np
            """
			data_angle_1 = data_A_original.loc[:, ["theta", "R2"]]
			data_angle_1.theta[data_angle_1.R2<threshold_R2] = np.nan
			data_3 = pd.concat([latlon_ex, data_angle_1, data_ave], axis=1)
			data_3 = data_3[data_3.Name=="north_polar"]

			save_name = dirs_angle_30_and_ic0_median_h_np + str(start)[:6] + ".png"
			visualize.visual_non_line(
				data_3,
				mode=["scatter", ["ic0_30", "theta"]],
				save_name=save_name,
				show=False
				)
			"""

        print("\n")
Exemplo n.º 11
0
def H_scatter_6win_2area(worker):
    dirs_basic = "../result_h/scatter/"
    if worker == 0:
        dirs_A_ic0 = dirs_basic + "A_ic0/"
        mkdir(dirs_A_ic0)
        dirs_theta_ic0 = dirs_basic + "theta_ic0/"
        mkdir(dirs_theta_ic0)
        dirs_e2_ic0 = dirs_basic + "e2_ic0/"
        mkdir(dirs_e2_ic0)
    elif worker == 1:
        dirs_A_sit = dirs_basic + "A_sit/"
        mkdir(dirs_A_sit)
        dirs_theta_sit = dirs_basic + "theta_sit/"
        mkdir(dirs_theta_sit)
        dirs_e2_sit = dirs_basic + "e2_sit/"
        mkdir(dirs_e2_sit)

    sns.set_style("darkgrid")
    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

        _, _, _, data_hermert = main_data(start,
                                          start,
                                          span=30,
                                          get_columns=["hermert"],
                                          region=None,
                                          accumulate=False)

        _, _, _, data_ic0_sit = main_data(start,
                                          end,
                                          span=30,
                                          get_columns=["ic0_145", "sit_145"],
                                          region=None,
                                          accumulate=True)

        data_array = np.array(data_ic0_sit)
        data_ave = np.nanmean(data_array, axis=0)
        data_ave = pd.DataFrame(data_ave)
        data_ave.columns = ["ic0_30", "sit_30"]
        data_cross = data_array[:, :, 0] * data_array[:, :, 1]
        data_cross_ave = np.nanmean(data_cross, axis=0) / 100
        data_ave["cross_ic0_sit"] = data_cross_ave

        data_tmp = data_hermert.loc[:, ["A", "theta", "R2", "epsilon2"]]
        data_basic = pd.concat([latlon_ex, data_tmp, data_ave], axis=1)

        rank_np = np.zeros(145**2)
        rank_np[data_basic[data_basic.Name == "north_polar"].index] = 1
        rank_R2 = np.ones(145**2)
        rank_R2[data_basic[data_basic.R2 <= (0.5)**2].index] = 0
        rank_R2[data_basic[data_basic.R2 > (0.6)**2].index] = 2
        data_rank = pd.DataFrame({"rank_np": rank_np, "rank_R2": rank_R2})

        data = pd.concat([data_basic, data_rank], axis=1)

        if worker == 0:
            save_name = dirs_A_ic0 + str(start)[:6] + ".png"
            sns.lmplot(x="ic0_30",
                       y="A",
                       row="rank_R2",
                       col="rank_np",
                       data=data,
                       size=3,
                       fit_reg=True)
            plt.savefig(save_name, dpi=900)
            plt.close()

            save_name = dirs_theta_ic0 + str(start)[:6] + ".png"
            sns.lmplot(x="ic0_30",
                       y="theta",
                       row="rank_R2",
                       col="rank_np",
                       data=data,
                       size=3)
            plt.savefig(save_name, dpi=900)
            plt.close()

            save_name = dirs_e2_ic0 + str(start)[:6] + ".png"
            sns.lmplot(x="ic0_30",
                       y="epsilon2",
                       row="rank_R2",
                       col="rank_np",
                       data=data,
                       size=3)
            plt.savefig(save_name, dpi=900)
            plt.close()

        elif worker == 1:
            save_name = dirs_A_sit + str(start)[:6] + ".png"
            sns.lmplot(x="sit_30",
                       y="A",
                       row="rank_R2",
                       col="rank_np",
                       data=data,
                       size=3)
            plt.savefig(save_name, dpi=900)
            plt.close()

            save_name = dirs_theta_sit + str(start)[:6] + ".png"
            sns.lmplot(x="sit_30",
                       y="theta",
                       row="rank_R2",
                       col="rank_np",
                       data=data,
                       size=3)
            plt.savefig(save_name, dpi=900)
            plt.close()

            save_name = dirs_e2_sit + str(start)[:6] + ".png"
            sns.lmplot(x="sit_30",
                       y="epsilon2",
                       row="rank_R2",
                       col="rank_np",
                       data=data,
                       size=3)
            plt.savefig(save_name, dpi=900)
            plt.close()

        print("\n")