1. Digitising Tools - BjornNyberg/NetworkGT GitHub Wiki
Fig. 1: Suggested workflow within NetworkGT for digitising a topologically consistent fracture network.
Automated Fracture Digitisation
The latest version, NetworkGT 1.0, provides image processing and skeletonisation tools for the user to automatically extract a digitised network from an image that is topologically consistent (Fig. 2). Application of the tools can be useful for analysing large spatial extents of outcrops that would otherwise be time consuming to manually digitise. The tools can also be applied to quickly digitise published maps and images.
It should be noted that although the networks are topologically consistent they may not be topologically accurate, therefore it is recommended that the user processes the network to correct the topology, either manually or using the suite of Topological Processing tools provided within the NetworkGT 1.0 toolbox.
Fig. 2: Example of automatic fracture digitisation using the Thresholding and Digitise Fracture Network tools in NetworkGT 1.0: A- original RGB colour image of a joint network; B- the image is thresholded into a binary image; C- binary image is skeletonised and converted into a fracture network linestring geomtery
Thresholding
Creates a binary raster image based on the Sci-Kit Image Processing package (e.g. Fig. 2B). Input requires a grayscale or RGB coloured image which can then be thresholded using one of three methods:
- Otsu thresholding- Defines fractures within the given image by calculating a global threshold that minimises the intra-class variance of the rasters histogram values. If a user specifies a block size (in pixel dimensions), a local threshold will be found by calculating the intra-class variance of the rasters histogram values from a local block of sampled pixels.
- Adaptive (local) thresholding- Applies a local threshold that defines a fracture based on a guassian, median or mean value of pixels found within a local block of sampled pixels. The user can specify the pixel dimensions of the block size, however, if unspecified the tool will calculate a block size depending on the pixel dimensions of the image.
- Percentile (local) thresholding- Defines a threshold cutoff based on a user specified percentile and the rasters histogram values found within the given block of sampled pixels. The user can specify the pixel dimensions of the block size, however, if unspecified the tool will calculate a block size depending on the pixel dimensions of the image.
The user has an additional option within the thresholding tool to Mode blur the resulting thresholded image by taking a mode pixel value within a specified pixel block size. This can help simplify the output binary image and is helpful for automated fracture network mapping.
N.B. Pixel block sizes need to be odd numbers to create a square block.
Digitise Fracture Network
Digitises a fracture network from a binary raster image by thinning the objects within the raster until they are one pixel wide (Skeletonisation). The subsequent 1 pixel wide binary objects are then converted to a linestring geometry with topologically consistent intersections (e.g. Fig. 2C).
The user has additional options to simplify the linestring geometry:
- Simplify Line Distance- Applies a 'Ramer–Douglas–Peucker' algorithm that decreases the number of line segments within the linestring by specifying a minimum distance (m) between vertices.
- Short Isolated Fractures Threshold- Deletes isolated fractures that are smaller than a specified length (m).
N.B. The output linestring geometry will create V-nodes at vertices where a line changes orientation. The user will need to run the 'Repair Topology' tool on the linestring geometry before conducting further geometrical, topological or flow analyses.
Topological Processing
Before analysing the topology, connectivity and flow properties of a fracture network, it is important that the network is topologically correct. Therefore, NetworkGT offers an array of processing tools that resolve common topological errors associated with either manual or automated fracture network digitisation (Fig. 3). The order and use of these topological processing tools is an iterative process (i.e. Fig. 1) and may vary between digitised networks.
Fig. 3: Schematic of various topological artefacts that can occur during network digitisation and can be corrected using the suite of topological processing tools: A- remove erroneous short isolated fracture lines; B- extend and snap fracture lines to existing fractures; C- trim and snap fracture lines to existing fractures; D- snap I-nodes of incorrectly offset fracture lines; E- Merge fragmented fracture lines that lead to inconsistent node counts; F- snap Y-nodes of incorrectly offset fracture lines.
Repair Topology
Repairs common topological errors in the digitisation of a fracture network with particular focus on removing V-nodes.
The tool will merge fracture lines that are fragmented by V-nodes that occur at vertices where line segment orientations change (e.g. Fig. 3E), such as the fracture linestrings output by the 'Digitise Fracture Network' tool during automated digitisation. In addition the user can also specify a number of parameters:
- V-Node Angle- merges line segments if the change in fracture orientation at a V-node is less than the given angle threshold.
- Distance to Extend V-Nodes- changes a V-node into a Y-node if the change in line segment orientation at the V-node exceeds the given V-node angle. This is done by extending one of the line segments by the specified distance.
- Create X-nodes- forms an X-node at each given V-node where the change in line segment orientation exceeds the given V-node angle. This is done by extending both line segments by the specified distance to extend.
- Remove circles- removes all circles or loops along a digitised line after merging and/or extending V-node linestring geometries.
- Fix Multiple Intersections- sequentially removes the smallest fracture line segments that intersect at a location where more than 4 segments intersect (i.e. a node degree greater than 4). The process continues until an X-node where four line segments intersects is formed (i.e. a node degree equal to 4).
In addition to resolving these topological errors the tool will calculate the fracture length if a 'Fault No' field exists in the linestring attribute table, grouping segments that have the same 'Fault No'.
Trim and Extend
The tool can delete short isolated fractures (e.g. Fig. 3A), extend fractures to intersect another fracture line (e.g. Fig. 3B) or remove small dangles (e.g. Fig. 3C). The last two correct common errors in digitising associated with snapping the endpoint of one line to another line. If the endpoint is not snapped properly then it will either not reach the line or overlap the line by a negligible distance, resulting in an incorrect topology.
The user can specify different distance thresholds:
- Short Isolated Fractures Threshold- removes small isolated fractures (i.e. II-branches) that are shorter than the specified threshold.
- Distance to Trim Dangles- removes dangles (i.e. IC-branches) that are shorter than the specified distance. This will result in a Y-node intersection.
- Distance to Extend Dangles- extends the endpoint of a line segment to connect with another line forming a Y-node intersection. The line segments endpoint will only be extended if the other line is closer than the specified distance.
N.B. It is recommended to use the trim and extend functions separately.
Snap Nodes
Snaps I-nodes in a fracture network to another node (e.g. Fig. 3D) within a specified distance and/or angle. The tool is particularly useful for correcting segmented and/or offset fracture lines that can occur during skeletonisation when using the 'Digitise Fracture Network' tool. The user can define a number of input parameters:
- Distance to Connect- defines the threshold distance to search for a nearby node to snap to.
- Angle- snapping an I-node to another node can vary the orientation of its associated linestring segment. This option allows the user to specify a maximum angle that the linestring segments orientation can vary by.
- Snap Node Count- determines what node types an I-node can snap to. Enter 1 to snap to I-nodes, 2 for I-or V-nodes and 3 for I-, V- or Y-nodes.
- Number of Distance Iterations- specifies the number of search distance iterations to perform. Each search distance iteration is defined by 'Distance to Connect'/'Number of Distance Iterations'. For example: if the 'Distance to Connect' = 10m and the 'Number of Distance Iterations' = 5, then the tool will run 5 times increasing the search distance by an increment of 2m each time.
N.B. The tool will snap to the first linestring that meets the threshold parameters provided based on the order in the attribute table.
Connect Y Nodes
Connect two Y Nodes in a fracture network to create a X node within a specified distance and angle. The tool is particularly useful for correcting slightly offset fracture lines at an intersection that can occur during skeletonisation when using the 'Digitise Fracture Network' tool. The user can define a number of input parameters:
- Distance to Snap- defines the threshold distance to search for a nearby Y to snap to.
- Angle- This option allows the user to specify a maximum angle that the linestring segments orientation can vary by.
- Number of Distance Iterations- specifies the number of search distance iterations to perform. Each search distance iteration is defined by 'Distance to Connect'/'Number of Distance Iterations'. For example: if the 'Distance to Connect' = 10m and the 'Number of Distance Iterations' = 5, then the tool will run 5 times increasing the search distance by an increment of 2m each time.
N.B. The tool will snap to the first linestring that meets the threshold parameters provided based on the order in the attribute table.
Fracture Line Numbers
The automated skeletonisation process using the 'Digitise Fracture Network' tool will create a series of branch segments without knoweldge of fracture line lengths. The 'Fracture Line Numbers' tool will define fracture lines by grouping lines sequential branches that deviate less than a specified angle.
- Angle Threshold- This option allows the user to specify a maximum angle that the linestring segments orientation can vary by in defining a fracture line.
- Maximum Fracture Deflection - The maximum fracture deflection parameter is the distance by which to ignore the angle threshold. For example, if an angle threshold is set at 10 degrees and a maximum fracture deflection of 0.1m, any angle greater than 10 degrees that has a cumulative fracture length less than 0.1m will be skipped. If the next branch in the sequence is within the angle threshold of 10 degrees, the algorithm will continue to classify branches using the same fracture line number. This is particuarly useful to correct for small 'kinks' in the fracture network in classifying fracture line numbers.
Simplify Network
Simplify the fracture network while maintaining the original geometry. The extent option will reduce the size of the fracture network based on the extent of another layer or a manually drawn rectangle. This is a particularly useful step for 1D fluid flow simulations.
- Select Boundary Direction - Based on the selected extent, the 'Select Boundary Direction' can be choosen to only preserve the dangles that touch those boundaries.
- Remove dangles - Remove all dangles or I - C branches with the exception to dangles that bound the 'Select Boundary Direction' option or manually selected dangles in the fracture network prior to executing the algorithm. 3.Remove Isolated Fractures - Remove all isolated fractures of I - I branches.
- Shortest Pathway - option will define all pathways from start to endpoint between the boundaries choosen in the 'Select Boundary Direction' options or between manually selected dangles in the fracture network prior to executing the algorithm.
- Simplify - tool will simplify each fracture line or branch by only preserving the start and endpoint while mainting the original fracture length geometry in a new 'origLen' field. It is recommended to use this step to simplify a fracture network for 1D simulations while mainting the original fracture length geometry.