porosity_profile

Computes the porosity profile along the given axis of an image.

import porespy as ps
import numpy as np
import matplotlib.pyplot as plt
[01:03:54] ERROR    PARDISO solver not installed, run `pip install pypardiso`. Otherwise,          _workspace.py:56
                    simulations will be slow. Apple M chips not supported.                                         

im

The porosity is computed by summing the voxels with a value of 1. This means that in a boolean image the void space is indicated by True. If the image is multiphase (i.e. voxel values of 1, 2, …) then only the 1’s will be counted.

im = ps.generators.overlapping_spheres(shape=[50, 50, 50], r=5, porosity=0.65)
prf = ps.metrics.porosity_profile(im)
plt.plot(prf, 'b.-')
plt.plot([0, 50], [0.65, 0.65], 'r--')
plt.ylim([0, 1]);
../../../_images/0c41c583b0fb62c1e6facae8f46d37a35cc807a4f095a437fc85ae5df163a84c.png

axis

The axis along which to compute the profile. The default is axis=0.

prf0 = ps.metrics.porosity_profile(im, axis=0)
prf1 = ps.metrics.porosity_profile(im, axis=1)
prf2 = ps.metrics.porosity_profile(im, axis=2)
plt.plot(prf0, 'b.-')
plt.plot(prf1, 'g.-')
plt.plot(prf2, 'c.-')
plt.plot([0, 50], [0.65, 0.65], 'r--')
plt.ylim([0, 1]);
../../../_images/7f84c602bfbb6eb957c2524dd57f302c862bbe98e12c5397be4ee6d54bbee342.png