flopy.utils.cvfdutil module

class Point(x, y)[source]

Bases: object

area_of_polygon(x, y)[source]

Calculates the signed area of an arbitrary polygon given its vertices http://stackoverflow.com/a/4682656/190597 (Joe Kington) http://softsurfer.com/Archive/algorithm_0101/algorithm_0101.htm#2D%20Polygons

centroid_of_polygon(points)[source]

http://stackoverflow.com/a/14115494/190597 (mgamba)

get_disv_gridprops(verts, iverts)[source]

Take a list of flopy structured model grids and convert them into vertices. The idomain can be set to remove cells in a parent grid. Cells from a child grid will patched in to make a single set of vertices. Cells will be numbered according to consecutive numbering of active cells in the grid list.

Parameters:gridlist (list) – List of flopy.discretization.modelgrid. Must be of type structured grids
Returns:gridprops – Dictionary containing entries that can be passed directly into the modflow6 disv package.
Return type:dict
gridlist_to_disv_gridprops(gridlist)[source]

Take a list of flopy structured model grids and convert them into a dictionary that can be passed into the modflow6 disv package. Cells from a child grid will patched in to make a single set of vertices. Cells will be numbered according to consecutive numbering of active cells in the grid list.

Parameters:gridlist (list) – List of flopy.discretization.modelgrid. Must be of type structured grids
Returns:gridprops – Dictionary containing entries that can be passed directly into the modflow6 disv package.
Return type:dict
gridlist_to_verts(gridlist)[source]

Take a list of flopy structured model grids and convert them into vertices. The idomain can be set to remove cells in a parent grid. Cells from a child grid will patched in to make a single set of vertices. Cells will be numbered according to consecutive numbering of active cells in the grid list.

Parameters:gridlist (list) – List of flopy.discretization.modelgrid. Must be of type structured grids
Returns:verts, iverts – vertices and list of cells and which vertices comprise the cells
Return type:np.ndarray, list
isBetween(a, b, c, epsilon=0.001)[source]
segment_face(ivert, ivlist1, ivlist2, vertices)[source]

Check the vertex lists for cell 1 and cell 2. Add a new vertex to cell 1 if necessary.

Parameters:
  • ivert (int) – vertex number to check
  • ivlist1 (list) – list of vertices for cell 1. Add a new vertex to this cell if needed.
  • ivlist2 (list) – list of vertices for cell2.
  • vertices (ndarray) – array of x, y vertices
Returns:

segmented – Return True if a face in cell 1 was split up by adding a new vertex

Return type:

bool

shapefile_to_cvfd(shp, **kwargs)[source]
shapefile_to_xcyc(shp)[source]

Get cell centroid coordinates

Parameters:shp (string) – Name of shape file
Returns:xcyc – x, y coordinates of all polygons in shp
Return type:ndarray
shared_face(ivlist1, ivlist2)[source]
to_cvfd(vertdict, nodestart=None, nodestop=None, skip_hanging_node_check=False, verbose=False)[source]

Convert a vertex dictionary into verts and iverts

Parameters:
  • vertdict – vertdict is a dictionary {icell: [(x1, y1), (x2, y2), (x3, y3), …]}
  • nodestart (int) – starting node number. (default is zero)
  • nodestop (int) – ending node number up to but not including. (default is len(vertdict))
  • skip_hanging_node_check (bool) – skip the hanging node check. this may only be necessary for quad-based grid refinement. (default is False)
  • verbose (bool) – print messages to the screen. (default is False)
Returns:

  • verts (ndarray) – array of x, y vertices
  • iverts (list) – list containing a list for each cell