Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Simulate MPMS data with a mixture of standard mineral phases in the rock magnetism bestiary

Low-temperature magnetic remanence experiments are useful tools for qualitatively assessing existing magnetic mineral phases and their characteristics in rock samples. However, it is almost always the case that a rock sample contains an assemblage of magnetic grains. This notebook presents a simple mixture function that can be used to simulate toy models of MPMS data with data from characterized mineral standards developed at the IRM. The linear mixtures assume no interaction between the magnetic phases. The resultant mass-normalized remanence curves may serve as a useful tool for developing intuition about what mineral phases may dominate the remanence behavior with various mixing proportions.

import pmagpy.rockmag as rmag
import pmagpy.contribution_builder as cb
import pmagpy.ipmag as ipmag

from scipy.interpolate import interp1d
from ipywidgets import interact, widgets, FloatSlider
from IPython.display import display
-W- cartopy is not installed
    If you want to make maps, install using conda:
    conda install cartopy

Load Rock Magnetic Bestiary data from the MagIC database

The Rock Magnetic Bestiary (RMB) is a curated collection of rock magnetic data developed at the Institute for Rock Magnetism (IRM) focused on well-characterized synthetic and natural materials. Inspired by medieval bestiaries that cataloged natural entities through allegorical descriptions, the Rock Magnetic Bestiary aims to facilitate the interpretation of the magnetic properties of natural samples by comparison with detailed reference datasets.

Rock magnetism data for a series of standard mineral species are available (with additional groups in preparation) in the MagIC database, including:

Oxyhydroxides

# set the MagIC ID for the data set here
magic_id = '20427'

# set where you want the downloaded data to go
dir_path = 'example_data/'+magic_id

result, magic_file = ipmag.download_magic_from_id(magic_id, directory=dir_path)
ipmag.unpack_magic(magic_file, dir_path, print_progress=False)
oxyhydroxides_cb = contribution = cb.Contribution(dir_path)
oxyhydroxides_specimens = oxyhydroxides_cb.tables['specimens'].df
oxyhydroxides_measurements = oxyhydroxides_cb.tables['measurements'].df
Download successful. File saved to: example_data/20427/magic_contribution_20427.txt
1  records written to file  /Users/penokean/0000_GitHub/RockmagPy-notebooks/MPMS_notebooks/example_data/20427/contribution.txt
6  records written to file  /Users/penokean/0000_GitHub/RockmagPy-notebooks/MPMS_notebooks/example_data/20427/locations.txt
6  records written to file  /Users/penokean/0000_GitHub/RockmagPy-notebooks/MPMS_notebooks/example_data/20427/sites.txt
84  records written to file  /Users/penokean/0000_GitHub/RockmagPy-notebooks/MPMS_notebooks/example_data/20427/samples.txt
85  records written to file  /Users/penokean/0000_GitHub/RockmagPy-notebooks/MPMS_notebooks/example_data/20427/specimens.txt
3800  records written to file  /Users/penokean/0000_GitHub/RockmagPy-notebooks/MPMS_notebooks/example_data/20427/measurements.txt
-I- Using online data model
-I- Getting method codes from earthref.org
-I- Importing controlled vocabularies from https://earthref.org

Carbonates

# set the MagIC ID for the data set here
magic_id = '20384'

# set where you want the downloaded data to go
dir_path = 'example_data/'+magic_id

result, magic_file = ipmag.download_magic_from_id(magic_id, directory=dir_path)
ipmag.unpack_magic(magic_file, dir_path, print_progress=False)
carbonates_cb = cb.Contribution(dir_path)
carbonates_specimens = carbonates_cb.tables['specimens'].df
carbonates_measurements = carbonates_cb.tables['measurements'].df
Download successful. File saved to: example_data/20384/magic_contribution_20384.txt
1  records written to file  /Users/penokean/0000_GitHub/RockmagPy-notebooks/MPMS_notebooks/example_data/20384/contribution.txt
1  records written to file  /Users/penokean/0000_GitHub/RockmagPy-notebooks/MPMS_notebooks/example_data/20384/locations.txt
1  records written to file  /Users/penokean/0000_GitHub/RockmagPy-notebooks/MPMS_notebooks/example_data/20384/sites.txt
3  records written to file  /Users/penokean/0000_GitHub/RockmagPy-notebooks/MPMS_notebooks/example_data/20384/samples.txt
6  records written to file  /Users/penokean/0000_GitHub/RockmagPy-notebooks/MPMS_notebooks/example_data/20384/specimens.txt
1243  records written to file  /Users/penokean/0000_GitHub/RockmagPy-notebooks/MPMS_notebooks/example_data/20384/measurements.txt

Interactively blend the remanence curves of two specimens

Upon executing the following cell, the user can select two specimens from the RMB and use the slide bar to adjust the relative fractions of the two specimens in the toy mixture model.

carbonates_measurements['method_codes'].unique()
<StringArray> ['LP-X:LP-X-T:LP-X-F', 'LP-ZFC', 'LP-FC', 'LP-CW-SIRM:LP-MC', 'LP-CW-SIRM:LP-MW', 'LP-MST'] Length: 6, dtype: str
oxyhydroxides_measurements['method_codes'].unique()
<StringArray> ['LP-X:LP-X-T:LP-X-F', 'LP-X-T', 'LP-MST', 'LP-FC', 'LP-ZFC', 'LP-CW-SIRM:LP-MC', 'LP-CW-SIRM:LP-MW'] Length: 7, dtype: str
%matplotlib widget
rmag.mpms_signal_blender_interactive(carbonates_measurements, oxyhydroxides_measurements,
                                experiments=['LP-ZFC', 'LP-FC', 'LP-CW-SIRM:LP-MC', 'LP-CW-SIRM:LP-MW'],
                                figsize=(10, 5))
Loading...
Loading...
Loading...
Loading...

view blending results in context of the end members

carbonate_example = 'siderite_Dalizi-YP-01'
fc_data, zfc_data, rtsirm_cool_data, rtsirm_warm_data = rmag.extract_mpms_data_dc(carbonates_measurements, carbonate_example)
rmag.plot_mpms_dc(fc_data, zfc_data, rtsirm_cool_data, rtsirm_warm_data)
Loading...
oxyhydroxide_example = 'ferroxyhyte_Princeton-1985-M1-1'
fc_data, zfc_data, rtsirm_cool_data, rtsirm_warm_data = rmag.extract_mpms_data_dc(oxyhydroxides_measurements, oxyhydroxide_example)
rmag.plot_mpms_dc(fc_data, zfc_data, rtsirm_cool_data, rtsirm_warm_data)
Loading...