Field

class ESMF.api.field.Field(grid, name=None, typekind=None, staggerloc=None, meshloc=None, ndbounds=None)

The Field class is a Python wrapper object for the ESMF Field. The individual values of all data arrays are referenced to those of the underlying Fortran ESMF object.

A Field represents a physical field, such as temperature. The Field class contains distributed and discretized field data, a reference to its associated grid, and metadata. The Field class stores the grid staggering for that physical field. This is the relationship of how the data array of a field maps onto a grid (e.g. one item per cell located at the cell center, one item per cell located at the NW corner, one item per cell vertex, etc.). This means that different Fields which are on the same underlying Grid but have different staggerings can share the same Grid object without needing to replicate it multiple times.

For more information about the ESMF Field class, please see the ESMF Field documentation.

The following parameters are used to create a Field from a Grid, Mesh or LocStream.

REQUIRED:

:param Grid/Mesh/LocStream grid: A Grid,
Mesh or LocStream with coordinates allocated on at least one stagger location.

OPTIONAL:

Parameters:
  • name (str) – An optional user friendly name for the Field.
  • typekind (TypeKind) – Type of the Field data. If None, defaults to R8.
  • staggerloc (StaggerLoc) – The stagger location of the Field data, only specify this argument when using a Grid. If None, defaults to CENTER in 2D and CENTER_VCENTER in 3D.
  • meshloc (MeshLoc) – The mesh location of the Field data, only specify this argument when using a Mesh if None, defaults to NODE.
  • ndbounds (tuple) – The number of entries in an extra Field dimension. This is represented as a single value, a list or a tuple containing the number of entries for each desired extra dimension of the Field. The time dimension must be last, following Fortran indexing conventions.
data
Return type:TypeKind
Returns:The data of the Field
grid
Return type:Grid, Mesh, or LocStream
Returns:The discretization object upon which the Field is built.
lower_bounds
Return type:ndarray
Returns:The lower bounds of the Field.
name
Return type:str
Returns:the name of the Field.
ndbounds
Return type:list
Returns:The bounds of the extra dimensions in the Field.
rank
Return type:int
Returns:The rank of the Field.
staggerloc
Return type:StaggerLoc or MeshLoc
Returns:The location upon which the Field is built.
type
Return type:TypeKind
Returns:The type of the data in the Field.
upper_bounds
Return type:ndarray
Returns:The upper bounds of the Field.
xd
Return type:int
Returns:The number of extra (ungridded) dimensions of the Field.
copy()

Copy a Field in an ESMF-safe manner.

Returns:A Field shallow copy.
destroy()

Release the memory associated with a Field.

get_area()

Initialize an existing Field with the areas of the cells of the underlying Grid or Mesh.

read(filename, variable, timeslice=None)

Read data into an existing Field from a CF-compliant NetCDF file.

Note:This interface is not supported when ESMF is built with ESMF_COMM=mpiuni.
Note:This interface does not currently support reading ungridded dimensions.

REQUIRED:

Parameters:
  • filename (str) – The name of the NetCDF file.
  • variable (str) – The name of the data variable to read from file.

OPTIONAL:

Parameters:timeslice (list) – The number of timeslices to read.