html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue
https://github.com/pydata/xarray/issues/3937#issuecomment-656060893,https://api.github.com/repos/pydata/xarray/issues/3937,656060893,MDEyOklzc3VlQ29tbWVudDY1NjA2MDg5Mw==,10194086,2020-07-09T11:00:46Z,2020-07-09T11:00:46Z,MEMBER,"No that won't work. You need to mask the weights where the data is NaN. An untested and not very efficient way may be:
```python
def coarsen_weighted_mean(da, weights, dims, skipna=None, boundary=""exact""):
weighted_sum = (da * weights).coarsen(dims, boundary=boundary).sum(skipna=skipna)
masked_weights = weights.where(da.notnull())
sum_of_weights = masked_weights.coarsen(dims, boundary=boundary).sum()
valid_weights = sum_of_weights != 0
sum_of_weights = sum_of_weights.where(valid_weights)
return weighted_sum / sum_of_weights
```
An example (without NaNs though):
```python
import xarray as xr
import numpy as np
air = xr.tutorial.open_dataset(""air_temperature"").air
weights = np.cos(np.deg2rad(air.lat))
# we need to rename them from ""lat""
weights.name = ""weights""
c_w_m = coarsen_weighted_mean(air, weights, dict(lat=2), boundary=""trim"")
# to compare do it for one slice
alt = air.isel(lat=slice(0, 2)).weighted(weights).mean(""lat"")
# compare if it is the same
xr.testing.assert_allclose(c_w_m.isel(lat=0, drop=True), alt)
```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,594669577
https://github.com/pydata/xarray/issues/3937#issuecomment-655983882,https://api.github.com/repos/pydata/xarray/issues/3937,655983882,MDEyOklzc3VlQ29tbWVudDY1NTk4Mzg4Mg==,10194086,2020-07-09T08:21:39Z,2020-07-09T08:21:39Z,MEMBER,"That's currently not possible. What you can try is the following:
```
(ds * coslat_weights).coarsen(lat=2, lon=2).sum() / coslat_weights.coarsen(lat=2, lon=2).sum()
```
but this only works if you don't have any NaNs.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,594669577