../../_images/logo.png

Fracture Networks#

class fracability.Entities.FractureNetwork(gdf: GeoDataFrame | None = None)#

Fracture network base entity. Fracture networks are defined by one or more:

  • Fracture base entities

  • Boundary base entities

  • Nodes base entities

All the data is represented in the entity_df and the different objects are defined by the ‘type’ column.

FractureNetwork objects can be created in two ways depending on how the dataset is structured.

1. If fractures and boundaries and nodes are saved in different shp files then use the add_fracture,add_boundary and add_nodes methods on an empty FractureNetwork object.

2. If fractures and boundaries and nodes are saved in a single shp the geopandas dataframe can be directly fed when instantiating the class. In this case a type column must be set to indicate of which type the geometries are

activate_boundaries(group_n: list | None = None)#

Method that activates the boundary provided in the group_n list. :param group_n: List of groups to be activated

activate_fractures(set_n: list | None = None)#

Method that activates the fractures provided in the set_n list. :param set_n: List of sets to be activated

activate_nodes(node_type: list | None = None)#

Method that activates the nodes provided in the node_type list. :param node_type: List of node types to be activated

add_boundaries(boundary: Boundary | None = None)#

Method used to add boundary components to the fracture network Dataframe :param boundary: Boundary object to be added

Notes

The boundary are added to the fracture network dataframe using the assigned group_n present in the Boundary object dataframe. If the group is already present the boundary object will be overwritten if not it will be appended

add_fractures(fractures: Fractures | None = None)#

Method used to add fracture components to the fracture network Dataframe :param fractures: Fracture object to be added

Notes

The fractures are added to the fracture network dataframe using the assigned fracture_set present in the Fracture object dataframe. If the set is already present the fracture object will be overwritten if not it will be appended

add_nodes(nodes: Nodes | None = None)#

Method used to add nodes components to the fracture network Dataframe :param nodes: Nodes object to be added

Notes

The nodes are added to the fracture network dataframe using the assigned node_type present in the Nodes object dataframe. If the node type is already present the node object will be overwritten if not it will be appended

property boundaries: Boundary#

Property that returns a Boundary entity object of all the active boundary groups. :return: Boundary entity object

boundary_object(group_n: int) Fractures#

Method that returns the Node object of a given group_number :param group_n: Number of the group :return: Boundary object

center_object(trans_center: array | None = None, return_center: bool = False, inplace: bool = True)#

Method used to center the center of an Entity object to a given point. If no point is specified then the object will be moved to the origin (0,0,0).

Parameters:
  • obj (Boundary, Fractures, FractureNetwork) – A fracability entity object

  • trans_center (array) – Point to which translate the object

  • return_center (bool) – Bool flag to specify to return the translation center

  • inplace (bool) – Bool flag to specify if the operation overwrites the entity or creates a new instance

Returns:

  • trans_center (array) – Point of translation. If trans_center is not specified in the output then this will return the center of the object

  • copy_obj (object) – Copy of the modified input object (preserves the original input)

property centroid: ndarray#

Property used to return the centroid of the entity. Dissolve is used to aggregate each shape in a single entity. :return: 1D numpy array of the centroid

property crs#

Property used to return the crs of the entity :return: Name of the coordinate system as a string

deactivate_boundaries(group_n: list | None = None)#

Method that deactivates the boundary provided in the group_n list. :param group_n: List of groups to be deactivated

Note

If group_n is none then all boundaries groups are deactivated

deactivate_fractures(set_n: list | None = None)#

Method that activates the fractures provided in the set_n list. :param set_n: List of sets to be activated

deactivate_nodes(node_type: list | None = None)#

Method that activates the nodes provided in the node_type list. :param node_type: List of node types to be activated

property entity_df#

Each entity is based on a geopandas dataframe. This property returns or sets the entity_df of the given entity.

Getter:

Returns the GeoDataFrame

Setter:

Sets the GeoDataFrame

Type:

GeoDataFrame

Notes

When set, the dataframe is modified to conform to the assigned entity structure.

fracture_network_to_components_df() GeoDataFrame#

Method used to return the fracture network as a single geopandas dataframe. :return: Geopandas DataFrame of the whole fracture network

fracture_object(set_n: int) Fractures#

Method that returns the Fracture object of a given set :param set_n: Number of the set :return: Fracture object

property fractures: Fractures#

Property that returns a Fracture entity object of all the active fracture sets. :return: Fracture entity object

property get_copy#

Property used to return a deep copy of the entity :return:

is_group_active(group_n: int) bool#

Method used to return if a given boundary group is active in the fracture network :param group_n: set to check :return: Bool value of the test

is_set_active(set_n: int) bool#

Method used to return if a given fracture set is active in the fracture network :param set_n: set to check :return: Bool value of the test

is_type_active(node_type: int) bool#

Method used to return if a given node type is active in the fracture network :param node_type: node type to check :return: Bool value of the test

matplot(markersize=5, linewidth=[2, 2], color=['black', 'blue'], color_set=False, return_ax=False)#

Method used to plot the fracture network using matplotlib :return:

property name#

Property used to return the name of the class (i.e. Fractures) :return: Name of the class as string

property network_object: Graph#

Method used to return a networkx Graph representation of the fracture network :return: Graph of the fracture network

property nodes: Nodes#

Property that returns a Node entity object of all the active nodes. :return: Nodes entity object

nodes_object(node_type: int) Nodes#

Method that returns the Node object of a given node_type :param node_type: Type of the node :return: Nodes object

plot_ternary()#

Method used to plot the ternary diagram of the fracture network :return:

save_csv(path: str, sep: str = ',', index: bool = False)#

Save the entity df as csv :param index: :type sep: object :param path: :return:

save_shp(path: str)#

Save the entity df as shp :param path: :return:

vtk_object(include_nodes: bool = True) PolyData#

Method used to return a vtkPolyData representation of the fracture network :param include_nodes: Bool flag used to control if include or not the nodes in the fracture network object :return: vtkPolyData of the fracture network

vtkplot(markersize=5, linewidth=[2, 2], color=['white', 'white'], color_set=False, return_plot=False)#

Method used to plot the fracture network using vtk :return: