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/1773#issuecomment-350879291,https://api.github.com/repos/pydata/xarray/issues/1773,350879291,MDEyOklzc3VlQ29tbWVudDM1MDg3OTI5MQ==,1217238,2017-12-11T22:27:58Z,2017-12-11T22:27:58Z,MEMBER,"It seems that sympy functions returned by lambdfy may not work on arbitrary dimensional inputs, or might not follow broadcasting rules. The workaround might be something like:
```python
def vector_func_wrapper(dx, dy, dz, dt):
dx, dy, dz, dt = np.broadcast_arrays(dx, dy, dz, dt) # explicitly broadcast
args = [a.ravel() for a in [dx, dy, dz, dt]] # convert everything to a vector
return vector_funcN(*args).reshape(dx.shape)
xarray.apply_ufunc(vector_func_wrapper, dx, dy, dz, dt)
```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,280899335
https://github.com/pydata/xarray/issues/1773#issuecomment-350821050,https://api.github.com/repos/pydata/xarray/issues/1773,350821050,MDEyOklzc3VlQ29tbWVudDM1MDgyMTA1MA==,1217238,2017-12-11T18:54:03Z,2017-12-11T18:54:03Z,MEMBER,"Broadcast allows a variadic number of arguments, so you can write something like:
```python
gx, dy, gz, gt =xr.broadcast(dx, dy, dz, dt)
```
I'm not very familiar with sympy's lambdify, but I think something like `xarray.apply_ufunc(vector_funcN, dx, dy, dz, dt)` should work (where `dx`, `dy`, `dz` and `dt` are all xarray objects, even without manual broadcasting).","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,280899335
https://github.com/pydata/xarray/issues/1773#issuecomment-350806352,https://api.github.com/repos/pydata/xarray/issues/1773,350806352,MDEyOklzc3VlQ29tbWVudDM1MDgwNjM1Mg==,1217238,2017-12-11T18:02:39Z,2017-12-11T18:02:39Z,MEMBER,"If you make each of your arrays `xAxisDomian` an xarray.DataArray with appropriate dimensions, you can use `xarray.broadcast()` to convert all of them to common coordinates. `xarray.apply_ufunc` may also help.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,280899335
https://github.com/pydata/xarray/issues/1773#issuecomment-350666998,https://api.github.com/repos/pydata/xarray/issues/1773,350666998,MDEyOklzc3VlQ29tbWVudDM1MDY2Njk5OA==,10050469,2017-12-11T09:23:00Z,2017-12-11T09:23:00Z,MEMBER,"Is this what you want?
```python
import numpy as np
import xarray as xr
DomainSpaceTimeSize = 5 # using cartesian 4D
SpaceTimeDensity = [100, 5] # 100 divisions in space 5 in time
x_coord = np.linspace(-DomainSpaceTimeSize, +DomainSpaceTimeSize, SpaceTimeDensity[0])
y_coord = np.linspace(-DomainSpaceTimeSize, +DomainSpaceTimeSize, SpaceTimeDensity[0])
z_coord = np.linspace(-DomainSpaceTimeSize, +DomainSpaceTimeSize, SpaceTimeDensity[0])
t_coord = np.linspace(0, +DomainSpaceTimeSize, SpaceTimeDensity[1])
scale_func = lambda x, y, z, t: np.cos(1*x+2*y+3*z-4*t)
data = scale_func(*np.meshgrid(x_coord, y_coord, z_coord, t_coord))
da = xr.DataArray(data, dims=['x', 'y', 'z', 't'],
coords={'x':x_coord, 'y':y_coord, 'z':z_coord, 't':t_coord})
da.sel(x=0.0, y=1.0, z=0.0, t=3.0, method='nearest')
array(-0.8039436986070311)
Coordinates:
x float64 0.05051
z float64 0.05051
t float64 2.5
y float64 0.9596
```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,280899335