def test_update_03_isel_concat(self):
"""test the update of a concatenated array through the isel method"""
ds = psyd.open_dataset(bt.get_file('test-t2m-u-v.nc'))[['t2m', 'u']]
arr = ds.psy.to_array().psy.isel(time=0, lev=0, lat=0)
arr.attrs['test'] = 4
self.assertNotIn('test', ds.t2m.attrs)
arr.name = 'something'
self.assertIs(arr.psy.base, ds)
self.assertEqual(dict(arr.psy.idims), {'time': 0, 'lev': 0, 'lat': 0,
'lon': slice(None)})
self.assertEqual(arr.coords['variable'].values.tolist(), ['t2m', 'u'])
# update to next time step
arr.psy.update(time=1)
self.assertEqual(arr.time, ds.time[1])
self.assertEqual(arr.coords['variable'].values.tolist(), ['t2m', 'u'])
self.assertEqual(arr.values.tolist(),
ds[['t2m', 'u']].to_array()[
:, 1, 0, 0, :].values.tolist())
self.assertEqual(dict(arr.psy.idims), {'time': 1, 'lev': 0, 'lat': 0,
'lon': slice(None)})
self.assertNotIn('test', ds.t2m.attrs)
self.assertIn('test', arr.attrs)
self.assertEqual(arr.test, 4)
self.assertEqual(arr.name, 'something')
评论列表
文章目录