Changelog

All notable changes to this project will be documented here.

Development

Note

Changes noted in this subsection are to be released in the next version. If you’re keen to check something out before its released, you can use a development install.

0.1.6

  • Minor import upgrades for compatibility with pyrolite v0.2.7

  • Minor bugfix for environment validation.

0.1.5

  • MELTS web service functionality archived.

  • Updated data examples within pyrolite_meltsutil.data.data_examples

pyrolite_meltsutil.tables

  • Bugfix for duplicated columns (‘logfO2(absolute)’).

  • Added ‘alloy-solid’ to bug phases where ‘structure’ is not included as a header name.

  • Bugfix for non-numeric columns produced via import_tables (which was breaking plot_sulfur_saturation_point)

pyrolite_meltsutil.vis

  • Updated relevant visualisation docs examples to refer to the ((ax, proxies)) syntax where templates are used

  • pandas-1.0 related bugfix for templates (#6).

pyrolite_meltsutil.util

  • pandas-1.0 related bugfix for cumulate integration functions (#6).

0.1.4

  • Web tests switched off, as the MELTS web service appears to be retired.

pyrolite_meltsutil.tables

  • Added note to integrate_solid_composition() to assert that it’s for use with singular experiments, not aggregations of experiments.

pyrolite_meltsutil.vis

  • Updated pyrolite_meltsutil.vis.templates functions to return a tuple of axes and proxies ((ax, proxies)) for easier legend creation. The proxies object is a dictionary of phaseID : {**styling}.

  • Updated pyrolite_meltsutil.vis.style functions to have expanded sets of linestyles/markers for plotting up to 8 different series (note that half of these would be duplicates)

pyrolite_meltsutil.util

  • Added log for consistent logging handling.

  • Move get_process_tree() and check_perl() over from pyrolite

0.1.3

pyrolite_meltsutil.automation

  • Updated exp_hash() for consistent naming by sorting dictionary keys before taking a hash of a json-encoded configuration

  • Update chemistry modifications to better handle np.nan in compositions, where it is now replaced by zero.

  • Directory keyword argument updated to fromdir from dir, to avoid any potential conflict with the python function.

  • Updated make_meltsfolder() directory keyword argument to indir from dir

pyrolite_meltsutil.tables

  • Table files now checked for inconsistent line lengths before import into pandas.DataFrame. Bug fix to deal with alphaMELTS omitting a column header for ‘structure’ for specific minerals (here nepheline and kalsilite)

  • Bug fix for dealing with duplicated column headers (specifically, this is typically ‘logfO2(absolute)’)

pyrolite_meltsutil.vis

  • Updated templates to make plots including missing intervals.

pyrolite_meltsutil.util

  • Integrate solids updated to integrate_solid_composition()

  • Added integrate_solid_proportions() for integrating mineral mass proportions.

  • Updated indexing for cumulate integration functions to include all experiment steps

0.1.2

  • Updated data examples under pyrolite_meltsutil.data.data_examples

  • Added DOI badge to readme.

pyrolite_meltsutil.automation

  • Added process_modifications() to deal with modifications to config (e.g. chemistry), and moved modifications such that they’re included in the experiment configuration grid before it’s serialized.

  • Bugfix for config serialization

pyrolite_meltsutil.tables

  • Added try-except loop to deal with missing experiment files (e.g. if an experiment failed to run in the middle of an set of experiments)

  • Improved error handling for bad tables

0.1.1

0.1.0

  • Added pyrolite_meltsutil.data

  • Data examples of finished experiments added to pyrolite_meltsutil.data.data_examples

  • Updated automated docs example

  • Added documentation example table styling with custom CSS

  • Updated pyrolite_meltsutil.env to use data via pyrolite_meltsutil.data.environment

  • Updated meltsfile export utility to be able to export variables encoded as lists, sets or tuples within singular pandas.DataFrame columns

  • Fixed a parsing issue for pyrolite_meltsutil.parse.from_melts_cstr() to deal with NaN/0.0/-0.0

pyrolite_meltsutil.automation

  • Split out automation into submodule and organised files ( naming, org, process, timing)

  • Added timeouts for automated experiments within MeltsProcess

  • Started using hashes of configuration for indexing experiments to identify which are identical and avoid duplication (exp_hash, exp_name)

  • Split out the indexes of the experiment grid (configs & composition, which together form a grid of experiments)

  • Made sure that experiment grids contain unique experiments - i.e. no duplication.

  • Added pyrolite_meltsutil.automation.MeltsExperiment.dump() to serialize configuration for a series of experiments.

pyrolite_meltsutil.tables

  • Updated table read functions

  • Converted tables to a submodule including load: and util

  • Added convert_thermo_names() to convert with single-letter thermodynamic parameter names (including V/volume, which would conflict with vanadium, S/entropy which would conflict with sulfur and H/enthalpy which could potentially conflict with hydrogen).

  • Added aggregate_tables() to aggregate all experiments within a directory to a single DataFrame

  • Defaults updated to lowercase column names.

  • Added import_batch_config() for importing configurations exported on run, in order to use relevant metadata.

  • Bugfixes for inconsistent table widths with specific phases, where a column name is not added for structure (nepheline, kalsilite, alloys)

  • Added read_phase_table() for reading in phase tables.

  • Added phasetable_from_phasemain() and phasetable_from_alphameltstxt() for reading phase tables from the phasemain.txt and alphaMELTS_tbl.txt files, respectively

  • Added automatic detection of fractionation (i.e. where experiment mass changes beyond a threshold)

  • Updated table percentages to be formatted as 0-100% (rather than fractional 0-1.)

pyrolite_meltsutil.vis

  • Added submodule for visualisation components

  • Added styling functions in style

  • Added SCSS function in scss

  • Added plot_xy_phase_groupby() and the convenience functions plot_phasevolumes() and plot_phasemasses()

  • Added phaseID_marker() and updated pyrolite_meltsutil.vis.style.phaseID_linestyle() for modulating styling based on ID.

pyrolite_meltsutil.util

  • Added pyrolite_meltsutil.util.general.pyrolite_meltsutil_datafolder() to identify the relevant data folder.

  • Added pyrolite_meltsutil.util.synthetic.isobaricGaleMORBexample() for generating a DataFrame based on the Gale (2013) MORB dataset for general use with pyrolite_meltsutil.

  • Added get_local_example() for loading examples installed with alphaMELTS, and get_local_link() for identifying the link files created upon alphaMELTS installation.

  • Added get_data_example() to get the folder of an example already-finished experiment folder

0.0.2

  • Split out the pyrolite-meltsutil project from pyrolite

  • Updated and refactored documentation