本文整理汇总了Python中xarray.Dataset.sum方法的典型用法代码示例。如果您正苦于以下问题:Python Dataset.sum方法的具体用法?Python Dataset.sum怎么用?Python Dataset.sum使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xarray.Dataset
的用法示例。
在下文中一共展示了Dataset.sum方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: global_avg
# 需要导入模块: from xarray import Dataset [as 别名]
# 或者: from xarray.Dataset import sum [as 别名]
def global_avg(data, weights=None, dims=['lon', 'lat']):
""" Compute (area-weighted) global average over a DataArray
or Dataset. If `weights` are not passed, they will be computed
by using the areas of each grid cell in the dataset.
.. note::
Handles missing values (nans and infs).
"""
if isinstance(data, DataArray):
if weights is None: # Compute gaussian weights in latitude
weights = area_grid(data.lon, data.lat)
# Saving for later - compute latitudinal weighting
# gw = weights.sum('lon')
# weights = 2.*gw/gw.sum('lat')
weights = weights.where(xu.isfinite(data))
total_weights = weights.sum(dims)
return (data*weights).sum(dims)/total_weights
elif isinstance(data, Dataset):
# Create a new temporary Dataset
new_data = Dataset()
# Iterate over the contents of the original Dataset,
# which are all DataArrays, and compute the global avg
# on those elements.
for v in data.data_vars:
coords = data[v].coords
if not ('lon' in coords):
new_data[v] = data[v]
else:
new_data[v] = global_avg(data[v], weights)
# Collapse remaining lat, lon dimensions if they're here
leftover_dims = [d for d in dims if d in new_data.coords]
if leftover_dims:
new_data = new_data.sum(leftover_dims)
return new_data