A python package to plot pixelmaps generated by Domino.
Project description
pix2py
A python package to plot pixelmaps generated by Theriak-Domino using matplotlib.
Installation
The latest version of pix2py can be installed using pip:
pip install pix2py
Quickstart
In your Python script or notebook you must first import PixelMap
from pix2py
.
from pix2py import PixelMap
To use pix2py, you need to have a pixelmap folder called _pixelmaps
generated by Domino in your working directory. Or you can specify the path to the pixelmap folder:
from pathlib import Path
pixelmap_dir = Path("{path_to_pixelmap_folder}", "_pixelmaps")
Since the individual pixelmaps for solid solution phases are named after the dominant endmember, you need to provide a dictionary to map a phase name to all endmember names for that phase in the thermodynamic database used to generate the pixelmaps.
This dictionary has the general form:
ENDMEMBER_DICT = {"phase_name": "endmember1, endmember2, ...", ...}
. Create a local dictionary for the project by:
LOCAL_ENDMEMBER_DICT = {}
LOCAL_ENDMEMBER_DICT["biotite"] = "phl", "annm", "obi", "east", "tbi", "fbi", "mnbi"
Additonal phases can be added to the dictionary as needed:
LOCAL_ENDMEMBER_DICT["LIQtc6"] = "q4L", "abL", "kspL", "anL", "slL", "fo2L", "fa2L", "h2oL"
Next, set up a pixelmap object by passing the path to the pixelmap folder and the endmember dictionary.
pixmap = PixelMap(pixelmap_dir, LOCAL_ENDMEMBER_DICT)
To plot a pixelmap, use the plot_pixelmap
method of the pixelmap object. The method takes a variable to plot (variable
) the phase name (mineral
) as input arguments and returns a matplotlib figure object and ax object.
pixmap.plot_pixelmap("vol", mineral="LIQtc6")
To plot isolines, use the plot_isolines
method of the pixelmap object. The method takes a variable to plot (variable
) and the phase name (mineral
) as input arguments and returns a matplotlib figure object and ax object.
pixmap.plot_isolines("vol", mineral="LIQtc6")
Capture the figure and ax objects to save or further customise the plotted pixelmap.
fig, ax = pixmap.plot_pixelmap("vol", mineral="LIQtc6")
fig.savefig("LIQtc6_vol.png", dpi=300)
You can use matplotlib's functions to further customise the plotted pixelmap.
fig, ax = pixmap.plot_pixelmap("vol", mineral="LIQtc6")
ax.set_title("LIQtc6 Volume Fraction")
Full Example
from pix2py import PixelMap
from pathlib import Path
pixelmap_dir = Path("{path_to_pixelmap_folder}", "_pixelmaps")
LOCAL_ENDMEMBER_DICT = {}
LOCAL_ENDMEMBER_DICT["biotite"] = "phl", "annm", "obi", "east", "tbi", "fbi", "mnbi"
pixmap = PixelMap(pixelmap_dir, LOCAL_ENDMEMBER_DICT)
fig, ax = pixmap.plot_pixelmap("#Mg", mineral="biotite")
fig.savefig("Biotite_Mg.png", dpi=300)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.