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/3596#issuecomment-601217610,https://api.github.com/repos/pydata/xarray/issues/3596,601217610,MDEyOklzc3VlQ29tbWVudDYwMTIxNzYxMA==,2448579,2020-03-19T14:41:39Z,2020-03-19T14:41:39Z,MEMBER,"Merging. I've added an experimental warning to the docstrings and we can discuss the IndexVariable situation here: https://github.com/pydata/xarray/issues/3868
Thanks @mark-boer this is a major contribution for your first PR!","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,532940062
https://github.com/pydata/xarray/pull/3596#issuecomment-598717521,https://api.github.com/repos/pydata/xarray/issues/3596,598717521,MDEyOklzc3VlQ29tbWVudDU5ODcxNzUyMQ==,2448579,2020-03-13T13:23:37Z,2020-03-13T13:23:37Z,MEMBER,"Extremely good points @mark-boer
I propose we merge and open an issue to decide what to do with IndexVariables. ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,532940062
https://github.com/pydata/xarray/pull/3596#issuecomment-596363935,https://api.github.com/repos/pydata/xarray/issues/3596,596363935,MDEyOklzc3VlQ29tbWVudDU5NjM2MzkzNQ==,2448579,2020-03-09T07:10:40Z,2020-03-09T07:10:40Z,MEMBER,"> Hmm, I don't really see a solution. What do you suggest?
:) I think we need to extrapolate indexes by default. It seems like the most sensible option.
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,532940062
https://github.com/pydata/xarray/pull/3596#issuecomment-595202061,https://api.github.com/repos/pydata/xarray/issues/3596,595202061,MDEyOklzc3VlQ29tbWVudDU5NTIwMjA2MQ==,2448579,2020-03-05T12:22:02Z,2020-03-05T12:22:02Z,MEMBER,"I pushed some minor changes.
I think this is ready to go in.
The big outstanding issue is what to do about dimension coordinates or indexes. Currently this PR treats all variables in `coords` different from those in `data_vars`. I think this is confusing.
I am thinking that we want to use linear extrapolation for IndexVariables by default and apply the same padding mode to all other variables. The reasoning being that IndexVariables with NaNs are hard to deal with and it's hard to fill them in: `padded[""x""] = padded.x.drop_vars(""x"").interpolate_na(""x"", fill_value=""extrapolate"")`
","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,532940062
https://github.com/pydata/xarray/pull/3596#issuecomment-563311262,https://api.github.com/repos/pydata/xarray/issues/3596,563311262,MDEyOklzc3VlQ29tbWVudDU2MzMxMTI2Mg==,2448579,2019-12-09T16:11:46Z,2019-12-09T16:11:46Z,MEMBER,"It seems like we have some value mismatches on `dask==1.2`. @fujiisoup is this the error you found?
```
=================================== FAILURES ===================================
__________ TestVariableWithDask.test_pad[xr_arg0-np_arg0-linear_ramp] __________
self =
mode = 'linear_ramp', xr_arg = {'x': (2, 1)}, np_arg = ((2, 1), (0, 0), (0, 0))
@pytest.mark.parametrize(
""mode"",
[
pytest.param(""mean"", marks=pytest.mark.xfail),
pytest.param(""median"", marks=pytest.mark.xfail),
pytest.param(""reflect"", marks=pytest.mark.xfail),
""edge"",
""linear_ramp"",
""maximum"",
""minimum"",
""symmetric"",
""wrap"",
],
)
@pytest.mark.parametrize(
""xr_arg, np_arg"",
[
[{""x"": (2, 1)}, ((2, 1), (0, 0), (0, 0))],
[{""y"": (0, 3)}, ((0, 0), (0, 3), (0, 0))],
[{""x"": (3, 1), ""z"": (2, 0)}, ((3, 1), (0, 0), (2, 0))],
],
)
def test_pad(self, mode, xr_arg, np_arg):
data = np.arange(4 * 3 * 2).reshape(4, 3, 2)
v = self.cls([""x"", ""y"", ""z""], data)
actual = v.pad(mode=mode, **xr_arg)
expected = np.pad(data, np_arg, mode=mode,)
> assert_array_equal(actual, expected)
E AssertionError:
E Arrays are not equal
E
E (mismatch 2.3809523809523796%)
E x: array([[[ 0, 0],
E [ 0, 0],
E [ 0, 0]],...
E y: array([[[ 0, 0],
E [ 0, 0],
E [ 0, 0]],...
xarray/tests/test_variable.py:821: AssertionError
__________ TestVariableWithDask.test_pad[xr_arg1-np_arg1-linear_ramp] __________
self =
mode = 'linear_ramp', xr_arg = {'y': (0, 3)}, np_arg = ((0, 0), (0, 3), (0, 0))
@pytest.mark.parametrize(
""mode"",
[
pytest.param(""mean"", marks=pytest.mark.xfail),
pytest.param(""median"", marks=pytest.mark.xfail),
pytest.param(""reflect"", marks=pytest.mark.xfail),
""edge"",
""linear_ramp"",
""maximum"",
""minimum"",
""symmetric"",
""wrap"",
],
)
@pytest.mark.parametrize(
""xr_arg, np_arg"",
[
[{""x"": (2, 1)}, ((2, 1), (0, 0), (0, 0))],
[{""y"": (0, 3)}, ((0, 0), (0, 3), (0, 0))],
[{""x"": (3, 1), ""z"": (2, 0)}, ((3, 1), (0, 0), (2, 0))],
],
)
def test_pad(self, mode, xr_arg, np_arg):
data = np.arange(4 * 3 * 2).reshape(4, 3, 2)
v = self.cls([""x"", ""y"", ""z""], data)
actual = v.pad(mode=mode, **xr_arg)
expected = np.pad(data, np_arg, mode=mode,)
> assert_array_equal(actual, expected)
E AssertionError:
E Arrays are not equal
E
E (mismatch 16.66666666666667%)
E x: array([[[ 0, 1],
E [ 2, 3],
E [ 4, 5],...
E y: array([[[ 0, 1],
E [ 2, 3],
E [ 4, 5],...
xarray/tests/test_variable.py:821: AssertionError
__________ TestVariableWithDask.test_pad[xr_arg2-np_arg2-linear_ramp] __________
self =
mode = 'linear_ramp', xr_arg = {'x': (3, 1), 'z': (2, 0)}
np_arg = ((3, 1), (0, 0), (2, 0))
@pytest.mark.parametrize(
""mode"",
[
pytest.param(""mean"", marks=pytest.mark.xfail),
pytest.param(""median"", marks=pytest.mark.xfail),
pytest.param(""reflect"", marks=pytest.mark.xfail),
""edge"",
""linear_ramp"",
""maximum"",
""minimum"",
""symmetric"",
""wrap"",
],
)
@pytest.mark.parametrize(
""xr_arg, np_arg"",
[
[{""x"": (2, 1)}, ((2, 1), (0, 0), (0, 0))],
[{""y"": (0, 3)}, ((0, 0), (0, 3), (0, 0))],
[{""x"": (3, 1), ""z"": (2, 0)}, ((3, 1), (0, 0), (2, 0))],
],
)
def test_pad(self, mode, xr_arg, np_arg):
data = np.arange(4 * 3 * 2).reshape(4, 3, 2)
v = self.cls([""x"", ""y"", ""z""], data)
actual = v.pad(mode=mode, **xr_arg)
expected = np.pad(data, np_arg, mode=mode,)
> assert_array_equal(actual, expected)
E AssertionError:
E Arrays are not equal
E
E (mismatch 5.208333333333329%)
E x: array([[[ 0, 0, 0, 0],
E [ 0, 0, 0, 0],
E [ 0, 0, 0, 0]],...
E y: array([[[ 0, 0, 0, 0],
E [ 0, 0, 0, 0],
E [ 0, 0, 0, 0]],...
```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,532940062