本文整理汇总了Python中xarray.DataArray.to_dataset方法的典型用法代码示例。如果您正苦于以下问题:Python DataArray.to_dataset方法的具体用法?Python DataArray.to_dataset怎么用?Python DataArray.to_dataset使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xarray.DataArray
的用法示例。
在下文中一共展示了DataArray.to_dataset方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_decode_cf_time_bounds
# 需要导入模块: from xarray import DataArray [as 别名]
# 或者: from xarray.DataArray import to_dataset [as 别名]
def test_decode_cf_time_bounds():
da = DataArray(np.arange(6, dtype='int64').reshape((3, 2)),
coords={'time': [1, 2, 3]},
dims=('time', 'nbnd'), name='time_bnds')
attrs = {'units': 'days since 2001-01',
'calendar': 'standard',
'bounds': 'time_bnds'}
ds = da.to_dataset()
ds['time'].attrs.update(attrs)
_update_bounds_attributes(ds.variables)
assert ds.variables['time_bnds'].attrs == {'units': 'days since 2001-01',
'calendar': 'standard'}
dsc = decode_cf(ds)
assert dsc.time_bnds.dtype == np.dtype('M8[ns]')
dsc = decode_cf(ds, decode_times=False)
assert dsc.time_bnds.dtype == np.dtype('int64')
# Do not overwrite existing attrs
ds = da.to_dataset()
ds['time'].attrs.update(attrs)
bnd_attr = {'units': 'hours since 2001-01', 'calendar': 'noleap'}
ds['time_bnds'].attrs.update(bnd_attr)
_update_bounds_attributes(ds.variables)
assert ds.variables['time_bnds'].attrs == bnd_attr
# If bounds variable not available do not complain
ds = da.to_dataset()
ds['time'].attrs.update(attrs)
ds['time'].attrs['bounds'] = 'fake_var'
_update_bounds_attributes(ds.variables)
示例2: setUp
# 需要导入模块: from xarray import DataArray [as 别名]
# 或者: from xarray.DataArray import to_dataset [as 别名]
def setUp(self):
da = DataArray(easy_array((10, 15), start=-1), dims=["y", "x"])
# add 2d coords
ds = da.to_dataset(name="testvar")
x, y = np.meshgrid(da.x.values, da.y.values)
ds["x2d"] = DataArray(x, dims=["y", "x"])
ds["y2d"] = DataArray(y, dims=["y", "x"])
ds.set_coords(["x2d", "y2d"], inplace=True)
# set darray and plot method
self.darray = ds.testvar
self.plotmethod = getattr(self.darray.plot, self.plotfunc.__name__)
示例3: test_decode_cf
# 需要导入模块: from xarray import DataArray [as 别名]
# 或者: from xarray.DataArray import to_dataset [as 别名]
def test_decode_cf(calendar):
days = [1., 2., 3.]
da = DataArray(days, coords=[days], dims=['time'], name='test')
ds = da.to_dataset()
for v in ['test', 'time']:
ds[v].attrs['units'] = 'days since 2001-01-01'
ds[v].attrs['calendar'] = calendar
if not has_cftime_or_netCDF4 and calendar not in _STANDARD_CALENDARS:
with pytest.raises(ValueError):
ds = decode_cf(ds)
else:
ds = decode_cf(ds)
if calendar not in _STANDARD_CALENDARS:
assert ds.test.dtype == np.dtype('O')
else:
assert ds.test.dtype == np.dtype('M8[ns]')
示例4: test_decode_cf_enable_cftimeindex
# 需要导入模块: from xarray import DataArray [as 别名]
# 或者: from xarray.DataArray import to_dataset [as 别名]
def test_decode_cf_enable_cftimeindex(calendar, enable_cftimeindex):
days = [1., 2., 3.]
da = DataArray(days, coords=[days], dims=['time'], name='test')
ds = da.to_dataset()
for v in ['test', 'time']:
ds[v].attrs['units'] = 'days since 2001-01-01'
ds[v].attrs['calendar'] = calendar
if (not has_cftime and enable_cftimeindex and
calendar not in coding.times._STANDARD_CALENDARS):
with pytest.raises(ValueError):
with set_options(enable_cftimeindex=enable_cftimeindex):
ds = decode_cf(ds)
else:
with set_options(enable_cftimeindex=enable_cftimeindex):
ds = decode_cf(ds)
if (enable_cftimeindex and
calendar not in coding.times._STANDARD_CALENDARS):
assert ds.test.dtype == np.dtype('O')
else:
assert ds.test.dtype == np.dtype('M8[ns]')
示例5: TestFacetGrid
# 需要导入模块: from xarray import DataArray [as 别名]
# 或者: from xarray.DataArray import to_dataset [as 别名]
#.........这里部分代码省略.........
xplt.FacetGrid(self.darray, col="z")
def test_robust(self):
z = np.zeros((20, 20, 2))
darray = DataArray(z, dims=["y", "x", "z"])
darray[:, :, 1] = 1
darray[2, 0, 0] = -1000
darray[3, 0, 0] = 1000
g = xplt.FacetGrid(darray, col="z")
g.map_dataarray(xplt.imshow, "x", "y", robust=True)
# Color limits should be 0, 1
# The largest number displayed in the figure should be less than 21
numbers = set()
alltxt = text_in_fig()
for txt in alltxt:
try:
numbers.add(float(txt))
except ValueError:
pass
largest = max(abs(x) for x in numbers)
self.assertLess(largest, 21)
def test_can_set_vmin_vmax(self):
vmin, vmax = 50.0, 1000.0
expected = np.array((vmin, vmax))
self.g.map_dataarray(xplt.imshow, "x", "y", vmin=vmin, vmax=vmax)
for image in plt.gcf().findobj(mpl.image.AxesImage):
clim = np.array(image.get_clim())
self.assertTrue(np.allclose(expected, clim))
def test_figure_size(self):
self.assertArrayEqual(self.g.fig.get_size_inches(), (10, 3))
g = xplt.FacetGrid(self.darray, col="z", size=6)
self.assertArrayEqual(g.fig.get_size_inches(), (19, 6))
g = self.darray.plot.imshow(col="z", size=6)
self.assertArrayEqual(g.fig.get_size_inches(), (19, 6))
g = xplt.FacetGrid(self.darray, col="z", size=4, aspect=0.5)
self.assertArrayEqual(g.fig.get_size_inches(), (7, 4))
def test_num_ticks(self):
nticks = 100
maxticks = nticks + 1
self.g.map_dataarray(xplt.imshow, "x", "y")
self.g.set_ticks(max_xticks=nticks, max_yticks=nticks)
for ax in self.g.axes.flat:
xticks = len(ax.get_xticks())
yticks = len(ax.get_yticks())
self.assertLessEqual(xticks, maxticks)
self.assertLessEqual(yticks, maxticks)
self.assertGreaterEqual(xticks, nticks / 2.0)
self.assertGreaterEqual(yticks, nticks / 2.0)
def test_map(self):
self.g.map(plt.contourf, "x", "y", Ellipsis)
self.g.map(lambda: None)
def test_map_dataset(self):
g = xplt.FacetGrid(self.darray.to_dataset(name="foo"), col="z")
g.map(plt.contourf, "x", "y", "foo")
alltxt = text_in_fig()
for label in ["x", "y"]:
self.assertIn(label, alltxt)
# everything has a label
self.assertNotIn("None", alltxt)
# colorbar can't be inferred automatically
self.assertNotIn("foo", alltxt)
self.assertEqual(0, len(find_possible_colorbars()))
g.add_colorbar(label="colors!")
self.assertIn("colors!", text_in_fig())
self.assertEqual(1, len(find_possible_colorbars()))
def test_set_axis_labels(self):
g = self.g.map_dataarray(xplt.contourf, "x", "y")
g.set_axis_labels("longitude", "latitude")
alltxt = text_in_fig()
for label in ["longitude", "latitude"]:
self.assertIn(label, alltxt)
def test_facetgrid_colorbar(self):
a = easy_array((10, 15, 4))
d = DataArray(a, dims=["y", "x", "z"], name="foo")
d.plot.imshow(x="x", y="y", col="z")
self.assertEqual(1, len(find_possible_colorbars()))
d.plot.imshow(x="x", y="y", col="z", add_colorbar=True)
self.assertEqual(1, len(find_possible_colorbars()))
d.plot.imshow(x="x", y="y", col="z", add_colorbar=False)
self.assertEqual(0, len(find_possible_colorbars()))
示例6: TestFacetGrid
# 需要导入模块: from xarray import DataArray [as 别名]
# 或者: from xarray.DataArray import to_dataset [as 别名]
#.........这里部分代码省略.........
clim = np.array(image.get_clim())
self.assertTrue(np.allclose(expected, clim))
@pytest.mark.slow
def test_can_set_norm(self):
norm = mpl.colors.SymLogNorm(0.1)
self.g.map_dataarray(xplt.imshow, 'x', 'y', norm=norm)
for image in plt.gcf().findobj(mpl.image.AxesImage):
self.assertIs(image.norm, norm)
@pytest.mark.slow
def test_figure_size(self):
self.assertArrayEqual(self.g.fig.get_size_inches(), (10, 3))
g = xplt.FacetGrid(self.darray, col='z', size=6)
self.assertArrayEqual(g.fig.get_size_inches(), (19, 6))
g = self.darray.plot.imshow(col='z', size=6)
self.assertArrayEqual(g.fig.get_size_inches(), (19, 6))
g = xplt.FacetGrid(self.darray, col='z', size=4, aspect=0.5)
self.assertArrayEqual(g.fig.get_size_inches(), (7, 4))
g = xplt.FacetGrid(self.darray, col='z', figsize=(9, 4))
self.assertArrayEqual(g.fig.get_size_inches(), (9, 4))
with self.assertRaisesRegexp(ValueError, "cannot provide both"):
g = xplt.plot(self.darray, row=2, col='z', figsize=(6, 4), size=6)
with self.assertRaisesRegexp(ValueError, "Can't use"):
g = xplt.plot(self.darray, row=2, col='z', ax=plt.gca(), size=6)
@pytest.mark.slow
def test_num_ticks(self):
nticks = 99
maxticks = nticks + 1
self.g.map_dataarray(xplt.imshow, 'x', 'y')
self.g.set_ticks(max_xticks=nticks, max_yticks=nticks)
for ax in self.g.axes.flat:
xticks = len(ax.get_xticks())
yticks = len(ax.get_yticks())
self.assertLessEqual(xticks, maxticks)
self.assertLessEqual(yticks, maxticks)
self.assertGreaterEqual(xticks, nticks / 2.0)
self.assertGreaterEqual(yticks, nticks / 2.0)
@pytest.mark.slow
def test_map(self):
self.g.map(plt.contourf, 'x', 'y', Ellipsis)
self.g.map(lambda: None)
@pytest.mark.slow
def test_map_dataset(self):
g = xplt.FacetGrid(self.darray.to_dataset(name='foo'), col='z')
g.map(plt.contourf, 'x', 'y', 'foo')
alltxt = text_in_fig()
for label in ['x', 'y']:
self.assertIn(label, alltxt)
# everything has a label
self.assertNotIn('None', alltxt)
# colorbar can't be inferred automatically
self.assertNotIn('foo', alltxt)
self.assertEqual(0, len(find_possible_colorbars()))
g.add_colorbar(label='colors!')
self.assertIn('colors!', text_in_fig())
self.assertEqual(1, len(find_possible_colorbars()))
@pytest.mark.slow
def test_set_axis_labels(self):
g = self.g.map_dataarray(xplt.contourf, 'x', 'y')
g.set_axis_labels('longitude', 'latitude')
alltxt = text_in_fig()
for label in ['longitude', 'latitude']:
self.assertIn(label, alltxt)
@pytest.mark.slow
def test_facetgrid_colorbar(self):
a = easy_array((10, 15, 4))
d = DataArray(a, dims=['y', 'x', 'z'], name='foo')
d.plot.imshow(x='x', y='y', col='z')
self.assertEqual(1, len(find_possible_colorbars()))
d.plot.imshow(x='x', y='y', col='z', add_colorbar=True)
self.assertEqual(1, len(find_possible_colorbars()))
d.plot.imshow(x='x', y='y', col='z', add_colorbar=False)
self.assertEqual(0, len(find_possible_colorbars()))
@pytest.mark.slow
def test_facetgrid_polar(self):
# test if polar projection in FacetGrid does not raise an exception
self.darray.plot.pcolormesh(col='z',
subplot_kws=dict(projection='polar'),
sharex=False, sharey=False)