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/pull/3159#issuecomment-525015879,https://api.github.com/repos/pydata/xarray/issues/3159,525015879,MDEyOklzc3VlQ29tbWVudDUyNTAxNTg3OQ==,23618263,2019-08-26T20:20:17Z,2019-08-26T20:20:17Z,CONTRIBUTOR,"> Great, looking good @DangoMelon - I merged master to resolve a conflict - then we can get this in!
Thanks for the help! I'm glad to contribute to this project.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,472100381
https://github.com/pydata/xarray/pull/3159#issuecomment-519524084,https://api.github.com/repos/pydata/xarray/issues/3159,519524084,MDEyOklzc3VlQ29tbWVudDUxOTUyNDA4NA==,23618263,2019-08-08T13:44:22Z,2019-08-08T13:44:22Z,CONTRIBUTOR,">
> That's a good point. I think in this case, given that it's passed to an arg expected an array, we should raise on 0d.
>
I was expecting to rely on the current implementation of `is_scalar` to do the type checking since I'm moving `_check_data_shape` above `as_compatible_data` to do something like this
```python
if utils.is_scalar(data) and coords is not None:
```
Otherwise everything would be filter out since `as_compatible_data` returns a 0d given a scalar value.
https://github.com/pydata/xarray/blob/8d46bf09f20e022baca98b4050584d93c0ea118b/xarray/core/variable.py#L195-L196
I can only imagine copying `is_scalar` but removing `getattr(value, 'ndim', None) == 0` to filter out the 0d to only do the duplication on scalars.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,472100381
https://github.com/pydata/xarray/pull/3159#issuecomment-518876089,https://api.github.com/repos/pydata/xarray/issues/3159,518876089,MDEyOklzc3VlQ29tbWVudDUxODg3NjA4OQ==,23618263,2019-08-06T23:07:34Z,2019-08-06T23:07:34Z,CONTRIBUTOR,"Thanks for the feedback.
>
>My inclination is to treat these like multi-dimensional arrays, in which case we should raise an error to avoid hiding errors.
>
I wasn't sure on how to treat 0-dimensional arrays and just assumed it to be the same as a scalar since this function considers them as so
https://github.com/pydata/xarray/blob/1ab7569561db50eaccbae977b0ef69993e0c0d0c/xarray/core/utils.py#L238-L248
Should I treat them like multi-dimensional arrays or leave the current behavior for consistency with the snippet above?
>
> If the default value is `NaN`, we could reuse xarray's pre-existing sentinel value for NA:
>
Thanks for the advice, I'll be using this.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,472100381
https://github.com/pydata/xarray/pull/3159#issuecomment-518747403,https://api.github.com/repos/pydata/xarray/issues/3159,518747403,MDEyOklzc3VlQ29tbWVudDUxODc0NzQwMw==,23618263,2019-08-06T16:36:42Z,2019-08-06T16:36:42Z,CONTRIBUTOR,"So far, this addition can do the following:
- Use a scalar value
```python
>>> xr.DataArray(5, coords=[('x', np.arange(3)), ('y', ['a', 'b'])])
array([[5, 5],
[5, 5],
[5, 5]])
Coordinates:
* x (x) int64 0 1 2
* y (y) >> xr.DataArray(np.array(1.0), coords=[('x', np.arange(3)), ('y', ['a', 'b'])])
array([[1., 1.],
[1., 1.],
[1., 1.]])
Coordinates:
* x (x) int64 0 1 2
* y (y) >> xr.DataArray(0, coords={'x': pd.date_range('20190101', '20190131'),
'y': ['north', 'south'], 'z': np.arange(4)},
dims=['w', 'x', 'y', 'p', 'z'])
array([[[[[0, ..., 0]],
[[0, ..., 0]]],
...,
[[[0, ..., 0]],
[[0, ..., 0]]]]])
Coordinates:
* x (x) datetime64[ns] 2019-01-01 2019-01-02 ... 2019-01-30 2019-01-31
* y (y) >> xr.DataArray(None, coords={'x': np.datetime64('2019-01-01'),
'y': np.arange(100),
'z': 'ST1',
'p': np.arange(10)}, dims=['y', 'p'])
array([[ 4.047386e-320, 6.719293e-321, 0.000000e+000, ..., 6.935425e-310,
6.935319e-310, 0.000000e+000],
[ 4.940656e-324, 6.935107e-310, 6.935432e-310, ..., 6.935432e-310,
1.086944e-322, 6.935430e-310],
[ 6.935432e-310, 6.935319e-310, 2.758595e-313, ..., 6.935432e-310,
6.935432e-310, 6.935432e-310],
...,
[ 6.781676e+194, 3.328071e-113, 9.124901e+192, ..., 2.195875e-157,
-4.599251e-303, -2.217863e-250],
[ 7.830998e+247, -8.407382e+089, 1.299071e+193, ..., 9.124901e+192,
-4.661908e-303, 2.897933e+193],
[ 1.144295e-309, 7.041423e+053, -8.538757e-210, ..., 1.473665e+256,
-6.525461e-210, -1.665001e-075]])
Coordinates:
x datetime64[ns] 2019-01-01
* y (y) int64 0 1 2 3 4 5 6 7 8 9 10 ... 90 91 92 93 94 95 96 97 98 99
z