flopy.utils.datafile module

Module to read MODFLOW output files. The module contains shared abstract classes that should not be directly accessed.

class Header(filetype=None, precision='single')[source]

Bases: object

The header class is an abstract base class to create headers for MODFLOW files

get_dtype()[source]

Return the dtype

get_names()[source]

Return the dtype names

get_values()[source]

Return the header values

class LayerFile(filename: str | PathLike, precision, verbose, kwargs)[source]

Bases: object

Base class for layered output files. Do not instantiate directly.

close()[source]

Close the file handle.

get_alldata(mflay=None, nodata=-9999)[source]

Get all of the data from the file.

Parameters:
  • mflay (integer) – MODFLOW zero-based layer number to return. If None, then all all layers will be included. (Default is None.)

  • nodata (float) – The nodata value in the data array. All array values that have the nodata value will be assigned np.nan.

Returns:

data – Array has size (ntimes, nlay, nrow, ncol) if mflay is None or it has size (ntimes, nrow, ncol) if mlay is specified.

Return type:

numpy array

Notes

Examples

get_data(kstpkper=None, idx=None, totim=None, mflay=None)[source]

Get data from the file for the specified conditions.

Parameters:
  • idx (int) – The zero-based record number. The first record is record 0.

  • kstpkper (tuple of ints) – A tuple (kstep, kper) of zero-based time step and stress period.

  • totim (float) – The simulation time.

  • mflay (integer) – MODFLOW zero-based layer number to return. If None, then all all layers will be included. (Default is None.)

Returns:

data – Array has size (nlay, nrow, ncol) if mflay is None or it has size (nrow, ncol) if mlay is specified.

Return type:

numpy array

Notes

If both kstpkper and totim are None, the last entry will be returned.

get_kstpkper()[source]

Get a list of unique tuples (stress period, time step) in the file. Indices are 0-based, use the kstpkper attribute for 1-based.

Returns:

List of unique combinations of stress period & time step indices (0-based) in the binary file

Return type:

list of (kstp, kper) tuples

get_nrecords()[source]
get_times()[source]

Get a list of unique times in the file

Returns:

out – List contains unique simulation times (totim) in binary file.

Return type:

list of floats

list_records()[source]

Print a list of all of the records in the file obj.list_records()

plot(axes=None, kstpkper=None, totim=None, mflay=None, filename_base=None, **kwargs)[source]

Plot 3-D model output data in a specific location in LayerFile instance

Parameters:
  • axes (list of matplotlib.pyplot.axis) – List of matplotlib.pyplot.axis that will be used to plot data for each layer. If axes=None axes will be generated. (default is None)

  • kstpkper (tuple of ints) – A tuple containing the time step and stress period (kstp, kper). These are zero-based kstp and kper values.

  • totim (float) – The simulation time.

  • mflay (int) – MODFLOW zero-based layer number to return. If None, then all all layers will be included. (default is None)

  • filename_base (str) – Base file name that will be used to automatically generate file names for output image files. Plots will be exported as image files if file_name_base is not None. (default is None)

  • **kwargs (dict) –

    pcolorbool

    Boolean used to determine if matplotlib.pyplot.pcolormesh plot will be plotted. (default is True)

    colorbarbool

    Boolean used to determine if a color bar will be added to the matplotlib.pyplot.pcolormesh. Only used if pcolor=True. (default is False)

    contourbool

    Boolean used to determine if matplotlib.pyplot.contour plot will be plotted. (default is False)

    clabelbool

    Boolean used to determine if matplotlib.pyplot.clabel will be plotted. Only used if contour=True. (default is False)

    gridbool

    Boolean used to determine if the model grid will be plotted on the figure. (default is False)

    masked_valueslist

    List of unique values to be excluded from the plot.

    file_extensionstr

    Valid matplotlib.pyplot file extension for savefig(). Only used if filename_base is not None. (default is ‘png’)

Return type:

None

Notes

Examples

>>> import flopy
>>> hdobj = flopy.utils.HeadFile('test.hds')
>>> times = hdobj.get_times()
>>> hdobj.plot(totim=times[-1])
to_shapefile(filename: str | PathLike, kstpkper=None, totim=None, mflay=None, attrib_name='lf_data', verbose=False)[source]
Export model output data to a shapefile at a specific location

in LayerFile instance.

Parameters:
  • filename (str or PathLike) – Shapefile path to write

  • kstpkper (tuple of ints) – A tuple containing the time step and stress period (kstp, kper). These are zero-based kstp and kper values.

  • totim (float) – The simulation time.

  • mflay (integer) – MODFLOW zero-based layer number to return. If None, then layer 1 will be written

  • attrib_name (str) – Base name of attribute columns. (default is ‘lf_data’)

  • verbose (bool) – Whether to print verbose output

Return type:

None

Notes

Examples

>>> import flopy
>>> hdobj = flopy.utils.HeadFile('test.hds')
>>> times = hdobj.get_times()
>>> hdobj.to_shapefile('test_heads_sp6.shp', totim=times[-1])