flopy.mf6.data.mfstructure module¶
mfstructure module. Contains classes related to package structure
-
class
BlockType[source]¶ Bases:
enum.EnumTypes of blocks that can be found in a package file
-
multiple= 2¶
-
single= 1¶
-
transient= 3¶
-
-
class
DataType[source]¶ Bases:
enum.EnumTypes of data that can be found in a package file
-
array= 3¶
-
array_transient= 4¶
-
list= 5¶
-
list_multiple= 7¶
-
list_transient= 6¶
-
scalar= 2¶
-
scalar_keyword= 1¶
-
scalar_keyword_transient= 9¶
-
scalar_transient= 8¶
-
-
class
DatumType[source]¶ Bases:
enum.EnumTypes of individual pieces of data
-
constant= 5¶
-
double_precision= 3¶
-
integer= 2¶
-
keystring= 7¶
-
keyword= 1¶
-
list_defined= 6¶
-
recarray= 10¶
-
record= 8¶
-
repeating_record= 9¶
-
string= 4¶
-
-
class
Dfn[source]¶ Bases:
objectBase class for package file definitions
-
dfndir¶ folder containing package definition files (dfn)
Type: path
-
common¶ file containing common information
Type: path
-
multi_package¶ contains the names of all packages that are allowed to have multiple instances in a model/simulation
Type: dict
-
get_file_list : () : list returns all of the dfn files found in dfndir. files are returned in a specified order defined in the local variable file_order
Notes
Examples
-
-
class
DfnFile(file)[source]¶ Bases:
flopy.mf6.data.mfstructure.DfnDfn child class that loads dfn information from a package definition (dfn) file
-
file¶ name of the file to be loaded
Type: str
-
multi_package_support : () : bool returns flag for multi-package support
-
dict_by_name : {} : dict returns a dictionary of data item descriptions from the dfn file with the data item name as the dictionary key
-
get_block_structure_dict : (path : tuple, common : bool, model_file : - bool) : dict
returns a dictionary of block structure information for the package
Notes
Examples
-
-
class
DfnPackage(package)[source]¶ Bases:
flopy.mf6.data.mfstructure.DfnDfn child class that loads dfn information from a list structure stored in the auto-built package classes
-
multi_package_support : () : bool returns flag for multi-package support
-
get_block_structure_dict : (path : tuple, common : bool, model_file : - bool) : dict
returns a dictionary of block structure information for the package
Notes
Examples
-
-
class
DfnType[source]¶ Bases:
enum.EnumAn enumeration.
-
common= 1¶
-
exch_file= 5¶
-
gnc_file= 8¶
-
ims_file= 4¶
-
model_file= 7¶
-
model_name_file= 6¶
-
mvr_file= 9¶
-
sim_name_file= 2¶
-
sim_tdis_file= 3¶
-
unknown= 999¶
-
utl= 10¶
-
-
class
MFBlockStructure(name, path, model_block)[source]¶ Bases:
objectDefines the structure of a MF6 block.
Parameters: - name (string) – block name
- path (tuple) – tuple that describes location of block within simulation (<model>, <package>, <block>)
- model_block (bool) – true if this block is part of a model
-
name¶ block name
Type: string
-
path¶ tuple that describes location of block within simulation (<model>, <package>, <block>)
Type: tuple
-
model_block¶ true if this block is part of a model
Type: bool
-
data_structures¶ dictionary of data items in this block, with the data item name as the key
Type: OrderedDict
-
block_header_structure¶ list of data items that are part of this block’s “header”
Type: list
-
repeating() : bool Returns true if more than one instance of this block can appear in a MF6 package file
-
add_dataset(dataset : MFDataStructure, block_header_dataset : bool)[source]¶ Adds dataset to this block, as a header dataset of block_header_dataset is true
-
number_non_optional_data() : int Returns the number of non-optional non-header data structures in this block
-
number_non_optional_block_header_data() : int Returns the number of non-optional block header data structures in this block
-
get_data_structure(path : tuple) : MFDataStructure Returns the data structure in this block with name defined by path[0]. If name does not exist, returns None.
-
get_all_recarrays() : list Returns all data non-header data structures in this block that are of type recarray
Notes
Examples
-
add_dataset(dataset)[source]
-
class
MFDataItemStructure[source]¶ Bases:
objectDefines the structure of a single MF6 data item in a dfn file
-
block_name¶ name of block that data item is in
Type: str
-
name¶ name of data item
Type: str
-
name_list¶ list of alternate names for the data item, includes data item’s main name “name”
Type: list
-
python_name¶ name of data item referenced in python, with illegal python characters removed
Type: str
-
type¶ type of the data item as it appears in the dfn file
Type: str
-
type_obj¶ type of the data item as a python type
Type: python type
-
valid_values¶ list of valid values for the data item. if empty, this constraint does not apply
Type: list
-
data_items¶ list of data items contained in this data_item, including itself
Type: list
-
in_record¶ in_record attribute as appears in dfn file
Type: bool
-
tagged¶ whether data item is tagged. if the data item is tagged its name is included in the MF6 input file
Type: bool
-
just_data¶ when just_data is true only data appears in the MF6 input file. otherwise, name information appears
Type: bool
-
shape¶ describes the shape of the data
Type: list
-
layer_dims¶ which dimensions in the shape function as layers, if None defaults to “layer”
Type: list
-
reader¶ reader that MF6 uses to read the data
Type: basestring
-
optional¶ whether data item is optional or required as part of the MFData in the MF6 input file
Type: bool
-
longname¶ long name of the data item
Type: str
-
description¶ description of the data item
Type: str
-
path¶ a tuple describing the data item’s location within the simulation (<model>,<package>,<block>,<data>)
Type: tuple
-
repeating¶ whether or not the data item can repeat in the MF6 input file
Type: bool
-
block_variable¶ if true, this data item is part of the block header
Type: bool
-
block_type¶ whether the block containing this item is a single non-repeating block, a multiple repeating block, or a transient repeating block
Type: BlockType
-
keystring_dict¶ dictionary containing acceptable keystrings if this data item is of type keystring
Type: dict
-
is_cellid¶ true if this data item is definitely of type cellid
Type: bool
-
possible_cellid¶ true if this data item may be of type cellid
Type: bool
-
ucase¶ this data item must be displayed in upper case in the MF6 input file
Type: bool
-
remove_cellid : (resolved_shape : list, cellid_size : int) removes the cellid size from the shape of a data item
-
set_path : (path : tuple) sets the path to this data item to path
-
get_rec_type : () : object type gets the type of object of this data item to be used in a numpy recarray
Notes
Examples
-
-
class
MFDataStructure(data_item, model_data, package_type, dfn_list)[source]¶ Bases:
objectDefines the structure of a single MF6 data item in a dfn file
Parameters: - data_item (MFDataItemStructure) – base data item associated with this data structure
- model_data (bool) – whether or not this is part of a model
- package_type (str) – abbreviated package type
-
type¶ type of the data as it appears in the dfn file
Type: str
-
path¶ a tuple describing the data’s location within the simulation (<model>,<package>,<block>,<data>)
Type: tuple
-
optional¶ whether data is optional or required as part of the MFBlock in the MF6 input file
Type: bool
-
name¶ name of data item
Type: str
-
name_list¶ list of alternate names for the data, includes data item’s main name “name”
Type: list
-
python_name¶ name of data referenced in python, with illegal python characters removed
Type: str
-
longname¶ long name of the data
Type: str
-
repeating¶ whether or not the data can repeat in the MF6 input file
Type: bool
-
layered¶ whether this data can appear by layer
Type: bool
-
num_data_items¶ number of data item structures contained in this MFDataStructure, including itself
Type: int
-
record_within_record¶ true if this MFDataStructure is a record within a container MFDataStructure
Type: bool
-
file_data¶ true if data points to a file
Type: bool
-
block_type¶ whether the block containing this data is a single non-repeating block, a multiple repeating block, or a transient repeating block
Type: BlockType
-
block_variable¶ if true, this data is part of the block header
Type: bool
-
model_data¶ if true, data is part of a model
Type: bool
-
num_optional¶ number of optional data items
Type: int
-
parent_block¶ parent block structure object
Type: MFBlockStructure
-
data_item_structures¶ list of data item structures contained in this MFDataStructure
Type: list
-
expected_data_items¶ dictionary of expected data item names for quick lookup
Type: dict
-
shape¶ shape of first data item
Type: tuple
-
get_keywords : () : list returns a list of all keywords associated with this data
-
supports_aux : () : bool returns true of this data supports aux variables
-
add_item : (item : MFDataItemStructure, record : bool) adds a data item to this MFDataStructure
-
set_path : (path : tuple) sets the path describing the data’s location within the simulation (<model>,<package>,<block>,<data>)
-
get_datatype : () : DataType returns the DataType of this data (array, list, scalar, …)
-
get_min_record_entries : () : int gets the minimum number of entries, as entered in a package file, for a single record. excludes optional data items
-
get_record_size : () : int gets the number of data items, excluding keyword data items, in this MFDataStructure
-
all_keywords : () : bool returns true of all data items are keywords
-
get_type_string : () : str returns descriptive string of the data types in this MFDataStructure
-
get_description : () : str returns a description of the data
-
get_type_array : (type_array : list): builds an array of data type information in type_array
-
get_datum_type : (numpy_type : bool): returns the object type of the first data item in this MFDataStructure with a standard type. if numpy_type is true returns the type as a numpy type
-
get_data_item_types: () : list returns a list of object type for every data item in this MFDataStructure
-
first_non_keyword_index : () : int return the index of the first data item in this MFDataStructure that is not a keyword
Notes
Examples
-
is_mname¶
-
class
MFInputFileStructure(dfn_file, path, common, model_file)[source]¶ Bases:
objectMODFLOW Input File Stucture class. Loads file structure information for individual input file types.
Parameters: - dfn_file (string) – the definition file used to define the structure of this input file
- path (tuple) – path defining the location of the container of this input file structure within the overall simulation structure
- common (bool) – is this the common dfn file
- model_file (bool) – this file belongs to a specific model type
-
valid¶ simulation structure validity
Type: bool
-
path¶ path defining the location of this input file structure within the overall simulation structure
Type: tuple
-
read_as_arrays¶ if this input file structure is the READASARRAYS version of a package
Type: bool
-
is_valid() : bool Checks all structures objects within the file for validity
-
get_data_structure(path : string)[source]¶ Returns a data structure of it exists, otherwise returns None. Data structure type returned is based on the tuple/list “path”
Notes
Examples
-
get_data_structure(path)[source]
-
class
MFModelStructure(model_type, utl_struct_objs)[source]¶ Bases:
objectDefines the structure of a MF6 model and its packages
Parameters: model_type (string) – abbreviation of model type -
valid¶ simulation structure validity
Type: bool
-
name_file_struct_obj¶ describes the structure of the simulation name file
Type: MFInputFileStructure
-
package_struct_objs¶ describes the structure of the simulation packages
Type: OrderedDict
-
model_type¶ dictionary containing simulation package structure
Type: string
-
add_namefile : (dfn_file : DfnFile, model_file=True : bool) Adds a namefile structure object to the model
-
add_package(dfn_file : DfnFile, model_file=True : bool)[source]¶ Adds a package structure object to the model
-
is_valid() : bool Checks all structures objects within the model for validity
-
get_data_structure(path : string)[source]¶ Returns a data structure of it exists, otherwise returns None. Data structure type returned is based on the tuple/list “path”
Notes
Examples
-
add_package(dfn_file, common)[source]
-
get_data_structure(path)[source]
-
-
class
MFSimulationStructure[source]¶ Bases:
objectDefines the structure of a MF6 simulation and its packages and models.
-
name_file_struct_obj¶ describes the structure of the simulation name file
Type: MFInputFileStructure
-
package_struct_objs¶ describes the structure of the simulation packages
Type: OrderedDict
-
model_struct_objs¶ describes the structure of the supported model types
Type: OrderedDict
-
utl_struct_objs¶ describes the structure of the supported utility packages
Type: OrderedDict
-
common¶ common file information
Type: OrderedDict
-
model_type¶ placeholder
Type: string
-
process_dfn : (dfn_file : DfnFile) reads in the contents of a dfn file, storing that contents in the appropriate object
-
add_namefile : (dfn_file : DfnFile, model_file=True : bool) Adds a namefile structure object to the simulation
-
add_util : (dfn_file : DfnFile) Adds a utility package structure object to the simulation
-
add_package(dfn_file : DfnFile, model_file=True : bool)[source]¶ Adds a package structure object to the simulation
-
is_valid() : bool Checks all structures objects within the simulation for validity
-
get_data_structure(path : string)[source]¶ Returns a data structure of it exists, otherwise returns None. Data structure type returned is based on the tuple/list “path”
-
tag_read_as_arrays()[source]¶ Searches through all packages and tags any packages with a name that indicates they are the READASARRAYS version of a package.
Notes
Examples
-
add_model(model_type)[source]
-
add_package(dfn_file, model_file=True)[source]
-
get_data_structure(path)[source]
-
model_types¶
-
store_common(dfn_file)[source]
-
tag_read_as_arrays()[source]
-
-
class
MFStructure[source]¶ Bases:
objectSingleton class for accessing the contents of the json structure file (only one instance of this class can exist, which loads the json file on initialization)
Parameters: - mf_version (int) – version of MODFLOW
- valid (bool) – whether the structure information loaded from the dfn files is valid
- sim_struct (MFSimulationStructure) – Object containing file structure for all simulation files
- dimension_dict (dict) – Dictionary mapping paths to dimension information to the dataitem whose dimension information is being described