map_to_regions#

Maps pore values from a network onto the image from which it was extracted

import matplotlib.pyplot as plt
import numpy as np
import openpnm as op

import porespy as ps

ws = op.Workspace()
ws.settings["loglevel"] = 50
np.random.seed(10)
ps.visualization.set_mpl_style()
[19:36:09] WARNING  PARDISO solver not installed on this platform. Simulations will be slow.       _workspace.py:56

Create image and extract network#

im = ps.generators.blobs(shape=[400, 400], porosity=0.6)
ps.imshow(im)
snow_output = ps.networks.snow2(im, voxel_size=1)
pn = op.io.network_from_porespy(snow_output.network)
../../../_images/0cd14ebb01b5a4523190753ee24b4a8af3bcb3f070d368d3f1716608e2424290.png

Plot the pore network#

fig, ax = plt.subplots()
op.visualization.plot_connections(pn, c="w", linewidth=2, ax=ax)
op.visualization.plot_coordinates(pn, c="w", s=100, ax=ax)
plt.imshow(snow_output.regions.T, origin="lower")
plt.axis("off");
../../../_images/14c17f7473e26d876486851bc13ca2a300f42bd575074730266d95f9c56fa9e4.png

Now assign some values to the network:

pn["pore.values"] = np.random.rand(pn.Np)

And now assign these values to the image regions:

reg = ps.networks.map_to_regions(regions=snow_output.regions.T, values=pn["pore.values"])
plt.imshow(reg, origin="lower");
../../../_images/22f75f6c3c715d7753dac3437cbf30c76dd16d122316d3c51b0d31c671e37c6f.png