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/4120#issuecomment-677939698,https://api.github.com/repos/pydata/xarray/issues/4120,677939698,MDEyOklzc3VlQ29tbWVudDY3NzkzOTY5OA==,46687291,2020-08-20T22:32:01Z,2020-08-20T22:53:14Z,CONTRIBUTOR,"My doubts on this are because self._replace are used elsewhere in the code. Changing from `_replace` to `copy` causes the tests on coarsen to fail, I am looking more into this now. ------------------ It seems that a condition of copy is that the data shapes match (variable.py line 947). If I run ``` ds = xr.tutorial.load_dataset(""air_temperature"") ds.air.coarsen(lat=5) ``` there is no problem, but once I add a `.mean()` to the end ``` ds = xr.tutorial.load_dataset(""air_temperature"") ds.air.coarsen(lat=5).mean() ``` The error is ``` ValueError: Data shape (2920, 5, 53) must match shape of object (2920, 25, 53) ```","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,630062936 https://github.com/pydata/xarray/issues/4120#issuecomment-677926857,https://api.github.com/repos/pydata/xarray/issues/4120,677926857,MDEyOklzc3VlQ29tbWVudDY3NzkyNjg1Nw==,46687291,2020-08-20T21:56:07Z,2020-08-20T21:59:48Z,CONTRIBUTOR,"@dcherian Could this be because the return of `variable.py/coarsen` or is it likely happening earlier in the fx? ``` return self._replace(data=func(reshaped, axis=axes, **kwargs)) ```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,630062936 https://github.com/pydata/xarray/issues/4120#issuecomment-673869137,https://api.github.com/repos/pydata/xarray/issues/4120,673869137,MDEyOklzc3VlQ29tbWVudDY3Mzg2OTEzNw==,11411331,2020-08-14T03:55:32Z,2020-08-14T03:55:32Z,CONTRIBUTOR,Yeah. That's true. I did overlook that. Thanks!,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,630062936 https://github.com/pydata/xarray/issues/4120#issuecomment-673748046,https://api.github.com/repos/pydata/xarray/issues/4120,673748046,MDEyOklzc3VlQ29tbWVudDY3Mzc0ODA0Ng==,11411331,2020-08-13T22:50:48Z,2020-08-13T22:50:48Z,CONTRIBUTOR,"Also, while I was walking through the logic in this problem, I found that in the `_reduce_method` functions of the `DataArrayCoarsen` and `DatasetCoarsen` classes, the `kwargs` variable is being shadowed: https://github.com/pydata/xarray/blob/df7b2eae3a26c1e86bd5f1dd7dab9cc8c4e53914/xarray/core/rolling.py#L692-L701 So, you can see that the `skipna` option is just being ignored. That's another pretty easy fix, but it will change existing behavior. It might be prudent to look to see if there are any known bug reports referencing the `skipna` parameter being ignored.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,630062936 https://github.com/pydata/xarray/issues/4120#issuecomment-673746511,https://api.github.com/repos/pydata/xarray/issues/4120,673746511,MDEyOklzc3VlQ29tbWVudDY3Mzc0NjUxMQ==,11411331,2020-08-13T22:45:40Z,2020-08-13T22:45:40Z,CONTRIBUTOR,"@dcherian @jukent: After a little walk through the code, I think the problem is in `xarray/core/variable.py`. If you look at the first part of the `coarsen` function in this file: https://github.com/pydata/xarray/blob/df7b2eae3a26c1e86bd5f1dd7dab9cc8c4e53914/xarray/core/variable.py#L1945-L1953 you will see that `**kwargs` is *not* being pass into the `_coarsen_reshape` function: https://github.com/pydata/xarray/blob/df7b2eae3a26c1e86bd5f1dd7dab9cc8c4e53914/xarray/core/variable.py#L1961 And down at the bottom of that function: https://github.com/pydata/xarray/blob/df7b2eae3a26c1e86bd5f1dd7dab9cc8c4e53914/xarray/core/variable.py#L2024-L2025 it retrieves the `keep_attrs` parameter from *global options*, and doesn't check for a passed-in argument. @jukent, why don't you draft a PR to fix this problem?","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,630062936 https://github.com/pydata/xarray/issues/4120#issuecomment-673729936,https://api.github.com/repos/pydata/xarray/issues/4120,673729936,MDEyOklzc3VlQ29tbWVudDY3MzcyOTkzNg==,11411331,2020-08-13T21:56:14Z,2020-08-13T21:56:46Z,CONTRIBUTOR,"After some testing, I discovered that: ```python # Your code here import xarray as xr xr.set_options(keep_attrs=True) # NOTE GLOBAL OPTION!!!! ds = xr.tutorial.load_dataset(""air_temperature"") ds2 = xr.tutorial.load_dataset(""air_temperature"") xr.testing.assert_identical(ds, ds2) # passes ds.coarsen(lat=5).mean() xr.testing.assert_identical(ds, ds2) # passes ``` makes your example pass. So, it seems that somewhere along the chain of functions the `keep_attrs` parameter is being lost or modified.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,630062936