geocat.comp.linint2¶

geocat.comp.
linint2
(fi, xo, yo, icycx, msg=None, meta=True, xi=None, yi=None)¶ Interpolates a regular grid to a rectilinear one using bilinear interpolation.
linint2 uses bilinear interpolation to interpolate from one rectilinear grid to another. The input grid may be cyclic in the x direction. The interpolation is first performed in the x direction, and then in the y direction.
 Parameters
fi (
xarray.DataArray
ornumpy.ndarray
) –An array of two or more dimensions. If xi is passed in as an argument, then the size of the rightmost dimension of fi must match the rightmost dimension of xi. Similarly, if yi is passed in as an argument, then the size of the second rightmost dimension of fi must match the rightmost dimension of yi.
If missing values are present, then linint2 will perform the bilinear interpolation at all points possible, but will return missing values at coordinates which could not be used.
Note
This variable must be supplied as a
xarray.DataArray
in order to copy the dimension names to the output. Otherwise, default names will be used.xo (
xarray.DataArray
ornumpy.ndarray
) –A onedimensional array that specifies the X coordinates of the return array. It must be strictly monotonically increasing, but may be unequally spaced.
For georeferenced data, xo is generally the longitude array.
If the output coordinates (xo) are outside those of the input coordinates (xi), then the fo values at those coordinates will be set to missing (i.e. no extrapolation is performed).
yo (
xarray.DataArray
ornumpy.ndarray
) –A onedimensional array that specifies the Y coordinates of the return array. It must be strictly monotonically increasing, but may be unequally spaced.
For georeferenced data, yo is generally the latitude array.
If the output coordinates (yo) are outside those of the input coordinates (yi), then the fo values at those coordinates will be set to missing (i.e. no extrapolation is performed).
icycx (
bool
) – An option to indicate whether the rightmost dimension of fi is cyclic. This should be set to True only if you have global data, but your longitude values don’t quite wrap all the way around the globe. For example, if your longitude values go from, say, 179.75 to 179.75, or 0.5 to 359.5, then you would set this to True.msg (
numpy.number
) – A numpy scalar value that represent a missing value in fi. This argument allows a user to use a missing value scheme other than NaN or masked arrays, similar to what NCL allows.meta (
bool
) – Set to False to disable metadata; default is True.xi (
numpy.ndarray
) –An array that specifies the X coordinates of the fi array. Most frequently, this is a 1D strictly monotonically increasing array that may be unequally spaced. In some cases, xi can be a multidimensional array (see next paragraph). The rightmost dimension (call it nxi) must have at least two elements, and is the last (fastest varying) dimension of fi.
If xi is a multidimensional array, then each nxi subsection of xi must be strictly monotonically increasing, but may be unequally spaced. All but its rightmost dimension must be the same size as all but fi’s rightmost two dimensions.
For georeferenced data, xi is generally the longitude array.
Note
If left unspecified, the rightmost coordinate dimension of fi will be used. This parameter must be specified as a keyword argument.
yi (
numpy.ndarray
) –An array that specifies the Y coordinates of the fi array. Most frequently, this is a 1D strictly monotonically increasing array that may be unequally spaced. In some cases, yi can be a multidimensional array (see next paragraph). The rightmost dimension (call it nyi) must have at least two elements, and is the secondtolast dimension of fi.
If yi is a multidimensional array, then each nyi subsection of yi must be strictly monotonically increasing, but may be unequally spaced. All but its rightmost dimension must be the same size as all but fi’s rightmost two dimensions.
For georeferenced data, yi is generally the latitude array.
Note
If left unspecified, the secondtorightmost coordinate dimension of fi will be used. This parameter must be specified as a keyword argument.
 Returns
The interpolated grid. If the meta parameter is True, then the result will include named dimensions matching the input array. The returned value will have the same dimensions as fi, except for the rightmost two dimensions which will have the same dimension sizes as the lengths of yo and xo. The return type will be double if fi is double, and float otherwise.
 Return type
Examples
Example 1: Using linint2 with
xarray.DataArray
inputimport numpy as np import xarray as xr import geocat.comp fi_np = np.random.rand(30, 80) # random 30x80 array # xi and yi do not have to be equally spaced, but they are # in this example xi = np.arange(80) yi = np.arange(30) # create target coordinate arrays, in this case use the same # min/max values as xi and yi, but with different spacing xo = np.linspace(xi.min(), xi.max(), 100) yo = np.linspace(yi.min(), yi.max(), 50) # create :class:`xarray.DataArray` and chunk it using the # full shape of the original array. # note that xi and yi are attached as coordinate arrays fi = xr.DataArray(fi_np, dims=['lat', 'lon'], coords={'lat': yi, 'lon': xi} ).chunk(fi_np.shape) fo = geocat.comp.linint2(fi, xo, yo, 0)