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 classHybridFloodFill.FloodParamsExperimental data structure passed to Flood_Fillstatic classHybridFloodFill.FloodReportData structure returned by hybridFloodFillstatic classHybridFloodFill.FloodStatsA data structure returned by hybridFloodFillstatic classHybridFloodFill.PorosityReportA 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.PorosityReportcharacterize(java.lang.Object[] oImageArr, int width, int height, int depth, double pixWidth, double pixHeight, double pixDepth)HybridFloodFill.FloodReporthybridFloodFill(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.FloodReporthybridFloodFill(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)doublephiMapToHybridMap(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, getIndexOffsets3DMethods 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
-