xarray_d_grid

PlasmaCalcs.tools.xarray_tools.xarray_sci.xarray_d_grid(array, coord)

return the gradient of array[coord], along dim=coord if possible, else along ‘{coord}_dim’.

Example (which demonstrates the motivation for this function):

minvals = pc.xr1d([1,2,3], ‘mindim’)
maxvals = pc.xr1d([5,7], ‘maxdim’)
grid = pc.xarray_grid(min=minvals, max=maxvals, N=10, name=’grid’)
# grid has sizes {‘mindim’: 3, ‘maxdim’: 2, ‘grid_dim’: 10}, and coord ‘grid’ telling values.
# if grid is part of some physical formula leading to a meaningful value, e.g.:
meaningful_value = grid * 10
# then it might be useful to know d(grid), the spacing of ‘grid’ along ‘grid_dim’.
# But, for a dimension-agnostic approach, it is important to note that a simpler grid,
# like: simple_grid = pc.xarray_grid(min=1, max=7, N=10, name=’grid’)
# would only have ‘grid’ and not ‘grid_dim’.
# Using xarray_d_grid handles both cases properly, in one line:
d_grid = xarray_d_grid(meaningful_value, ‘grid’)
# or, equivalently, either of the following:
d_grid = xarray_d_grid(grid, ‘grid’) # equivalent result
d_grid = xarray_d_grid(meaningful_value[‘grid’], ‘grid’) # also equivalent