本文整理汇总了Python中xarray.Dataset.assign方法的典型用法代码示例。如果您正苦于以下问题:Python Dataset.assign方法的具体用法?Python Dataset.assign怎么用?Python Dataset.assign使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xarray.Dataset
的用法示例。
在下文中一共展示了Dataset.assign方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _normalize_lon_360
# 需要导入模块: from xarray import Dataset [as 别名]
# 或者: from xarray.Dataset import assign [as 别名]
def _normalize_lon_360(ds: xr.Dataset) -> xr.Dataset:
"""
Fix the longitude of the given dataset ``ds`` so that it ranges from -180 to +180 degrees.
:param ds: The dataset whose longitudes may be given in the range 0 to 360.
:return: The fixed dataset or the original dataset.
"""
if 'lon' not in ds.coords:
return ds
lon_var = ds.coords['lon']
if len(lon_var.shape) != 1:
return ds
lon_size = lon_var.shape[0]
if lon_size < 2:
return ds
lon_size_05 = lon_size // 2
lon_values = lon_var.values
if not np.any(lon_values[lon_size_05:] > 180.):
return ds
delta_lon = lon_values[1] - lon_values[0]
var_names = [var_name for var_name in ds.data_vars]
ds = ds.assign_coords(lon=xr.DataArray(np.linspace(-180. + 0.5 * delta_lon,
+180. - 0.5 * delta_lon,
lon_size),
dims=ds['lon'].dims,
attrs=dict(long_name='longitude',
standard_name='longitude',
units='degrees east')))
ds = adjust_spatial_attrs_impl(ds, True)
new_vars = dict()
for var_name in var_names:
var = ds[var_name]
if len(var.dims) >= 1 and var.dims[-1] == 'lon':
values = np.copy(var.values)
temp = np.copy(values[..., : lon_size_05])
values[..., : lon_size_05] = values[..., lon_size_05:]
values[..., lon_size_05:] = temp
# import matplotlib.pyplot as plt
# im = values[(len(values.shape) - 2) * [0] + [slice(None), slice(None)]]
# plt.imshow(im)
new_vars[var_name] = xr.DataArray(values, dims=var.dims, attrs=var.attrs, encoding=var.encoding)
return ds.assign(**new_vars)