home / github / issue_comments

Menu
  • GraphQL API
  • Search all tables

issue_comments: 543393942

This data as json

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/3302#issuecomment-543393942 https://api.github.com/repos/pydata/xarray/issues/3302 543393942 MDEyOklzc3VlQ29tbWVudDU0MzM5Mzk0Mg== 13837821 2019-10-17T22:48:45Z 2019-10-17T22:51:36Z CONTRIBUTOR

Thanks so much for taking this on. Not sure how I missed the notification that you had done so.

@dcherian I checked out your branch and did some testing and found that testing this against dim="x" fails with a ValueError. ```python arr = np.array([ [np.nan, np.nan, np.nan, 1, 2, 3, 4, np.nan, 6, 7, np.nan, np.nan, np.nan, 11, np.nan, np.nan, ], [np.nan, np.nan, np.nan, 1, 2, 3, np.nan, np.nan, 6, 7, np.nan, np.nan, np.nan, 11, np.nan, np.nan, ], [np.nan, np.nan, np.nan, 1, 2, 3, np.nan, np.nan, 6, 7, np.nan, np.nan, np.nan, 11, np.nan, np.nan, ], [np.nan, np.nan, np.nan, 1, 2, 3, 4, np.nan, 6, 7, np.nan, np.nan, np.nan, 11, np.nan, np.nan, ], ])

da = xr.DataArray(arr, dims=["x", "y"], coords={"x": np.arange(arr.shape[0]), "y": np.arange(arr.shape[1])})

actual = da.interpolate_na("y", max_gap=2) # this works as in your test example actual = da.interpolate_na("x", max_gap=2) # this fails Error:

actual = da.interpolate_na("x", max_gap=2) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/dnowacki/Documents/xarray/xarray/core/dataarray.py", line 2026, in interpolate_na **kwargs File "/Users/dnowacki/Documents/xarray/xarray/core/missing.py", line 302, in interp_na nan_block_lengths = _get_nan_block_lengths(self, dim, index) File "/Users/dnowacki/Documents/xarray/xarray/core/missing.py", line 23, in _get_nan_block_lengths arange = ones_like(obj) * index + (index[1] - index[0]) File "/Users/dnowacki/Documents/xarray/xarray/core/dataarray.py", line 2500, in func if not reflexive File "/Users/dnowacki/Documents/xarray/xarray/core/variable.py", line 1884, in func if not reflexive ValueError: operands could not be broadcast together with shapes (4,16) (4,) ```

I fixed it by changing this line https://github.com/dcherian/xarray/blob/8899f05a13533e10c8972836afda089b5b792ca0/xarray/core/missing.py#L23 to this: python if index.shape[0] == obj.shape[0]: arange = ones_like(obj) * index[:, None] + (index[1] - index[0]) else: arange = ones_like(obj) * index + (index[1] - index[0]) Does this seem reasonable?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  492866552
Powered by Datasette · Queries took 0.596ms · About: xarray-datasette