Package jhd.FloodFill
Class HybridFloodFill
java.lang.Object
jhd.FloodFill.Offsets
jhd.FloodFill.HybridFloodFill
public class HybridFloodFill extends Offsets
Class for simulation of non-wetting imbibition into random porous media with both resolved and unresolved porosity
- Author:
- John H Dunsmuir
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
HybridFloodFill.FloodParams
Experimental data structure passed to Flood_Fillstatic class
HybridFloodFill.FloodReport
Data structure returned by hybridFloodFillstatic class
HybridFloodFill.FloodStats
A data structure returned by hybridFloodFillstatic class
HybridFloodFill.PorosityReport
A data structure returned by characterize and hybridFloodFillNested classes/interfaces inherited from class jhd.FloodFill.Offsets
Offsets.PointDesc
-
Constructor Summary
Constructors Constructor Description HybridFloodFill()
Constructor for HybridFloodFill -
Method Summary
Modifier and Type Method Description HybridFloodFill.PorosityReport
characterize(java.lang.Object[] oImageArr, int width, int height, int depth, double pixWidth, double pixHeight, double pixDepth)
HybridFloodFill.FloodReport
hybridFloodFill(java.lang.Object[] oImageArr, int width, int height, int depth, double pixWidth, double pixHeight, double pixDepth, java.lang.String pixUnit, double floodMin, int neighbors)
HybridFloodFill.FloodReport
hybridFloodFill(java.lang.Object[] oImageArr, int width, int height, int depth, double pixWidth, double pixHeight, double pixDepth, java.lang.String pixUnit, double floodMin, int neighbors, boolean doEDM, boolean doGDT)
double
phiMapToHybridMap(java.lang.Object[] oImageArr, int width, int height, int depth, double pixWidth, double pixHeight, double pixDepth)
Converts a porosity image 0<phi<1 to a hybrid porosity image with unresolved porosity 0<phi<1 and with resolved porosity converted to a Euclidean distance map with 1<phi<floodMaxMethods inherited from class jhd.FloodFill.Offsets
get1dOffsets2D, get1dOffsets2D, get1dOffsets3D, get1dOffsets3D, GetConnectivityChoices, GetConnectivityValue, getIndexOffsets2D, getIndexOffsets2D, getIndexOffsets3D, getIndexOffsets3D
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
HybridFloodFill
public HybridFloodFill()Constructor for HybridFloodFill
-
-
Method Details
-
characterize
public HybridFloodFill.PorosityReport characterize(java.lang.Object[] oImageArr, int width, int height, int depth, double pixWidth, double pixHeight, double pixDepth)- Parameters:
oImageArr
- An Object[] as returned by ImageJ ImagePlus imp.getStack().getImageArray(); (must be float data where unresolved porosity 0<phi<1 and resolved porosity phi=1)width
- int The image width in pixelsheight
- int The image height in pixelsdepth
- int The image depth in pixelspixWidth
- float The width of the pixel in user units;pixHeight
- float The height of the pixel in user units;pixDepth
- float The depth of the pixel in user units;- Returns:
- A PorosityReport data structure.
-
phiMapToHybridMap
public double phiMapToHybridMap(java.lang.Object[] oImageArr, int width, int height, int depth, double pixWidth, double pixHeight, double pixDepth)Converts a porosity image 0<phi<1 to a hybrid porosity image with unresolved porosity 0<phi<1 and with resolved porosity converted to a Euclidean distance map with 1<phi<floodMax- Parameters:
oImageArr
- An Object[] as returned by ImageJ ImagePlus imp.getStack().getImageArray(); (must be float data where unresolved porosity 0<phi<1 and resolved porosity phi=1)width
- int The image width in pixelsheight
- int The image height in pixelsdepth
- int The image depth in pixelspixWidth
- float The width of the pixel in user units;pixHeight
- float The height of the pixel in user units;pixDepth
- float The depth of the pixel in user units;- Returns:
- The longest floodable pore radius, -1 if error occurs.
-
hybridFloodFill
public HybridFloodFill.FloodReport hybridFloodFill(java.lang.Object[] oImageArr, int width, int height, int depth, double pixWidth, double pixHeight, double pixDepth, java.lang.String pixUnit, double floodMin, int neighbors)- Parameters:
oImageArr
- An Object[] (must be float data ) as returned by ImageJ ImagePlus imp.getStack().getImageArray(); (must be float data where unresolved porosity 0<phi<1 and resolved porosity phi=1)˙ The method wraps the hybrid flood fill algorithm, characterize, EDM, Flood, and GDT.width
- int The image width in pixelsheight
- int The image height in pixelsdepth
- int The image depth in pixelspixWidth
- float The width of the pixel in user units;pixHeight
- float The height of the pixel in user units;pixDepth
- float The depth of the pixel in user units;pixUnit
- The units of pixel size e.g. microns, millimeters, etc.floodMin
- float The minimum voxel value to be floodedneighbors
- int The connectedness face(6), face and edge(18), face, edge and corners(26)- Returns:
- A FloodReport data structure. The input image becomes a map of tortuosity of the floodable paths
-
hybridFloodFill
public HybridFloodFill.FloodReport hybridFloodFill(java.lang.Object[] oImageArr, int width, int height, int depth, double pixWidth, double pixHeight, double pixDepth, java.lang.String pixUnit, double floodMin, int neighbors, boolean doEDM, boolean doGDT)- Parameters:
oImageArr
- An Object[] (must be float data ) as returned by ImageJ ImagePlus imp.getStack().getImageArray(); (must be float data where unresolved porosity 0<phi<1 and resolved porosity phi=1)˙ The method toggles the characterize, EDM, and GDTcomponents the hybrid flood fill algorithm to accelerate bulk processing.width
- int The image width in pixelsheight
- int The image height in pixelsdepth
- int The image depth in pixelspixWidth
- float The width of the pixel in user units;pixHeight
- float The height of the pixel in user units;pixDepth
- float The depth of the pixel in user units;pixUnit
- The units of pixel size e.g. microns, millimeters, etc.floodMin
- float The minimum voxel value to be floodedneighbors
- int The connectedness face(6), face and edge(18), face, edge and corners(26)doEDM
- (true) Converts porosity=1 the exact Euclidean distances, set to false if the EDM has been pre-computed.doGDT
- (true) Convert the flooded volume to tortuosity- Returns:
- A FloodReport data structure. The input image becomes a map of tortuosity of the floodable paths
-