def test_idims(self):
"""Test the extraction of the slicers of the dimensions"""
ds = psyd.open_dataset(bt.get_file('test-t2m-u-v.nc'))
arr = ds.t2m[1:, 1]
arr.psy.init_accessor(base=ds)
dims = arr.psy.idims
for dim in ['time', 'lev', 'lat', 'lon']:
self.assertEqual(
psyd.safe_list(ds[dim][dims[dim]]),
psyd.safe_list(arr.coords[dim]),
msg="Slice %s for dimension %s is wrong!" % (dims[dim], dim))
# test with unknown dimensions
if xr.__version__ >= '0.9':
ds = ds.drop('time')
arr = ds.t2m[1:, 1]
arr.psy.init_accessor(base=ds)
if not six.PY2:
with self.assertWarnsRegex(UserWarning, 'time'):
dims = arr.psy.idims
l = psyd.ArrayList.from_dataset(
ds, name='t2m', time=slice(1, None), lev=85000., method='sel')
arr = l[0]
dims = arr.psy.idims
for dim in ['time', 'lev', 'lat', 'lon']:
if dim == 'time':
self.assertEqual(dims[dim], slice(1, 5, 1))
else:
self.assertEqual(
psyd.safe_list(ds[dim][dims[dim]]),
psyd.safe_list(arr.coords[dim]),
msg="Slice %s for dimension %s is wrong!" % (dims[dim],
dim))
评论列表
文章目录