Methods and devices for seamless pore network extraction
A method and device for pore network extraction by one or more processing units are disclosed. The method may include decomposing the global image into a set of overlapping subimages, extracting a set of subnetworks corresponding to the set of overlapping subimages, obtaining a cohesive pore network representing the porous media sample by merging the set of subnetworks, and outputting the cohesive pore network.
1 . A method for pore network extraction by one or more processing units, comprising:
obtaining a global image of a porous media sample;
decomposing the global image into a set of overlapping subimages;
extracting a set of subnetworks corresponding to the set of overlapping subimages, comprising:
identifying a set of voxels along a medial axis that lie within a void space, wherein the void space contains one or more pore spaces, wherein the one or more pore spaces comprise at least one of pore bodies, pore throats bundles, and volume voxel bundles; and
generating the set of subnetworks based on the pore bodies and the pore throats bundles;
obtaining a cohesive pore network representing the porous media sample by merging the set of subnetworks; and
outputting the cohesive pore network.
2 . The method of claim 1 , wherein merging the set of subnetworks comprises producing an extracted pore network.
3 . The method of claim 1 , wherein each of the set of overlapping subimages comprises at least a distance map and a medial axis.
4 . The method of claim 3 , wherein the distance map assigns, to each voxel of each of the set of overlapping subimages, a distance value equivalent to a nearest voxel having a different type.
5 . The method of claim 1 , wherein extracting the set of subnetworks comprises:
decomposing the void space to represent the one or more pore spaces;
clustering the one or more pore spaces based on an association of each of the one or more pore spaces with the pore bodies, the pore throats bundles, or the volume voxel bundles;
allocating one or more of the volume voxel bundles to either the pore bodies or the pore throats bundles;
and
characterizing one or more properties of the set of subnetworks.
6 . The method of claim 5 , wherein decomposing the void space to represent the one or more pore spaces comprises:
constructing the pore body and the pore throat bundles along the medial axis; and
constructing the volume voxel bundles adjacent to a surface corresponding to the one or more pore spaces.
7 . The method of claim 6 , wherein constructing the volume voxel bundles comprises:
identifying one or more seed voxels;
applying spherical radius for each of the one or more seed voxels based on a distance map;
applying an adjustment value to the spherical radius to obtain a search radius; and
generating a volume voxel bundle based on at least the search radius.
8 . The method of claim 7 , wherein generating the volume voxel bundle comprises adding one or more target voxels to the volume voxel bundle, wherein the one or more target voxels are within the search radius and are not affiliated with another volume voxel bundle.
9 . The method of claim 5 , wherein decomposing the void space to represent the one or more pore spaces comprises:
decomposing the medial axis into a set of edges, wherein each of the set of edges represents a connection between at least one of endpoints of the medial axis or vertices of the medial axis;
classifying voxels that are not within the set of edges as part of a set of potential pore voxels;
traversing each of the set of edges; and
generating a gradient of a distance map along the set of edges.
10 . The method of claim 9 , wherein decomposing the void space to represent the one or more pore spaces comprises:
generating the set of potential pore voxels using at least a set of local maxima;
generating a set of potential pore throat voxels using at least the set of local maxima;
generating the pore bodies and the pore throats bundles using at least the set of potential pore voxels and the set of potential pore throat voxels;
generating the volume voxel bundles from a set of voxels not assigned to the pore bodies or the pore throats bundles; and
outputting an image graph comprising the pore bodies, the pore throats bundles, and the volume voxel bundles.
11 . The method of claim 5 , wherein clustering the one or more pore spaces comprises converting vertices of an image graph into a set of graph objects that represent a set of clustered voxel bundles, wherein converting comprises:
reclassifying at least some of the pore throats bundles and at least some of the pore bodies; and
clustering at least two of the set of graph objects.
12 . The method of claim 5 , wherein at least one of the pore throats bundles comprises a connection between two pore bodies having spherical radii larger than or equal to the at least one of the pore throats bundles.
13 . The method of claim 5 , wherein generating the set of subnetworks based on the pore bodies and the pore throats bundles comprises:
inflating a subgraph based on the medial axis;
clustering neighboring objects within the subgraph, wherein the neighboring objects comprise at least some of the pore bodies and at least some of the pore throats bundles; and
outputting an image graph comprising the pore bodies and the pore throats bundles.
14 . The method of claim 5 , wherein characterizing one or more properties of the set of subnetworks comprises:
generating a center and a spherical radius for each of the pore bodies;
generating a length for each of the pore throats bundles;
classifying each of the pore bodies, each of the pore throats bundles, or each of both according to a shape factor; and
generating a volume for each of the pore bodies, each of the pore throats bundles, or each of both.
15 . The method of claim 14 , further comprising generating a clay content value for each of the pore bodies, each of the pore throats bundles, or each of both.
16 . The method of claim 5 , wherein clustering the one or more pore spaces is further based on an association of some of the one or more pore spaces to a set of clay bodies.
17 . The method of claim 1 , wherein obtaining a cohesive network representative of the porous media sample further comprises:
defining an overlap region for the set of subnetworks, based at least in part on the set of overlapping subimages;
based on the overlap region, decomposing the global image into a set of geometric shapes;
merging the subnetworks based on the set of overlap regions to generate a merged pore network;
populating the merged pore network with a set of pore bodies and a set of pore throats; and
defining a set of inlet elements and a set of outlet elements within or ascribed to the set of pore bodies and the set of pore throats to generate the cohesive pore network.
18 . The method of claim 1 , further comprising removing redundant flow paths from the set of subnetworks.
19 . A method for pore network extraction by one or more processing units, comprising:
obtaining a global image of a porous media sample;
decomposing the global image into a set of overlapping subimages, a set of pore labels, and a set of interfaces;
extracting a set of subnetworks corresponding to the set of overlapping subimages, comprising:
constructing, within a geometry, one or more medial axis bundles corresponding to one or more unclaimed voxels, the unclaimed voxels falling along a medial axis and being different than both one or more pore bodies and one or more pore throat bundles;
obtaining a cohesive pore network representing the porous media sample by merging the set of subnetworks; and
outputting the cohesive pore network.
20 . The method of claim 19 , wherein extracting a set of subnetworks comprises:
constructing, within the geometry corresponding to the set of overlapping subimages, one or more pore bodies within voxels based on at least the set of pore labels;
constructing, within the geometry, one or more pore throat bundles based on at least the set of interfaces;
and
identifying, within the geometry, one or more seed voxels.
21 . The method of claim 20 , wherein the one or more medial axis bundles are reassigned to the one or more pore bodies, the one or more pore throats bundles, or some combination of the one or more pore bodies and the one or more pore throats bundles.
22 . An apparatus, comprising: a memory comprising executable instructions, and one or more processors configured to execute the executable instructions and cause the apparatus to:
obtain a global image of a porous media sample;
decompose the global image into a set of overlapping subimages;
extract a set of subnetworks corresponding to the set of overlapping subimages, comprising:
identifying a set of voxels along a medial axis that lie within a void space, wherein the void space contains one or more pore spaces, wherein the one or more pore spaces comprise at least one of pore bodies, pore throats bundles, and volume voxel bundles; and
generating the set of subnetworks based on the pore bodies and the pore throats bundles;
obtain a cohesive pore network representing the porous media sample by merging the set of subnetworks; and
output the cohesive pore network.
23 . A non-transitory computer-readable medium comprising executable instructions that, when executed by a processor of an apparatus, cause the apparatus to:
obtain a global image of a porous media sample;
decompose the global image into a set of overlapping subimages;
extract a set of subnetworks corresponding to the set of overlapping subimages, comprising:
identifying a set of voxels along a medial axis that lie within a void space, wherein the void space contains one or more pore spaces, wherein the one or more pore spaces comprise at least one of pore bodies, pore throats bundles, and volume voxel bundles; and
generating the set of subnetworks based on the pore bodies and the pore throats bundles;
obtain a cohesive pore network representing the porous media sample by merging the set of subnetworks; and
output the cohesive pore network.
24 . An apparatus, comprising: a memory comprising executable instructions, and one or more processors configured to execute the executable instructions and cause the apparatus to:
obtain a global image of a porous media sample;
decompose the global image into a set of overlapping subimages, a set of pore labels, and a set of interfaces;
extract a set of subnetworks corresponding to the set of overlapping subimages, comprising:
constructing, within a geometry, one or more medial axis bundles corresponding to one or more unclaimed voxels, the unclaimed voxels falling along a medial axis and being different than both one or more pore bodies and one or more pore throat bundles;
obtain a cohesive pore network representing the porous media sample by merging the set of subnetworks; and
output the cohesive pore network.
25 . A non-transitory computer-readable medium comprising executable instructions that, when executed by a processor of an apparatus, cause the apparatus to:
obtain a global image of a porous media sample;
decompose the global image into a set of overlapping subimages, a set of pore labels, and a set of interfaces;
extract a set of subnetworks corresponding to the set of overlapping subimages, comprising:
constructing, within a geometry, one or more medial axis bundles corresponding to one or more unclaimed voxels, the unclaimed voxels falling along a medial axis and being different than both one or more pore bodies and one or more pore throat bundles;
obtain a cohesive pore network representing the porous media sample by merging the set of subnetworks; and
output the cohesive pore network.