本文整理汇总了Python中xarray.DataArray.assign_coords方法的典型用法代码示例。如果您正苦于以下问题:Python DataArray.assign_coords方法的具体用法?Python DataArray.assign_coords怎么用?Python DataArray.assign_coords使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xarray.DataArray
的用法示例。
在下文中一共展示了DataArray.assign_coords方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: loopread
# 需要导入模块: from xarray import DataArray [as 别名]
# 或者: from xarray.DataArray import assign_coords [as 别名]
def loopread(tcoutput, size_record, ncol, n_alt, size_head, size_data_record, tReq):
tcoutput = Path(tcoutput).expanduser()
n_t = tcoutput.stat().st_size // size_record // d_bytes
chi = empty(n_t, float)
t = empty(n_t, datetime)
plasmaparam = DataArray(data=empty((n_t, n_alt, 4)), dims=["time", "alt_km", "isrparam"])
iono = DataArray(data=empty((n_t, n_alt, 22)), dims=["time", "alt_km", "param"])
with tcoutput.open("rb") as f: # reset to beginning
for i in range(n_t):
iono[i, ...], chi[i], t[i], alt, plasmaparam[i, ...] = data_tra(
f, size_record, ncol, n_alt, size_head, size_data_record
)
# FIXME isn't there a way to inherit coordinates like Pandas?
iono = iono.assign_coords(time=t, param=PARAM, alt_km=alt)
plasmaparam = plasmaparam.assign_coords(time=t, isrparam=ISRPARAM, alt_km=alt)
#%% handle time request -- will return Dataframe if tReq, else returns Panel of all times
if tReq is not None: # have to qualify this since picktime default gives last time as fallback
tUsedInd = picktime(iono.time, tReq, None)[0]
if tUsedInd is not None: # in case ind is 0
iono = iono[tUsedInd, ...]
plasmaparam = plasmaparam[tUsedInd, ...]
return iono, chi, plasmaparam
示例2: staggered_to_right
# 需要导入模块: from xarray import DataArray [as 别名]
# 或者: from xarray.DataArray import assign_coords [as 别名]
def staggered_to_right(f: xr.DataArray, block_size, dim, boundary='wrap'):
"""Move staggered variable to the right interface
Parameters
----------
f : xr.DataArray
block_size : size of the coarse graining block
dim : str
boundary : str, optional
A boundary condition which is passed to `isel_bc`
Returns
-------
interface : xr.DataArray
The value of f along the right interfaces of the coarse-grain blocks
"""
n = f.shape[f.get_axis_num(dim)]
new_coord = get_center_coords(f[dim].values, block_size)
idx = slice(block_size, n+block_size, block_size)
f = isel_bc(f, idx, dim, boundary=boundary)
return f.assign_coords(**{dim: new_coord})
示例3: TestDataArrayAndDataset
# 需要导入模块: from xarray import DataArray [as 别名]
# 或者: from xarray.DataArray import assign_coords [as 别名]
#.........这里部分代码省略.........
# Finally, test that riginals are unaltered
assert ds1['d'].data is d1
assert ds1['c'].data is c1
assert ds2['d'].data is d2
assert ds2['c'].data is c2
assert ds3['d'].data is d3
assert ds3['c'].data is c3
def test_groupby(self):
if LooseVersion(dask.__version__) == LooseVersion('0.15.3'):
pytest.xfail('upstream bug in dask: '
'https://github.com/dask/dask/issues/2718')
u = self.eager_array
v = self.lazy_array
expected = u.groupby('x').mean()
actual = v.groupby('x').mean()
self.assertLazyAndAllClose(expected, actual)
def test_groupby_first(self):
u = self.eager_array
v = self.lazy_array
for coords in [u.coords, v.coords]:
coords['ab'] = ('x', ['a', 'a', 'b', 'b'])
with raises_regex(NotImplementedError, 'dask'):
v.groupby('ab').first()
expected = u.groupby('ab').first()
actual = v.groupby('ab').first(skipna=False)
self.assertLazyAndAllClose(expected, actual)
def test_reindex(self):
u = self.eager_array.assign_coords(y=range(6))
v = self.lazy_array.assign_coords(y=range(6))
for kwargs in [{'x': [2, 3, 4]},
{'x': [1, 100, 2, 101, 3]},
{'x': [2.5, 3, 3.5], 'y': [2, 2.5, 3]}]:
expected = u.reindex(**kwargs)
actual = v.reindex(**kwargs)
self.assertLazyAndAllClose(expected, actual)
def test_to_dataset_roundtrip(self):
u = self.eager_array
v = self.lazy_array
expected = u.assign_coords(x=u['x'])
self.assertLazyAndEqual(expected, v.to_dataset('x').to_array('x'))
def test_merge(self):
def duplicate_and_merge(array):
return xr.merge([array, array.rename('bar')]).to_array()
expected = duplicate_and_merge(self.eager_array)
actual = duplicate_and_merge(self.lazy_array)
self.assertLazyAndEqual(expected, actual)
def test_ufuncs(self):
u = self.eager_array
v = self.lazy_array
self.assertLazyAndAllClose(np.sin(u), xu.sin(v))
def test_where_dispatching(self):
a = np.arange(10)
示例4: TestDataArrayAndDataset
# 需要导入模块: from xarray import DataArray [as 别名]
# 或者: from xarray.DataArray import assign_coords [as 别名]
class TestDataArrayAndDataset(DaskTestCase):
def assertLazyAndIdentical(self, expected, actual):
self.assertLazyAnd(expected, actual, self.assertDataArrayIdentical)
def assertLazyAndAllClose(self, expected, actual):
self.assertLazyAnd(expected, actual, self.assertDataArrayAllClose)
def assertLazyAndEqual(self, expected, actual):
self.assertLazyAnd(expected, actual, self.assertDataArrayEqual)
def setUp(self):
self.values = np.random.randn(4, 6)
self.data = da.from_array(self.values, chunks=(2, 2))
self.eager_array = DataArray(self.values, coords={'x': range(4)},
dims=('x', 'y'), name='foo')
self.lazy_array = DataArray(self.data, coords={'x': range(4)},
dims=('x', 'y'), name='foo')
def test_rechunk(self):
chunked = self.eager_array.chunk({'x': 2}).chunk({'y': 2})
self.assertEqual(chunked.chunks, ((2,) * 2, (2,) * 3))
self.assertLazyAndIdentical(self.lazy_array, chunked)
def test_new_chunk(self):
chunked = self.eager_array.chunk()
self.assertTrue(chunked.data.name.startswith('xarray-<this-array>'))
def test_lazy_dataset(self):
lazy_ds = Dataset({'foo': (('x', 'y'), self.data)})
self.assertIsInstance(lazy_ds.foo.variable.data, da.Array)
def test_lazy_array(self):
u = self.eager_array
v = self.lazy_array
self.assertLazyAndAllClose(u, v)
self.assertLazyAndAllClose(-u, -v)
self.assertLazyAndAllClose(u.T, v.T)
self.assertLazyAndAllClose(u.mean(), v.mean())
self.assertLazyAndAllClose(1 + u, 1 + v)
actual = xr.concat([v[:2], v[2:]], 'x')
self.assertLazyAndAllClose(u, actual)
def test_groupby(self):
u = self.eager_array
v = self.lazy_array
expected = u.groupby('x').mean()
actual = v.groupby('x').mean()
self.assertLazyAndAllClose(expected, actual)
def test_groupby_first(self):
u = self.eager_array
v = self.lazy_array
for coords in [u.coords, v.coords]:
coords['ab'] = ('x', ['a', 'a', 'b', 'b'])
with self.assertRaisesRegexp(NotImplementedError, 'dask'):
v.groupby('ab').first()
expected = u.groupby('ab').first()
actual = v.groupby('ab').first(skipna=False)
self.assertLazyAndAllClose(expected, actual)
def test_reindex(self):
u = self.eager_array.assign_coords(y=range(6))
v = self.lazy_array.assign_coords(y=range(6))
for kwargs in [{'x': [2, 3, 4]},
{'x': [1, 100, 2, 101, 3]},
{'x': [2.5, 3, 3.5], 'y': [2, 2.5, 3]}]:
expected = u.reindex(**kwargs)
actual = v.reindex(**kwargs)
self.assertLazyAndAllClose(expected, actual)
def test_to_dataset_roundtrip(self):
u = self.eager_array
v = self.lazy_array
expected = u.assign_coords(x=u['x'])
self.assertLazyAndEqual(expected, v.to_dataset('x').to_array('x'))
def test_merge(self):
def duplicate_and_merge(array):
return xr.merge([array, array.rename('bar')]).to_array()
expected = duplicate_and_merge(self.eager_array)
actual = duplicate_and_merge(self.lazy_array)
self.assertLazyAndEqual(expected, actual)
def test_ufuncs(self):
u = self.eager_array
v = self.lazy_array
self.assertLazyAndAllClose(np.sin(u), xu.sin(v))
def test_where_dispatching(self):
a = np.arange(10)
b = a > 3
x = da.from_array(a, 5)
#.........这里部分代码省略.........