Skip to content

Commit ec8e709

Browse files
committed
Returns copy for not-interpolated variable.
1 parent 4df36da commit ec8e709

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

xarray/core/missing.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,8 @@ def _get_interpolator_nd(method, **kwargs):
355355
kwargs.update(method=method)
356356
interp_class = interpolate.interpn
357357
else:
358-
raise ValueError('%s is not a valid interpolator' % method)
358+
raise ValueError('%s is not a valid interpolator for interpolating '
359+
'over multiple dimensions.' % method)
359360

360361
return interp_class, kwargs
361362

@@ -376,7 +377,7 @@ def _assert_single_chunk(var, axes):
376377
if len(var.chunks[axis]) > 1 or var.chunks[axis][0] < var.shape[axis]:
377378
raise NotImplementedError(
378379
'Chunking along the dimension to be interpolated '
379-
'({}) is not supported.'.format(axis))
380+
'({}) is not yet supported.'.format(axis))
380381

381382

382383
def _localize(var, indexes_coords):
@@ -488,7 +489,7 @@ def interp_func(var, x, new_x, method, kwargs):
488489
scipy.interpolate.interp1d
489490
"""
490491
if not x:
491-
return var
492+
return var.copy()
492493

493494
if len(x) == 1:
494495
func, kwargs = _get_interpolator(method, vectorizeable_only=True,

xarray/tests/test_interp.py

+2
Original file line numberDiff line numberDiff line change
@@ -373,9 +373,11 @@ def test_dataset():
373373

374374
# make sure modifying interpolated does not affect the original dataset
375375
interpolated['var1'][:, 1] = 1.0
376+
interpolated['var2'][:, 1] = 1.0
376377
interpolated['var3'][:, 1] = 1.0
377378

378379
assert not interpolated['var1'].equals(ds['var1'])
380+
assert not interpolated['var2'].equals(ds['var2'])
379381
assert not interpolated['var3'].equals(ds['var3'])
380382
# attrs should be kept
381383
assert interpolated.attrs['foo'] == 'var'

0 commit comments

Comments
 (0)