flopy.mf6.utils.reference module

Module spatial referencing for flopy model objects

class SpatialReference(delr=1.0, delc=1.0, xvdict=None, yvdict=None, lenuni=1, nlay=1, xul=None, yul=None, xadj=0.0, yadj=0.0, rotation=0.0, proj4_str=None, distype='structured')[source]

Bases: object

A dynamic inheritance class that locates a gridded model in space

delrnumpy ndarray

the model discretization delr vector

delcnumpy ndarray

the model discretization delc vector

lenuniint

the length units flag from the discretization package

xulfloat

the x coordinate of the upper left corner of the grid

yulfloat

the y coordinate of the upper left corner of the grid

rotationfloat

the counter-clockwise rotation (in degrees) of the grid

proj4_str: str

a PROJ4 string that identifies the grid in space. warning: case sensitive!

xadjfloat

vertex grid: x vertex adjustment factor

yadjfloat

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

property 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

property ncol
property 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

property xcenter
property xcentergrid
property xedge
property xgrid
property ycenter
property ycentergrid
property yedge
property 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)

property 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

property xarr
property xcenter_array
property xdict
property xydict
property yarr
property ycenter_array
property ydict