id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type
2064544219,I_kwDOAMm_X857DnHb,8583,Unexpected Dataset aggregation behavior when weighting,3169620,open,0,,,1,2024-01-03T19:32:11Z,2024-01-04T19:12:58Z,,CONTRIBUTOR,,,,"### What happened?
When aggregating a dataset over specified dimensions I don't expect variables which don't have those dimensions to be aggregated.
### What did you expect to happen?
When a weighting is applied to the aggregation, variables which do not have the aggregation dimensions are nevertheless aggregated. Presumably because the weights get broadcast across those variables. Perhaps this is the intended behavior but it seems surprising to me and should at least be documented I think.
### Minimal Complete Verifiable Example
```Python
import xarray as xr
import numpy as np
var1 = np.ones((2, 2, 3))
var2 = np.ones((3))
lon = np.arange(4).reshape(2, 2)
lat = np.arange(4).reshape(2, 2)
ds = xr.Dataset(
{
""temperature"": ([""x"", ""y"", ""time""], var1),
""precipitation"": ([""time""], var2),
},
coords={
""lon"": ([""x"", ""y""], lon),
""lat"": ([""x"", ""y""], lat),
""time"": np.arange(3),
},
)
print(ds.sum(['x', 'y']))
# Precipitation (with no x or y dimension) is not summed over, leading to values [1. 1. 1.]
print(ds.weighted(xr.ones_like(ds['temperature'])).sum(['x', 'y']))
# Precipitation is now summed over, leading to values [4. 4. 4.]
```
### MVCE confirmation
- [X] Minimal example — the example is as focused as reasonably possible to demonstrate the underlying issue in xarray.
- [X] Complete example — the example is self-contained, including all data and the text of any traceback.
- [X] Verifiable example — the example copy & pastes into an IPython prompt or [Binder notebook](https://mybinder.org/v2/gh/pydata/xarray/main?urlpath=lab/tree/doc/examples/blank_template.ipynb), returning the result.
- [X] New issue — a search of GitHub Issues suggests this is not a duplicate.
- [X] Recent environment — the issue occurs with the latest version of xarray and its dependencies.
### Relevant log output
_No response_
### Anything else we need to know?
_No response_
### Environment
INSTALLED VERSIONS
------------------
commit: None
python: 3.9.16 | packaged by conda-forge | (main, Feb 1 2023, 21:38:11)
[Clang 14.0.6 ]
python-bits: 64
OS: Darwin
OS-release: 23.1.0
machine: arm64
processor: arm
byteorder: little
LC_ALL: None
LANG: None
LOCALE: (None, 'UTF-8')
libhdf5: 1.12.2
libnetcdf: 4.9.1
xarray: 2023.3.0
pandas: 1.5.3
numpy: 1.23.5
scipy: 1.10.1
netCDF4: 1.6.3
pydap: None
h5netcdf: None
h5py: 3.8.0
Nio: None
zarr: 2.14.2
cftime: 1.6.2
nc_time_axis: None
PseudoNetCDF: None
rasterio: 1.3.6
cfgrib: None
iris: 3.4.1
bottleneck: None
dask: 2023.3.2
distributed: 2023.3.2.1
matplotlib: 3.7.1
cartopy: 0.21.1
seaborn: 0.12.2
numbagg: None
fsspec: 2023.10.0
cupy: None
pint: None
sparse: None
flox: None
numpy_groupies: None
setuptools: 67.6.1
pip: 23.0.1
conda: None
pytest: None
mypy: None
IPython: 8.12.0
sphinx: None
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8583/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue
282964952,MDU6SXNzdWUyODI5NjQ5NTI=,1790,'Cookbook' page,3169620,open,0,,,6,2017-12-18T17:46:25Z,2019-12-08T23:31:08Z,,CONTRIBUTOR,,,,"Would there be interest in adding a 'cookbook' section to the docs a-la [Pandas](http://pandas.pydata.org/pandas-docs/stable/cookbook.html)? The current Recipes section might then be better renamed as Gallery?
It's useful for the kind of thing which isn't a full-fledged example, but might be useful nonetheless. I'll hapily put together a pull-request if there's interest. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/1790/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue
281897468,MDU6SXNzdWUyODE4OTc0Njg=,1778,ValueError on empty selection with dask based DataArrays,3169620,closed,0,,3801867,2,2017-12-13T21:09:42Z,2019-07-12T13:41:08Z,2019-07-12T13:41:08Z,CONTRIBUTOR,,,,"#### Code Sample, a copy-pastable example if possible
```python
import xarray as xr
import numpy as np
da = xr.DataArray(np.random.rand(15), dims=['latitude'], coords={'latitude':np.linspace(90, -90, 15)})
# This gives an empty latitude slice
print(da.sel(latitude=slice(20, 60)))
# After converting the DataArray to dask...
da=da.chunk()
# ...this throws a ValueError due to 'conflicting sizes'
print(da.sel(latitude=slice(20, 60)))
```
#### Problem description
I would expect the dask based DataArray to return an empty slice just as the numpy one does.
Although arguably it would be nicer if both returned the latitude values between 20 and 60 - regardless of the direction of the coordinate. Perhaps the sel method could check whether the coordinate is increasing or decreasing?
#### Output of ``xr.show_versions()``
# Paste the output here xr.show_versions() here
xarray version: 0.9.6
numpy version: 1.13.3
dask version: 0.15.4
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/1778/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue
293445250,MDU6SXNzdWUyOTM0NDUyNTA=,1877,TypeError for NetCDF float16 output,3169620,closed,0,,,4,2018-02-01T08:39:03Z,2018-02-26T10:46:47Z,2018-02-26T10:46:47Z,CONTRIBUTOR,,,,"```python
ds = xr.Dataset({""test"": np.arange(0, 5, dtype='float16')})
ds.to_netcdf('test.nc')
```
This fails because the float16 type doesn't exist for NetCDF files, throwing an `TypeError: illegal primitive data type.`
It might be nice if the xarray netCDF engine promoted this to float32 instead.
#### Output of ``xr.show_versions()``
INSTALLED VERSIONS
------------------
commit: None
python: 3.6.4.final.0
python-bits: 64
OS: Linux
OS-release: 3.11.0-26-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_GB.UTF-8
LOCALE: en_GB.UTF-8
xarray: 0.10.0
pandas: 0.22.0
numpy: 1.14.0
scipy: 1.0.0
netCDF4: 1.3.1
h5netcdf: 0.5.0
Nio: None
bottleneck: 1.2.1
cyordereddict: None
dask: 0.16.1
matplotlib: 2.1.2
cartopy: 0.15.1
seaborn: 0.8.1
setuptools: 38.4.0
pip: 9.0.1
conda: None
pytest: None
IPython: 6.2.1
sphinx: None
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/1877/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue
273459295,MDU6SXNzdWUyNzM0NTkyOTU=,1715,Error accessing isnull() and notnull() on Dataset,3169620,closed,0,,,3,2017-11-13T14:59:30Z,2017-11-13T16:07:01Z,2017-11-13T16:07:01Z,CONTRIBUTOR,,,,"#### Code Sample, a copy-pastable example if possible
```python
# Create basic Dataset
import numpy as np
import pandas as pd
import xarray as xr
temp = 15 + 8 * np.random.randn(2, 2, 3)
precip = 10 * np.random.rand(2, 2, 3)
lon = [[-99.83, -99.32], [-99.79, -99.23]]
lat = [[42.25, 42.21], [42.63, 42.59]]
# for real use cases, its good practice to supply array attributes such as
# units, but we won't bother here for the sake of brevity
ds = xr.Dataset({'temperature': (['x', 'y', 'time'], temp),
'precipitation': (['x', 'y', 'time'], precip)},
coords={'lon': (['x', 'y'], lon),
'lat': (['x', 'y'], lat),
'time': pd.date_range('2014-09-06', periods=3),
'reference_time': pd.Timestamp('2014-09-05')})
# Both of these throw attribute errors
ds.notnull()
# ds.isnull()
```
#### Problem description
The above methods throw `AttributeError: 'Variable' object has no attribute '_constructor'` errors when called on Datasets. It's not clear if this operation is currently supported, but if it's not then it probably shouldn't be exposed through the API.
#### Expected Output
Dataset of boolean DataArrays indicating null-ness.
#### Output of ``xr.show_versions()``
Show_versions() doesn't seem to exist in 0.9.6, but presumably this covers it:
Numpy version: 1.13.1
Pandas version: 0.21.0
XArray version: 0.9.6
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/1715/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue