def test_vertical_diff(gfdl_datadir): ds = xr.open_dataset(os.path.join(gfdl_datadir, 'test_gfdl.nc'), decode_times=False) dom = GCMDataset(ds) # fake a constant lapse rate from surface temp upwards lapse_rate = 10.0 ds['const_lapse'] = (ds.temp.sel(pfull=ds.pfull.max()) - lapse_rate*(ds.pfull)) dTdz = dom.diff(ds.const_lapse, 'z') assert np.allclose(ds.const_lapse.diff('pfull') / ds.pfull.diff('pfull'), -lapse_rate)