esmf_regrid.esmf_regridder module¶
Provides ESMF representations of grids/UGRID meshes and a modified regridder.
- class esmf_regrid.esmf_regridder.GridInfo(lons, lats, lonbounds, latbounds, crs=None, circular=False, areas=None)[source]¶
Bases:
esmf_regrid._esmf_sdo.SDOClass for handling structured grids.
This class holds information about lat-lon type grids. That is, grids defined by lists of latitude and longitude values for points/bounds (with respect to some coordinate reference system i.e. rotated pole). It contains methods for translating this information into
ESMFobjects. In particular, there are methods for representing as aESMF.api.grid.Gridand as aESMF.api.field.Fieldcontaining thatGrid. This ESMFFieldis designed to contain enough information for area weighted regridding and may be inappropriate for otherESMFregridding schemes.Create a
GridInfoobject describing the grid.- Parameters
lons (
ArrayLike) – A 1D or 2D array or list describing the longitudes of the grid points.lats (
ArrayLike) – A 1D or 2D array or list describing the latitudes of the grid points.lonbounds (
ArrayLike) – A 1D or 2D array or list describing the longitude bounds of the grid. Should have length one greater thanlons.latbounds (
ArrayLike) – A 1D or 2D array or list describing the latitude bounds of the grid. Should have length one greater thanlats.crs (
cartopy.crs.CRS, optional) – Describes how to interpret the above arguments. IfNone, defaults toGeodetic.circular (bool, default=False) – Describes if the final longitude bounds should be considered contiguous with the first.
areas (
ArrayLike, optional) – Array describing the areas associated with each face. IfNone, thenESMFwill use its own calculated areas.
- class esmf_regrid.esmf_regridder.Regridder(src, tgt, precomputed_weights=None)[source]¶
Bases:
objectRegridder for directly interfacing with
ESMF.Create a regridder from descriptions of horizontal grids/meshes.
Weights will be calculated using
ESMFand stored as ascipy.sparse.csr_matrixfor use in regridding. If precomputed weights are provided, these will be used instead of calculating viaESMF.- Parameters
src (
MeshInfoorGridInfo) – Describes the source mesh/grid. Data supplied to this regridder should be in anumpy.ndarraywhose shape is compatible withsrc.tgt (
MeshInfoorGridInfo) – Describes the target mesh/grid. Data output by this regridder will be anumpy.ndarraywhose shape is compatible withtgt.precomputed_weights (
scipy.sparse.spmatrix, optional) – IfNone,ESMFwill be used to calculate regridding weights. Otherwise,ESMFwill be bypassed andprecomputed_weightswill be used as the regridding weights.
- regrid(src_array, norm_type='fracarea', mdtol=1)[source]¶
Perform regridding on an array of data.
- Parameters
src_array (
ArrayLike) – Array whose shape is compatible withself.srcnorm_type (str) – Either
fracareaordstarea, defaults tofracarea. Determines the type of normalisation applied to the weights. Normalisations correspond toESMFconstantsFRACAREAandDSTAREA.mdtol (float, default=1) – A number between 0 and 1 describing the missing data tolerance. Depending on the value of
mdtol, if a cell in the target grid is not sufficiently covered by unmasked cells of the source grid, then it will be masked.mdtol=1means that only target cells which are not covered at all will be masked,mdtol=0means that all target cells that are not entirely covered will be masked, andmdtol=0.5means that all target cells that are less than half covered will be masked.
- Returns
An array whose shape is compatible with
self.tgt.- Return type