def convert_Sgrid_value_to_UVgrid_value_3D(S): # TSなど、◯.5度を基準に与えられている物理量を、UVなどと同じように、◯.0度を基準に変換してやる。 yn = S.shape[0] xn = S.shape[1] zn = S.shape[2] S_dash = np.zeros((yn, xn, zn)) for j in range(yn): if j == yn - 1: S_dash[j, :, :] = np.nan else: for i in range(xn): if i != xn - 1: S00 = S[j, i, :] S01 = S[j + 1, i, :] S10 = S[j, i + 1, :] S11 = S[j + 1, i + 1, :] else: S00 = S[j, i, :] S01 = S[j + 1, i, :] S10 = S[j, 0, :] S11 = S[j + 1, 0, :] for k in range(0, zn): S_dash[j, i, k] = Using_jit.average_of_4data(S00[k], S01[k], S10[k], S11[k]) return S_dash
def convert_Sgrid_value_to_UVgrid_value_2D(S): # TSなど、◯.5度を基準に与えられている物理量を、UVなどと同じように、◯.0度を基準に変換してやる。 # 2次元のデータ専用 yn = S.shape[0] xn = S.shape[1] S_dash = np.zeros((yn, xn)) for j in range(yn): if j == yn - 1: S_dash[j, :] = np.nan else: for i in range(xn): if i != xn - 1: S00 = S[j, i] S01 = S[j + 1, i] S10 = S[j, i + 1] S11 = S[j + 1, i + 1] else: S00 = S[j, i] S01 = S[j + 1, i] S10 = S[j, 0] S11 = S[j + 1, 0] S_dash[j, i] = Using_jit.average_of_4data(S00, S01, S10, S11) return S_dash
def convert_UVgrid_value_to_Sgrid_value_2D(U): # UVなど、~.0度を基準に与えられている物理量を、UVなどと同じように、~.5度を基準に変換してやる。 yn = U.shape[0] xn = U.shape[1] U_dash = np.zeros((yn, xn)) for j in range(yn): if j == yn - 1: U_dash[j, :] = np.nan else: for i in range(xn): if i != 0: U00 = U[j - 1, i - 1] U01 = U[j, i - 1] U10 = U[j - 1, i] U11 = U[j, i] else: U00 = U[j - 1, xn - 1] U01 = U[j, xn - 1] U10 = U[j - 1, i] U11 = U[j, i] U_dash[j, i] = Using_jit.average_of_4data(U00, U01, U10, U11) return U_dash