flopy.utils.modpathfile module

Module to read MODPATH output files. The module contains two important classes that can be accessed by the user.

  • EndpointFile (ascii endpoint file)
  • PathlineFile (ascii pathline file)
class EndpointFile(filename, verbose=False)[source]

Bases: object

EndpointFile Class.

Parameters:
  • filename (string) – Name of the endpoint file
  • verbose (bool) – Write information to the screen. Default is False.

Examples

>>> import flopy
>>> endobj = flopy.utils.EndpointFile('model.mpend')
>>> e1 = endobj.get_data(partid=1)
get_alldata()[source]

Get endpoint data from the endpoint file for all endpoints.

Returns:ra – A numpy recarray with the endpoint particle data
Return type:numpy record array

Notes

Examples

>>> import flopy
>>> endobj = flopy.utils.EndpointFile('model.mpend')
>>> e = endobj.get_alldata()
get_data(partid=0)[source]

Get endpoint data from the endpoint file for a single particle.

Parameters:partid (int) – The zero-based particle id. The first record is record 0. (default is 0)
Returns:ra – A numpy recarray with the endpoint particle data for endpoint partid.
Return type:numpy record array

Notes

Examples

>>> import flopy
>>> endobj = flopy.utils.EndpointFile('model.mpend')
>>> e1 = endobj.get_data(partid=1)
get_destination_endpoint_data(dest_cells, source=False)[source]

Get endpoint data for set of destination cells.

Parameters:
  • dest_cells (list or array of tuples) – (k, i, j) or (node,) of each destination cell (zero-based)
  • source (bool) – Boolean to specify is dest_cells applies to source or destination cells (default is False).
Returns:

epdest – Slice of endpoint data array (e.g. EndpointFile.get_alldata) containing only data with final k,i,j in dest_cells.

Return type:

np.recarray

Examples

>>> import flopy
>>> e = flopy.utils.EndpointFile('modpath.endpoint')
>>> e0 = e.get_destination_endpoint_data([(0, 0, 0),
...                                       (1, 0, 0)])
get_maxid()[source]

Get the maximum endpoint particle id in the file endpoint file

Returns:out – Maximum endpoint particle id.
Return type:int
get_maxtime()[source]

Get the maximum time in the endpoint file

Returns:out – Maximum endpoint time.
Return type:float
get_maxtraveltime()[source]

Get the maximum travel time in the endpoint file

Returns:out – Maximum endpoint travel time.
Return type:float
kijnames = ['k0', 'i0', 'j0', 'node0', 'k', 'i', 'j', 'node', 'particleid', 'particlegroup', 'particleidloc', 'zone0', 'zone']
write_shapefile(endpoint_data=None, shpname='endpoints.shp', direction='ending', mg=None, epsg=None, sr=None, **kwargs)[source]

Write particle starting / ending locations to shapefile.

endpoint_data : np.recarray
Record array of same form as that returned by EndpointFile.get_alldata. (if none, EndpointFile.get_alldata() is exported).
shpname : str
File path for shapefile
direction : str
String defining if starting or ending particle locations should be considered. (default is ‘ending’)
sr : flopy.utils.reference.SpatialReference instance
Used to scale and rotate Global x,y,z values in MODPATH Endpoint file
epsg : int
EPSG code for writing projection (.prj) file. If this is not supplied, the proj4 string or epgs code associated with sr will be used.

kwargs : keyword arguments to flopy.export.shapefile_utils.recarray2shp

class PathlineFile(filename, verbose=False)[source]

Bases: object

PathlineFile Class.

Parameters:
  • filename (string) – Name of the pathline file
  • verbose (bool) – Write information to the screen. Default is False.

Examples

>>> import flopy
>>> pthobj = flopy.utils.PathlineFile('model.mppth')
>>> p1 = pthobj.get_data(partid=1)
get_alldata(totim=None, ge=True)[source]

get pathline data from the pathline file for all pathlines and all times.

Parameters:
  • totim (float) – The simulation time. All pathline points for particle partid that are greater than or equal to (ge=True) or less than or equal to (ge=False) totim will be returned. Default is None
  • ge (bool) – Boolean that determines if pathline times greater than or equal to or less than or equal to totim is used to create a subset of pathlines. Default is True.
Returns:

plist – A list of numpy recarrays with the x, y, z, time, k, and particleid for all pathlines.

Return type:

a list of numpy record array

Notes

Examples

>>> import flopy.utils.modpathfile as mpf
>>> pthobj = flopy.utils.PathlineFile('model.mppth')
>>> p = pthobj.get_alldata()
get_data(partid=0, totim=None, ge=True)[source]

get pathline data from the pathline file for a single pathline.

Parameters:
  • partid (int) – The zero-based particle id. The first record is record 0.
  • totim (float) – The simulation time. All pathline points for particle partid that are greater than or equal to (ge=True) or less than or equal to (ge=False) totim will be returned. Default is None
  • ge (bool) – Boolean that determines if pathline times greater than or equal to or less than or equal to totim is used to create a subset of pathlines. Default is True.
Returns:

ra – A numpy recarray with the x, y, z, time, k, and particleid for pathline partid.

Return type:

numpy record array

Notes

Examples

>>> import flopy.utils.modpathfile as mpf
>>> pthobj = flopy.utils.PathlineFile('model.mppth')
>>> p1 = pthobj.get_data(partid=1)
get_destination_pathline_data(dest_cells, to_recarray=False)[source]

Get pathline data for set of destination cells.

Parameters:
  • dest_cells (list or array of tuples) – (k, i, j) of each destination cell (zero-based)
  • to_recarray (bool) – Boolean that controls returned pthldest. If to_recarray is True, a single recarray with all of the pathlines that intersect dest_cells are returned. If to_recarray is False, a list of recarrays (the same form as returned by get_alldata method) that intersect dest_cells are returned (default is False).
Returns:

pthldest – Slice of pathline data array (e.g. PathlineFile._data) containing only pathlines with final k,i,j in dest_cells.

Return type:

np.recarray

Examples

>>> import flopy
>>> p = flopy.utils.PathlineFile('modpath.pathline')
>>> p0 = p.get_destination_pathline_data([(0, 0, 0),
...                                       (1, 0, 0)])
get_maxid()[source]

Get the maximum pathline number in the file pathline file

Returns:out – Maximum pathline number.
Return type:int
get_maxtime()[source]

Get the maximum time in pathline file

Returns:out – Maximum pathline time.
Return type:float
kijnames = ['k', 'i', 'j', 'node', 'particleid', 'particlegroup', 'linesegmentindex', 'particleidloc', 'sequencenumber']
write_shapefile(pathline_data=None, one_per_particle=True, direction='ending', shpname='endpoints.shp', mg=None, epsg=None, sr=None, **kwargs)[source]

Write pathlines to a shapefile

pathline_data : np.recarray
Record array of same form as that returned by EndpointFile.get_alldata(). (if none, EndpointFile.get_alldata() is exported).
one_per_particle : boolean (default True)
True writes a single LineString with a single set of attribute data for each particle. False writes a record/geometry for each pathline segment (each row in the PathLine file). This option can be used to visualize attribute information (time, model layer, etc.) across a pathline in a GIS.
direction : str
String defining if starting or ending particle locations should be included in shapefile attribute information. Only used if one_per_particle=False. (default is ‘ending’)
shpname : str
File path for shapefile
mg : flopy.discretization.grid instance
Used to scale and rotate Global x,y,z values in MODPATH Endpoint file.
epsg : int
EPSG code for writing projection (.prj) file. If this is not supplied, the proj4 string or epgs code associated with mg will be used.

kwargs : keyword arguments to flopy.export.shapefile_utils.recarray2shp

class TimeseriesFile(filename, verbose=False)[source]

Bases: object

TimeseriesFile Class.

Parameters:
  • filename (string) – Name of the timeseries file
  • verbose (bool) – Write information to the screen. Default is False.

Examples

>>> import flopy
>>> tsobj = flopy.utils.TimeseriesFile('model.timeseries')
>>> ts1 = tsobj.get_data(partid=1)
get_alldata(totim=None, ge=True)[source]

get timeseries data from the timeseries file for all timeseries and all times.

Parameters:
  • totim (float) – The simulation time. All timeseries points for timeseries partid that are greater than or equal to (ge=True) or less than or equal to (ge=False) totim will be returned. Default is None
  • ge (bool) – Boolean that determines if timeseries times greater than or equal to or less than or equal to totim is used to create a subset of timeseries. Default is True.
Returns:

tlist – A list of numpy recarrays with the x, y, z, time, k, and particleid for all timeseries.

Return type:

a list of numpy record array

Notes

Examples

>>> import flopy
>>> tsobj = flopy.utils.TimeseriesFile('model.timeseries')
>>> ts = tsobj.get_alldata()
get_data(partid=0, totim=None, ge=True)[source]

get timeseries data from the timeseries file for a single timeseries particleid.

Parameters:
  • partid (int) – The zero-based particle id. The first record is record 0.
  • totim (float) – The simulation time. All timeseries points for particle partid that are greater than or equal to (ge=True) or less than or equal to (ge=False) totim will be returned. Default is None
  • ge (bool) – Boolean that determines if timeseries times greater than or equal to or less than or equal to totim is used to create a subset of timeseries. Default is True.
Returns:

ra – A numpy recarray with the x, y, z, time, k, and particleid for timeseries partid.

Return type:

numpy record array

Notes

Examples

>>> import flopy
>>> tsobj = flopy.utils.TimeseriesFile('model.timeseries')
>>> ts1 = tsobj.get_data(partid=1)
get_destination_timeseries_data(dest_cells)[source]

Get timeseries data for set of destination cells.

Parameters:dest_cells (list or array of tuples) – (k, i, j) or nodes of each destination cell (zero-based)
Returns:tsdest – Slice of timeseries data array (e.g. TmeseriesFile._data) containing only pathlines with final k,i,j in dest_cells.
Return type:np.recarray

Examples

>>> import flopy
>>> ts = flopy.utils.TimeseriesFile('modpath.timeseries')
>>> tss = ts.get_destination_timeseries_data([(0, 0, 0),
...                                           (1, 0, 0)])
get_maxid()[source]

Get the maximum timeseries number in the file timeseries file

Returns:out – Maximum pathline number.
Return type:int
get_maxtime()[source]

Get the maximum time in timeseries file

Returns:out – Maximum pathline time.
Return type:float
kijnames = ['k', 'i', 'j', 'node', 'particleid', 'particlegroup', 'particleidloc', 'timestep', 'timestepindex', 'timepointindex']