pyrolite.geochem.ind

Collections and indexes of elements and oxides, and functions for obtaining these and relevant properties (e.g. radii).

Todo

  • Incompatibility indexes for spider plot ordering.

pyrolite.geochem.ind.common_elements(cutoff=92, output='string', order=None, as_set=False)[source]

Provides a list of elements up to a particular cutoff (by default including U).

Parameters:
  • cutoff (int) – Upper cutoff on atomic number for the output list. Defaults to stopping at uranium (92).

  • output (str) – Whether to return output list as formulae (‘formula’) or strings (anthing else).

  • order (callable) – Sorting function for elements.

  • as_set (bool, False) – Whether to return a set (True) or list (False).

Returns:

List of elements.

Return type:

list | set

Notes

Formulae cannot be used as members of a set, and hence sets returned will instead consist only of strings.

Todo

  • Implement ordering for e.g. incompatibility.

pyrolite.geochem.ind.REE(output='string', dropPm=True)[source]

Provides a list of Rare Earth Elements.

Parameters:
  • output (str) – Whether to return output list as formulae (‘formula’) or strings (anthing else).

  • dropPm (bool) – Whether to exclude the (almost) non-existent element Promethium from the REE list.

Returns:

List of REE.

Return type:

list | set

pyrolite.geochem.ind.REY(output='string', dropPm=True)[source]

Provides a list of Rare Earth Elements, with the addition of Yttrium.

Parameters:

output (str) – Whether to return output list as formulae (‘formula’) or strings (anthing else).

Returns:

List of REE+Y.

Return type:

list | set

Notes

This currently modifies the hardcoded list of REE(), but could be adapated for different element ordering.

pyrolite.geochem.ind.common_oxides(elements: list = [], output='string', addition: list = ['FeOT', 'Fe2O3T', 'LOI'], exclude=['O', 'He', 'Ne', 'Ar', 'Kr', 'Xe'], as_set=False)[source]

Creates a list of oxides based on a list of elements.

Parameters:
  • elements (list, []) – List of elements to obtain oxide forms for.

  • output (str) – Whether to return output list as formulae (‘formula’) or strings (anthing else).

  • addition (list, []) – Additional components to append to the list.

  • exclude (list) – Elements to not produce oxide forms for (e.g. oxygen, noble gases).

  • as_set (bool) – Whether to return a set (True) or list (False).

Returns:

List of oxides.

Return type:

list | set

Notes

Formulae cannot be used as members of a set, and hence sets returned will instead consist only of strings.

Todo

  • Element verification

  • Conditional additional components on the presence of others (e.g. Fe - FeOT)

pyrolite.geochem.ind.simple_oxides(cation, output='string')[source]

Creates a list of oxides for a cationic element (oxide of ions with c=1+ and above).

Parameters:
  • cation (str | periodictable.core.Element) – Cation to obtain oxide forms for.

  • output (str) – Whether to return output list as formulae (‘formula’) or strings (anthing else).

Returns:

List of oxides.

Return type:

list | set

pyrolite.geochem.ind.get_cations(component: str, exclude=['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'], total_suffix='T')[source]

Returns the principal cations in an oxide component.

Parameters:
Returns:

List of cations.

Return type:

list

Todo

pyrolite.geochem.ind.get_isotopes(ratio_text)[source]

Regex for isotope ratios.

Parameters:

ratio_text (str) – Text to extract isotope ratio components from.

Returns:

Isotope ration numerator and denominator.

Return type:

list

pyrolite.geochem.ind.by_incompatibility(els, reverse=False)[source]

Order a list of elements by their relative ‘incompatibility’ given by a proxy of the relative abundances in Bulk Continental Crust over a Primitive Mantle Composition.

Parameters:
  • els (list) – List of element names to be reodered.

  • reverse (bool) – Whether to reverse the ordering.

Returns:

Reordered list of elements.

Return type:

list

Notes

Some elements are missing from this list, as as such will be omitted.

pyrolite.geochem.ind.by_number(els, reverse=False)[source]

Order a list of elements by their atomic number.

Parameters:
  • els (list) – List of element names to be reodered.

  • reverse (bool) – Whether to reverse the ordering.

Returns:

Reordered list of elements.

Return type:

list

pyrolite.geochem.ind.get_ionic_radii(element, charge=None, coordination=None, variant=[], source='shannon', pauling=True, **kwargs)[source]

Function to obtain ionic radii for a given ion and coordination [1] [2].

Parameters:
  • element (str | list) – Element to obtain a radii for. If a list is passed, the function will be applied over each of the items.

  • charge (int) – Charge of the ion to obtain a radii for. If unspecified will use the default charge from pyrolite.mineral.ions.

  • coordination (int) – Coordination of the ion to obtain a radii for.

  • variant (list) – List of strings specifying particular variants (here ‘squareplanar’ or ‘pyramidal’, ‘highspin’ or ‘lowspin’).

  • source (str) – Name of the data source for ionic radii (‘shannon’ [1] or ‘whittaker’ [2]).

  • pauling (bool) – Whether to use the radii consistent with Pauling (1960) [3] from the Shannon (1976) radii dataset [1].

Returns:

Series with viable ion charge and coordination, with associated radii in angstroms. If the ion charge and coordiation are completely specified and found in the table, a single value will be returned instead.

Return type:

pandas.Series | numpy.ndarray | float

Notes

Shannon published two sets of radii. The first (‘Crystal Radii’) were using Shannon’s value for \(r(O^{2-}_{VI})\) of 1.26 Å, while the second (‘Ionic Radii’) is consistent with the Pauling (1960) value of \(r(O^{2-}_{VI})\) of 1.40 Å [3].

References

Todo

  • Implement interpolation for coordination +/- charge.