flopy.utils.flopy_io module

Module for input/output utilities

flux_to_wel(cbc_file, text, precision='single', model=None, verbose=False)[source]

Convert flux in a binary cell budget file to a wel instance

Parameters:
  • cbc_file ((str) cell budget file name) –

  • text ((str) text string of the desired flux type (e.g. "drains")) –

  • precision ((optional str) precision of the cell budget file) –

  • model ((optional) BaseModel instance. If passed, a new ModflowWel) – instance will be added to model

  • verbose (bool flag passed to CellBudgetFile) –

Return type:

flopy.modflow.ModflowWel instance

get_next_line(f)[source]

Get the next line from a file that is not a blank line

Parameters:

f (filehandle) – filehandle to a open file

Returns:

line – next non-empty line in a open file

Return type:

string

get_ts_sp(line)[source]

Reader method to get time step and stress period numbers from list files and Modflow other output files

Parameters:

line (str) – line containing information about the stress period and time step. The line must contain “STRESS PERIOD <x> TIME STEP <y>”

Return type:

tuple of stress period and time step numbers

get_url_text(url, error_msg=None)[source]

Get text from a url.

line_parse(line)[source]

Convert a line of text into to a list of values. This handles the case where a free formatted MODFLOW input file may have commas in it.

line_strip(line)[source]

Remove comments and replace commas from input text for a free formatted modflow input file

Parameters:

line (str) – a line of text from a modflow input file

Returns:

str

Return type:

line with comments removed and commas replaced

loadtxt(file, delimiter=' ', dtype=None, skiprows=0, use_pandas=True, **kwargs)[source]

Use pandas to load a text file (significantly faster than n.loadtxt or genfromtxt see https://stackoverflow.com/q/18259393/)

Parameters:
  • file (file or str) – File, filename, or generator to read.

  • delimiter (str, optional) – The string used to separate values. By default, this is any whitespace.

  • dtype (data-type, optional) – Data-type of the resulting array

  • skiprows (int, optional) – Skip the first skiprows lines; default: 0.

  • use_pandas (bool) – If true, the much faster pandas.read_csv method is used.

  • kwargs (dict) – Keyword arguments passed to numpy.loadtxt or pandas.read_csv.

Returns:

ra – Numpy record array of file contents.

Return type:

np.recarray

multi_line_strip(fobj)[source]

Get next line that is not blank or is not a comment line from a free formatted modflow input file

Parameters:

fobj (open file object) – a line of text from an input file

Returns:

str

Return type:

line with comments removed and commas replaced

pop_item(line, dtype=<class 'str'>)[source]
read_fixed_var(line, ncol=1, length=10, ipos=None, free=False)[source]

Parse a fixed format line using user provided data

Parameters:
  • line (str) – text string to parse.

  • ncol (int) – number of columns to parse from line. (default is 1)

  • length (int) – length of each column for fixed column widths. (default is 10)

  • ipos (list, int, or numpy array) – user-provided column widths. (default is None)

  • free (bool) – boolean indicating if string is free format. ncol, length, and ipos are not used if free is True. (default is False)

Returns:

out – padded list containing data parsed from the passed text string

Return type:

list

relpath_safe(path: str | PathLike, start: str | PathLike = '.', scrub: bool = False) str[source]

Return a relative version of the path starting at the given start path. This is impossible on Windows if the paths are on different drives, in which case the absolute path is returned. The builtin os.path.relpath raises a ValueError, this method is a workaround to avoid interrupting normal control flow (background at https://bugs.python.org/issue7195).

This method also truncates/obfuscates absolute paths with usernames.

Parameters:
  • path (str or PathLike) – the path to truncate relative to the start path

  • start (str or PathLike, default ".") – the starting path, defaults to the current working directory

  • scrub (bool, default False) – whether to remove the current login name from paths

Returns:

  • str (the relative path, unless the platform is Windows and the path)

  • is not on the same drive as start, in which case the absolute path,

  • with elements before and including usernames removed and obfuscated

scrub_login(s: str) str[source]

Remove the current login name from the given string, replacing any occurrences with “***”.

Parameters:

s (str) – the input string

Return type:

the string with login name obfuscated

ulstrd(f, nlist, ra, model, sfac_columns, ext_unit_dict)[source]

Read a list and allow for open/close, binary, external, sfac, etc.

Parameters:
  • f (file handle) – file handle for where the list is being read from

  • nlist (int) – size of the list (number of rows) to read

  • ra (np.recarray) – A record array of the correct size that will be filled with the list

  • model (model object) – The model object (of type flopy.modflow.mf.Modflow) to which this package will be added.

  • sfac_columns (list) – A list of strings containing the column names to scale by sfac

  • ext_unit_dict (dictionary, optional) – If the list in the file is specified using EXTERNAL, then in this case ext_unit_dict is required, which can be constructed using the function flopy.utils.mfreadnam.parsenamefile.

write_fixed_var(v, length=10, ipos=None, free=False, comment=None)[source]
Parameters:
  • v (list, int, float, bool, or numpy array) – list, int, float, bool, or numpy array containing the data to be written to a string.

  • length (int) – length of each column for fixed column widths. (default is 10)

  • ipos (list, int, or numpy array) – user-provided column widths. (default is None)

  • free (bool) – boolean indicating if a free format string should be generated. length and ipos are not used if free is True. (default is False)

  • comment (str) – comment string to add to the end of the string

Returns:

out – fixed or free format string generated using user-provided data

Return type:

str