flopy.mf6.utils.reference module

Module spatial referencing for flopy model objects

class SpatialReference[source]

Bases: object

A dynamic inheritance class that locates a gridded model in space

delr : numpy ndarray
the model discretization delr vector
delc : numpy ndarray
the model discretization delc vector
lenuni : int
the length units flag from the discretization package
xul : float
the x coordinate of the upper left corner of the grid
yul : float
the y coordinate of the upper left corner of the grid
rotation : float
the counter-clockwise rotation (in degrees) of the grid
proj4_str: str
a PROJ4 string that identifies the grid in space. warning: case sensitive!
xadj : float
vertex grid: x vertex adjustment factor
yadj : float
vertex grid: y vertex adjustment factor
xvdict: dict
dictionary of x-vertices by cellnum ex. {0: (0,1,1,0)}
yvdict: dict
dictionary of y-vertices by cellnum ex. {0: (1,1,0,0)}
distype: str
model grid discretization type
class StructuredSpatialReference(delr=1.0, delc=1.0, lenuni=1, nlay=1, xul=None, yul=None, rotation=0.0, proj4_str=None, **kwargs)[source]

Bases: object

a simple class to locate the model grid in x-y space

Parameters:
  • delr (numpy ndarray) – the model discretization delr vector
  • delc (numpy ndarray) – the model discretization delc vector
  • lenuni (int) – the length units flag from the discretization package
  • xul (float) – the x coordinate of the upper left corner of the grid
  • yul (float) – the y coordinate of the upper left corner of the grid
  • rotation (float) – the counter-clockwise rotation (in degrees) of the grid
  • proj4_str (str) – a PROJ4 string that identifies the grid in space. warning: case sensitive!
xedge

array of column edges

Type:ndarray
yedge

array of row edges

Type:ndarray
xgrid

numpy meshgrid of xedges

Type:ndarray
ygrid

numpy meshgrid of yedges

Type:ndarray
xcenter

array of column centers

Type:ndarray
ycenter

array of row centers

Type:ndarray
xcentergrid

numpy meshgrid of column centers

Type:ndarray
ycentergrid

numpy meshgrid of row centers

Type:ndarray

Notes

xul and yul can be explicitly (re)set after SpatialReference instantiation, but only before any of the other attributes and methods are accessed

attribute_dict
classmethod from_gridspec(gridspec_file, lenuni=0)[source]
classmethod from_namfile_header(namefile)[source]
get_extent()[source]

Get the extent of the rotated and offset grid

Return (xmin, xmax, ymin, ymax)

get_grid_lines()[source]

get the grid lines as a list

get_vertices(i, j)[source]
get_xcenter_array()[source]

Return a numpy one-dimensional float array that has the cell center x coordinate for every column in the grid in model space - not offset or rotated.

get_xedge_array()[source]

Return a numpy one-dimensional float array that has the cell edge x coordinates for every column in the grid in model space - not offset or rotated. Array is of size (ncol + 1)

get_ycenter_array()[source]

Return a numpy one-dimensional float array that has the cell center x coordinate for every row in the grid in model space - not offset of rotated.

get_yedge_array()[source]

Return a numpy one-dimensional float array that has the cell edge y coordinates for every row in the grid in model space - not offset or rotated. Array is of size (nrow + 1)

interpolate(a, xi, method='nearest')[source]

Use the griddata method to interpolate values from an array onto the points defined in xi. For any values outside of the grid, use ‘nearest’ to find a value for them.

Parameters:
  • a (numpy.ndarray) – array to interpolate from. It must be of size nrow, ncol
  • xi (numpy.ndarray) – array containing x and y point coordinates of size (npts, 2). xi also works with broadcasting so that if a is a 2d array, then xi can be passed in as (xgrid, ygrid).
  • method ({'linear', 'nearest', 'cubic'}) – method to use for interpolation (default is ‘nearest’)
Returns:

b – array of size (npts)

Return type:

numpy.ndarray

ncol
nrow
reset(**kwargs)[source]
static rotate(x, y, theta, xorigin=0.0, yorigin=0.0)[source]

Given x and y array-like values calculate the rotation about an arbitrary origin and then return the rotated coordinates. theta is in degrees.

set_spatialreference(xul=None, yul=None, rotation=0.0)[source]

set spatial reference - can be called from model instance

write_gridSpec(filename)[source]

write a PEST-style grid specification file

xcenter
xcentergrid
xedge
xgrid
ycenter
ycentergrid
yedge
ygrid
class VertexSpatialReference(xvdict=None, yvdict=None, nlay=1, xadj=0, yadj=0, rotation=0.0, lenuni=1.0, proj4_str=None, **kwargs)[source]

Bases: object

a simple class to locate the model grid in x-y space

Parameters:
  • xvdict (dictionary) – dictionary of x-vertices {1: (0,1,1,0)}
  • yvdict (dictionary) – dictionary of y-vertices {1: (1,0,1,0)}
  • lenuni (int) – the length units flag from the discretization package
  • xadj (float) – the x coordinate of the upper left corner of the grid
  • yadj (float) – the y coordinate of the upper left corner of the grid
  • rotation (float) – the counter-clockwise rotation (in degrees) of the grid
  • proj4_str (str) – a PROJ4 string that identifies the grid in space. warning: case sensitive!
xedge

array of column edges

Type:ndarray
yedge

array of row edges

Type:ndarray
xgrid

numpy meshgrid of xedges

Type:ndarray
ygrid

numpy meshgrid of yedges

Type:ndarray
xcenter

array of column centers

Type:ndarray
ycenter

array of row centers

Type:ndarray
xcentergrid

numpy meshgrid of column centers

Type:ndarray
ycentergrid

numpy meshgrid of row centers

Type:ndarray

Notes

xadj and yuadj can be explicitly (re)set after SpatialReference instantiation, but only before any of the other attributes and methods are accessed

classmethod from_namfile_header(namefile)[source]
get_extent()[source]

Get the extent of the rotated and offset grid

Return (xmin, xmax, ymin, ymax)

ncpl
static rotate(x, y, theta, xorigin=0.0, yorigin=0.0)[source]

Given x and y array-like values calculate the rotation about an arbitrary origin and then return the rotated coordinates. theta is in degrees.

set_spatialreference(xadj=0.0, yadj=0.0, rotation=0.0)[source]

set spatial reference - can be called from model instance xadj, yadj should be named xadj, yadj since they represent an adjustment factor

xarr
xcenter_array
xdict
xydict
yarr
ycenter_array
ydict