verde.make_xarray_grid#
- verde.make_xarray_grid(coordinates, data, data_names, dims=('northing', 'easting'), extra_coords_names=None)[source]#
Create an
xarray.Dataset
grid from 2D numpy arraysThis function creates an
xarray.Dataset
out of 2d gridded data including easting and northing coordinates, any extra coordinates (like upward elevation, time, etc) and data arrays.Use this to transform the outputs of
verde.grid_coordinates
and thepredict
method of a gridder into anxarray.Dataset
.Important
This function does not perform any interpolation or gridding. If you are dealing with 1d arrays and need to interpolate them on a regular grid (a.k.a _grid_ them) you might want to use one of the available interpolators in Verde, like
verde.Spline
,verde.KNeighbors
,Linear
, etc.Note
This is a utility function to help create 2D grids (i.e., grids with two
dims
coordinates). For arbitrary N-dimensional arrays, usexarray
directly.- Parameters:
- coordinates
tuple
of
arrays
Arrays with coordinates of each point in the grid. Each array must contain values for a dimension in the order: easting, northing, vertical, etc. All arrays must be 2d and need to have the same shape. These coordinates can be generated through
verde.grid_coordinates
.- data
array
,tuple
of
arrays
orNone
Array or tuple of arrays with data values on each point in the grid. Each array must contain values for a dimension in the same order as the coordinates. All arrays need to have the same shape. If None, the
xarray.Dataset
will not have anydata_var
array.- data_names
str
orlist
The name(s) of the data variables in the output grid. Ignored if
data
is None.- dims
list
(optional
) The names of the northing and easting data dimensions, respectively, in the output grid. Must be defined in the following order: northing dimension, easting dimension. NOTE: This is an exception to the “easting” then “northing” pattern but is required for compatibility with xarray. The easting and northing coordinates in the
xarray.Dataset
will have the same names as the passed dimensions.- extra_coords_names
str
orlist
(optional
) Name or list of names for any additional coordinates besides the easting and northing ones. Ignored if coordinates has only two elements. The extra coordinates are non-index coordinates of the grid array.
- coordinates
- Returns:
- grid
xarray.Dataset
A 2D grid with one or more data variables.
- grid
Examples
>>> import numpy as np >>> import verde as vd >>> # Create the coordinates of the regular grid >>> coordinates = vd.grid_coordinates((-10, -6, 8, 10), spacing=2) >>> # And some dummy data for each point of the grid >>> data = np.ones_like(coordinates[0]) >>> # Create the grid >>> grid = make_xarray_grid(coordinates, data, data_names="dummy") >>> print(grid) <xarray.Dataset> Dimensions: (northing: 2, easting: 3) Coordinates: * easting (easting) float64 -10.0 -8.0 -6.0 * northing (northing) float64 8.0 10.0 Data variables: dummy (northing, easting) float64 1.0 1.0 1.0 1.0 1.0 1.0
>>> # Create a grid with an extra coordinate >>> coordinates = vd.grid_coordinates( ... (-10, -6, 8, 10), spacing=2, extra_coords=5 ... ) >>> # And some dummy data for each point of the grid >>> data = np.ones_like(coordinates[0]) >>> # Create the grid >>> grid = make_xarray_grid( ... coordinates, data, data_names="dummy", extra_coords_names="upward" ... ) >>> print(grid) <xarray.Dataset> Dimensions: (northing: 2, easting: 3) Coordinates: * easting (easting) float64 -10.0 -8.0 -6.0 * northing (northing) float64 8.0 10.0 upward (northing, easting) float64 5.0 5.0 5.0 5.0 5.0 5.0 Data variables: dummy (northing, easting) float64 1.0 1.0 1.0 1.0 1.0 1.0
>>> # Create a grid containing only coordinates and no data >>> coordinates = vd.grid_coordinates( ... (-10, -6, 8, 10), spacing=2, extra_coords=-7 ... ) >>> grid = make_xarray_grid( ... coordinates, ... data=None, ... data_names=None, ... extra_coords_names="upward", ... ) >>> print(grid) <xarray.Dataset> Dimensions: (easting: 3, northing: 2) Coordinates: * easting (easting) float64 -10.0 -8.0 -6.0 * northing (northing) float64 8.0 10.0 upward (northing, easting) float64 -7.0 -7.0 -7.0 -7.0 -7.0 -7.0 Data variables: *empty*