def test_unstagger(self): wf = get_demo_file('wrf_cropped.nc') with netCDF4.Dataset(wf) as nc: nc.set_auto_mask(False) ref = nc['PH'][:] ref = 0.5 * (ref[:, :-1, ...] + ref[:, 1:, ...]) # Own constructor v = wrftools.Unstaggerer(nc['PH']) assert_allclose(v[:], ref) assert_allclose(v[0:2, 2:12, ...], ref[0:2, 2:12, ...]) assert_allclose(v[:, 2:12, ...], ref[:, 2:12, ...]) assert_allclose(v[0:2, 2:12, 5:10, 15:17], ref[0:2, 2:12, 5:10, 15:17]) assert_allclose(v[1:2, 2:, 5:10, 15:17], ref[1:2, 2:, 5:10, 15:17]) assert_allclose(v[1:2, :-2, 5:10, 15:17], ref[1:2, :-2, 5:10, 15:17]) assert_allclose(v[1:2, 2:-4, 5:10, 15:17], ref[1:2, 2:-4, 5:10, 15:17]) assert_allclose(v[[0, 2], ...], ref[[0, 2], ...]) assert_allclose(v[..., [0, 2]], ref[..., [0, 2]]) assert_allclose(v[0, ...], ref[0, ...]) # Under WRF nc = WRF(wf) assert_allclose(nc.get_vardata('PH'), ref) nc.set_period(1, 2) assert_allclose(nc.get_vardata('PH'), ref[1:3, ...])
def test_unstagger(self): wf = get_demo_file("wrf_cropped.nc") nc = netCDF4.Dataset(wf) ref = nc["PH"][:] ref = 0.5 * (ref[:, :-1, ...] + ref[:, 1:, ...]) # Own constructor v = wrftools.Unstaggerer(nc["PH"]) assert_allclose(v[:], ref) assert_allclose(v[0:2, 2:12, ...], ref[0:2, 2:12, ...]) assert_allclose(v[:, 2:12, ...], ref[:, 2:12, ...]) assert_allclose(v[0:2, 2:12, 5:10, 15:17], ref[0:2, 2:12, 5:10, 15:17]) assert_allclose(v[1:2, 2:, 5:10, 15:17], ref[1:2, 2:, 5:10, 15:17]) assert_allclose(v[1:2, :-2, 5:10, 15:17], ref[1:2, :-2, 5:10, 15:17]) assert_allclose(v[1:2, 2:-4, 5:10, 15:17], ref[1:2, 2:-4, 5:10, 15:17]) assert_allclose(v[[0, 2], ...], ref[[0, 2], ...]) assert_allclose(v[..., [0, 2]], ref[..., [0, 2]]) assert_allclose(v[0, ...], ref[0, ...]) # Under WRF nc = WRF(wf) assert_allclose(nc.get_vardata("PH"), ref) nc.set_period(1, 2) assert_allclose(nc.get_vardata("PH"), ref[1:3, ...])
def test_unstagger_compressed(self): wf = get_demo_file('wrf_cropped.nc') wfc = get_demo_file('wrf_cropped_compressed.nc') # Under WRF nc = WRF(wf) ncc = WRF(wfc) assert_allclose(nc.get_vardata('PH'), ncc.get_vardata('PH'), rtol=.003) nc.set_period(1, 2) ncc.set_period(1, 2) assert_allclose(nc.get_vardata('PH'), ncc.get_vardata('PH'), rtol=.003)