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