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/191#issuecomment-300359772,https://api.github.com/repos/pydata/xarray/issues/191,300359772,MDEyOklzc3VlQ29tbWVudDMwMDM1OTc3Mg==,6101444,2017-05-10T02:55:49Z,2017-05-10T02:55:49Z,NONE,"I have a dataset that looks like the following:
```
Dimensions: (lat: 720, lon: 1440, time: 365)
Coordinates:
* time (time) datetime64[ns] 2006-01-01T12:00:00 2006-01-02T12:00:00 ...
* lat (lat) float32 -89.875 -89.625 -89.375 -89.125 -88.875 -88.625 ...
* lon (lon) float32 0.125 0.375 0.625 0.875 1.125 1.375 1.625 1.875 ...
Data variables:
tasmax (time, lat, lon) float64 272.6 272.6 272.6 272.6 272.6 272.6 ...
Attributes:
parent_experiment: historical
parent_experiment_id: historical
parent_experiment_rip: r1i1p1
Conventions: CF-1.4
institution: NASA Earth Exchange, NASA Ames Research C...
institute_id: NASA-Ames
realm: atmos
modeling_realm: atmos
version: 1.0
downscalingModel: BCSD
experiment_id: rcp85
frequency: day
realization: 1
initialization_method: 1
physics_version: 1
tracking_id: fd966a07-baec-44e4-8f69-e3cfb2d70dfa
driving_data_tracking_ids: N/A
driving_model_ensemble_member: r1i1p1
driving_experiment_name: historical
driving_experiment: historical
model_id: BCSD
references: BCSD method: Thrasher et al., 2012, Hydro...
DOI: http://dx.doi.org/10.7292/W0MW2F2G
experiment: RCP8.5
title: ACCESS1-0 global downscaled NEX CMIP5 Cli...
contact: Dr. Rama Nemani: rama.nemani@nasa.gov, Dr...
disclaimer: This data is considered provisional and s...
resolution_id: 0.25 degree
project_id: NEXGDDP
table_id: Table day (12 November 2010)
source: BCSD 2014
creation_date: 2015-01-07T20:16:06Z
forcing: N/A
product: output
```
I am trying to do a linear interpolation for each day where the temp is nan. Is there a straightforward way to do this in Xarray?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,38849807
https://github.com/pydata/xarray/issues/191#issuecomment-150618114,https://api.github.com/repos/pydata/xarray/issues/191,150618114,MDEyOklzc3VlQ29tbWVudDE1MDYxODExNA==,7504461,2015-10-23T16:00:26Z,2015-10-23T16:00:59Z,NONE,"Hi All,
This is indeed an excellent project with great potential!
I am wondering if there is any progress on the interpolation issue. I am working with an irregular time series which I would pretty much like to upsample using xray.
Thanks for all the effort!
Saulo
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,38849807
https://github.com/pydata/xarray/issues/191#issuecomment-132262589,https://api.github.com/repos/pydata/xarray/issues/191,132262589,MDEyOklzc3VlQ29tbWVudDEzMjI2MjU4OQ==,7870949,2015-08-18T16:10:29Z,2015-08-18T16:10:29Z,NONE,"+1
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,38849807
https://github.com/pydata/xarray/issues/191#issuecomment-60332922,https://api.github.com/repos/pydata/xarray/issues/191,60332922,MDEyOklzc3VlQ29tbWVudDYwMzMyOTIy,377869,2014-10-24T01:19:47Z,2014-10-24T01:19:47Z,NONE,"For what its worth, I wrote this today. Its a long way from being useful but I find it's working well enough to fill gaps in data after a reindex()
``` py
from scipy import interpolate, ndimage
def linterp(data, index, interp_index, order=1):
""""""
Parameters
----------
data: nd-array (cube).
index: index (floats) associated with the cube.
interp_index: float interpolation poing.
Returns
-------
interpolated: nd-array
An interpolated field.
""""""
# Form a cube of the values, which we will imagine is our function f()
cube = np.array(data, dtype=np.float)
# Form a relationship, and this can be non-linear, between slice indexes and
# the ""index"".
m = interpolate.interp1d(index, range(len(index)))
# Form a set of coordinates to sample over - x
y, x = np.mgrid[0:data[0].shape[0], 0:data[0].shape[1]]
z = np.ones_like(y) * m(interp_index)
# Perform the sampling f(x), map coordinates is performing a linear
# interpolation of the coordinates in the cube.
return ndimage.map_coordinates(
cube,
[z, y, x],
order=order,
cval=np.nan)
```
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,38849807
https://github.com/pydata/xarray/issues/191#issuecomment-50401000,https://api.github.com/repos/pydata/xarray/issues/191,50401000,MDEyOklzc3VlQ29tbWVudDUwNDAxMDAw,2835718,2014-07-28T21:07:30Z,2014-07-28T21:07:30Z,NONE,"Stephan,
I think that I could contribute some functions to do 'nearest' and linear interpolation in n-dimensions; these should be able to take advantage of the indexing afforded by `xray` and not have to deal with Scipy's functions, because they only require selecting values in the neighborhood of the points.
As far as I can tell, higher-order interpolation (spline, etc.) requires fitting functions to the entirety of the dataset, which is pretty slow/ram-intensive with large datasets, and many of the fuctions require the data to be on a regular grid (I am not sure what the `xray / netcdf` requirements are here). For this, it's probably better to use the scipy functions (at least I personally don't have the knowledge to write anything comparable without more study).
For the function signature, I was thinking about something simple, like:
`xray.interpolate(point[s], array, field[s], order)`, or
`DataArray.interpolate(point[s], order)` where `points` are the points to interpolate `field` values from the `array`, and `order` is like in [map_coordinates](http://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.interpolation.map_coordinates.html#scipy.ndimage.interpolation.map_coordinates) (0=nearest, 1=linear, 3=cubic, etc.).
This could return a Series or DataFrame.
But thinking about this a little more, there are kind of two sides to interpolation: What I think of as 'sampling', where we pull values at points from within a grid or structured array (like in `map_coordinates`), and then the creation of arrays from unstructured (or just smaller) point sets. Both are equally common in geoscience, and probably require pretty different treatment programmatically, so it might be wise to make room for both early.
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,38849807