def test_horizontal_derivatives(test_dataset): ds = test_dataset dx = ds.attrs['dx'] dy = ds.attrs['dy'] Lx = ds.attrs['Lx'] Ly = ds.attrs['Ly'] # perdiodic function of Xp1 f = np.sin(np.pi * ds.Xp1.values / Lx) ds['f'] = ('Xp1', f) ds['df'] = ('X', np.roll(f,-1) - f) ds['dfdx'] = ds.df/dx # periodic function of Yp1 g = np.cos(np.pi * ds.Yp1.values / Ly) ds['g'] = ('Yp1', g) ds['dg'] = ('Y', np.roll(g,-1) - g) ds['dgdy'] = ds.dg/dy gcm = GCMDataset(ds) gcm_df = gcm.diff_xp1_to_x(ds.f) assert gcm_df.equals(ds.df), (gcm_df, ds.df) gcm_dg = gcm.diff_yp1_to_y(ds.g) assert gcm_dg.equals(ds.dg), (gcm_dg, ds.dg)
def test_horizontal_derivatives(test_dataset): ds = test_dataset dx = ds.attrs["dx"] dy = ds.attrs["dy"] Lx = ds.attrs["Lx"] Ly = ds.attrs["Ly"] # perdiodic function of Xp1 f = np.sin(np.pi * ds.Xp1.values / Lx) ds["f"] = ("Xp1", f) ds["df"] = ("X", np.roll(f, -1) - f) ds["dfdx"] = ds.df / dx # periodic function of Yp1 g = np.cos(np.pi * ds.Yp1.values / Ly) ds["g"] = ("Yp1", g) ds["dg"] = ("Y", np.roll(g, -1) - g) ds["dgdy"] = ds.dg / dy gcm = GCMDataset(ds) gcm_df = gcm.diff_xp1_to_x(ds.f) assert gcm_df.equals(ds.df), (gcm_df, ds.df) gcm_dg = gcm.diff_yp1_to_y(ds.g) assert gcm_dg.equals(ds.dg), (gcm_dg, ds.dg)
def test_horizontal_derivatives(test_dataset): ds = test_dataset dx = ds.attrs['dx'] dy = ds.attrs['dy'] Lx = ds.attrs['Lx'] Ly = ds.attrs['Ly'] # perdiodic function of Xp1 f = np.sin(np.pi * ds.Xp1.values / Lx) ds['f'] = ('Xp1', f) ds['df'] = ('X', np.roll(f, -1) - f) ds['dfdx'] = ds.df / dx # periodic function of Yp1 g = np.cos(np.pi * ds.Yp1.values / Ly) ds['g'] = ('Yp1', g) ds['dg'] = ('Y', np.roll(g, -1) - g) ds['dgdy'] = ds.dg / dy gcm = GCMDataset(ds) gcm_df = gcm.diff_xp1_to_x(ds.f) assert gcm_df.equals(ds.df), (gcm_df, ds.df) gcm_dg = gcm.diff_yp1_to_y(ds.g) assert gcm_dg.equals(ds.dg), (gcm_dg, ds.dg)