Porosity Profile¶
The porosity profile is the porosity of each one-voxel-thick slice through the image, plotted against position along an axis. It reveals what a single porosity number hides: layering, gradients, a denser skin near a cut face, or a segmentation that drifts along the scan because of beam hardening or uneven illumination.
- Measures the porosity of every slice normal to an axis
- Method slice counting, with PoreSpy
- Reports porosity against position along each axis, and the mean porosity \(\bar\varphi\)
- How to run it Porosity Profile in the User guide
Definition¶
For slice \(i\) normal to the chosen axis,
where \(N_{p,i}\) is the number of pore voxels in slice \(i\) and \(A\) the number of voxels in a slice, plotted at the slice's midpoint, \(x_i = i + \tfrac12\) voxels. The image's porosity \(\varphi\) is the mean of \(\varphi_i\) along any axis, and that mean, \(\bar\varphi\), sums the result up. PoreStore computes the profile with PoreSpy's porosity profile.1
Reading the result¶
- Fluctuation size. In a uniform sample, slice-to-slice scatter shrinks as the slices get larger compared with the pores. Large swings on a wide sample mean large pores or real heterogeneity.
- Edges. A drop or rise in the last few slices often comes from sample preparation: a damaged cut face, or resin at the surface.
- Along the scan axis. A slow trend along the CT rotation axis can be a segmentation artefact. Compare the same axis before and after segmentation.
- Before a flow simulation. Permeability and diffusivity average over the whole sample. A strong layer normal to the flow direction can control the result. See permeability.
References¶
-
J. T. Gostick et al., "PoreSpy: A Python toolkit for quantitative analysis of porous media images," Journal of Open Source Software 4 (2019) 1296. doi:10.21105/joss.01296 ↩