Skip to content

Releases: morganjwilliams/pyrolite

0.3.6

29 Oct 03:56
Compare
Choose a tag to compare

0.3.6 Changelog

  • PR Merged: Sarah Shi contributed a PR to better handle values below zero during compositional renormalisation (to 1 or 100%; #104). The functions pyrolite.comp.codata.close and pyrolite.comp.codata.renormalise will now warn where values below zero exist, and replace these with numpy.nan.
  • Added a CITATION.cff file to the repository.
  • Various administrative changes (formatting, linting, meta-file management), minor bugfixes and addressing various deprecation/other warnings.

0.3.5.post0

28 Feb 02:00
Compare
Choose a tag to compare

0.3.5 Changelog

  • New Contributor: Malte Mues
  • New Contributor: Bob Myhill
  • Bugfix: Fixed a bug with the index structure for the documentation example galleries.
  • Expanded test suite for a text coverage bump.
  • Started testing against and supporting Python 3.12.

pyrolite.geochem

  • PR Merged: Malte Mues contributed a PR to allow series and dataframes with Pm data to be used with the pyrolite.pyrochem REE accessors (i.e., the column will not be dropped if it exists; #100). This PR also included an update for the pyrolite.util.lambdas functions to be more flexible in terms of access, including as individual series (allowing performant usage with pandarallel.
  • Updates to pyrolite.pyrochem accessors to be more flexible, generally allowing usage with both DataFrame and Series objects (e.g. df.pyrochem.REE, ser.pyrochem.REE).

pyrolite.plot

  • PR Merged: Bob Myhill contributed a series of pull requests to fix formatting of TAS diagram labels (#91), update the TAS field names in the JSON template (#92), improve the formatting and scaling of TAS diagrams (#93), add an option to add field labels in the visual centre of polygons (rather than the 'centroid'; #94 ), update some usage of matplotlib (#96), and allow selective plotting of individual fields when adding a classification diagram to axes (#98).

pyrolite.mineral

  • Suppressed pandas performance warnings related to sequential construction of pandas.DataFrames in pyrolite.mineral.normative.CIPW_norm.

0.3.4

21 Jul 06:57
Compare
Choose a tag to compare

0.3.4 Changelog

  • Bugfix: Tom Buckle contributed a PR with some minor bugfixes for the CIPW Norm.
  • Various maintenance updates, including migrating the package to use pyproject.toml, and cleaning up both the repository and the built package.

0.3.3

05 Jul 03:55
Compare
Choose a tag to compare

0.3.3 Changelog

Note
A post-release fix has been added to PyPI (0.3.3.post0), which deals with an issue with the build binary wheel (.whl, solely distributed via PyPI). Otherwise v0.3.3 and v0.3.3.post0 are exactly the same.

  • New Contributor: Sarah Shi
  • New Contributor: Ondrej Lexa
  • Bugfix: Updated docs builds to be compatible with recent versions of sphinx-gallery.
  • Bugfix: Updated some pandas assignment, aggregation and similar operations to be compatible with more recent versions of Pandas.
  • Added explicit Python 3.10 and 3.11 support.
  • Removed Python 3.7 support (now end of life).

pyrolite.mineral

  • PR Merged: Added an option to get expanded outputs for the CIPW Norm, from Tom Buckle.
  • Bugfix: Fixes and updated tests for CIPW Norm outputs.

pyrolite.plot

  • PR Merged: Sarah Shi contributed a PR to add variations on the TAS diagram from Le Maitre. These can be accessed by providing a which_model keyword argument to the pyrolite.util.classification.TAS constructor (or plot template).
  • PR Merged: Ondrej Lexa contributed a PR to add sandstone bulk geochemistry discrimination diagrams (pyrolite.util.classification.Pettijohn, pyrolite.util.classification.Herron).
  • Bugfix: Fixed issue with handling vmin and vmax for colormapping in pyrolite.plot.color.
  • Suppressed warnings for 'division by zero'/'invalid value encountered in divide' in ternary diagram scatter plots.
  • Added explicit support for colormapping categorical data in pyrolite.plot.color, such that ordering is preserved/consistent in e.g. legends.

pyrolite.util

  • Feature: Added new version of ICS International Chronostratigraphic Chart (2022-10; pyrolite.util.time.Timescale).
  • Bugfix: Corrected TAS diagram references, and fixed an issue where only the ID names were able to we added to diagrams.
  • Updated axes-sharing utility function pyrolite.util.plot.axes.share_axes to reflect more recent versions of matplotlib.
  • Fixed issue in path interpolation for contours (pyrolite.util.plot.interpolation.get_contour_paths) for recent matplotlib versions.
  • Updated figure export utility function to use pathlib syntax for suffixes, which should avoid potential for double suffixes (e.g. figure_name.png.png).

0.3.2

06 Jul 08:25
Compare
Choose a tag to compare

0.3.2 Changelog

  • New Contributor: Angela Rodrigues
  • Bugfix: Edited docstrings and added ignore-warning for numpydoc warnings.
  • Bugfix: Updated installation instructions and Binder configuration to use secure protocols when installing via git (i.e. https://)
  • Bugfix: Update CI builds so that tests can be run on MacOS.

pyrolite.mineral

  • Feature: Added a TAS-based iron correction following Middlemost (1989).
  • Bugfix: Fixed some errors in mineral formulae and handling leading to inaccurate outputs from CIPW Norm.
  • Split out volcanic from intrusive samples in the CIPW Norm volcanic rock comparison.
  • Added SINCLAS abbreviations to the mineral dictionary associated with the CIPW Norm, so alternate mineral naming systems can be compared.

pyrolite.util

  • PR Merged: Louise Schoneveld submitted a pull request to add bivariate and ternary classifier models for spinel compositions (pyrolite.util.classification.SpinelFeBivariate, pyrolite.util.classification.SpinelTrivalentTernary).
  • PR Merged: Angela Rodrigues submitted a pull request to add the Jensen ternary cation classifier model for subalkalic volcanic rocks (pyrolite.util.classification.JensenPlot).
  • Updated pyrolite.util.skl.vis.plot_confusion_matrix to be able to plot on existing axes, use an explicit class order and use rotation for e.g. long x-axis class label names.
  • Updated references to scipy.stats.gaussian_kde after namespace deprecation.

0.3.1

01 Dec 09:54
Compare
Choose a tag to compare

0.3.1 Changelog

  • New Contributor: Martin Bentley
  • New Contributor: Chetan Nathwani
  • New Contributor: Tom Buckle
  • New Contributor: Nicolas Piette-Lauziere
  • Removed a redundant pathlib dependency (which is standard library as of Python 3.4). This will fix an issue blocking setting up a conda-forge recipe (#51).
  • Updated instances of redundant numpy types throughout to silence depreciation warnings (using base types float, int except where specific numpy types are required).
  • Added a minimum sympy version requirement (v1.7) to avoid potential import errors.
  • Updated minimum versions for matplotlib and mpltern to address potential version conflicts.
  • A user installation is now recommended by default. This solves some potential issues on *-nix and MacOS systems.
  • Fixed broken links to documentation in the README (thanks to Alessandro Gentilini).
  • Fixed a bad documentation link in the PyPI package information.
  • Updated supported Python versions (Python 3.7-3.9).
  • Bugfix: Updated use of tinydb databases to default to read-only access except where write access is explicitly needed. This should solve issues with permissions during installation and use of pyrolite on some systems (#61). Thanks to Antoine Ouellet for bringing this to attention, and both Sam Bradley and Alex Hunt for following up with the idea for the current solution.

pyrolite.geochem

  • Feature: Nicolas Piette-Lauziere contributed two new functions for pyrolite.geochem.alteration: The chlorite-carbonate-pyrite index of Large et al. (2001; CCPI()) and the Alteration index of Ishikawa (1976; IshikawaAltIndex()).
  • Bugfix: Fixed a bug where incomplete results where being returned for calls to lambda_lnREE() using the O’Neill algorithm. In this instance only the rows with the least missing data (typically those with no missing data) would return lambda values, other rows would contain null values. Thanks to Mark Pearce for identifying this one! In the meantime, using df.pyrochem.lambda_lnREE(algorithm='opt') will allow you to avoid the issue.
  • Bugfix: Modified a few of the pyrolite.geochem.pyrochem methods to a avoid a bug due to assignment of the dataframe (to_molecular(), to_weight(), recalculate_Fe()). This bug seems to be contained to the dataframe accessor, the individual functions from pyrolite.geochem.transform appear to work as expected outside of this context. Thanks to Chetan Nathwani for highlighting this one!
  • Renamed (private) package variables __common_oxides__ and __common_elements__ to _common_oxides and _common_elements.

pyrolite.mineral

  • Feature: CIPW function added to pyrolite.mineral.normative, largely from contributions by both Chetan Nathwani and Tom Buckle (#53). Note that the implementation still has a bug or two to be ironed out; it will currently raise a warning when used to make sure you’re aware of this. An example has been added demonstrating the intended functionality and demonstrating how coherent this is with existing implementations of CIPW (e.g. SINCLAS).

pyrolite.comp

  • Updated pyrolite.comp.codata.close() to better deal with zeros (avoiding unnecessary warnings).
  • Added spherical coordinate transformation to pyrolite.comp.pyrocomp and pyrolite.comp.codata (see pyrolite.comp.pyrocomp.sphere()).

pyrolite.plot

  • Feature: Added ternary classification plot templates USDASoilTexture, FeldsparTernary and QAP (#49; idea and implementation of the latter thanks to Martin Bentley!). The idea for implementing the ternary diagram came from a discussion with Jordan Lubbers and Penny Wieser (of the Thermobar team, who are working in similar spaces); they’ve now implemented a version using python-ternary (rather than mpltern, which pyrolite is currently using).
  • Updated examples and documentation for density and contour plots.
  • Added autoscaling for standard spider() and related plots to address #55.
  • process_color() has been updated to better deal with data explicitly declared to be of a 'category' data type (as a pandas.Series), and also to better handle variation in mapping notations. Ordering of categorical variables will now be preserved during color-mapping.
  • Added the option to have a ‘bad’ color to be used in categorical color-mapping where a category cannot be found.
  • Inconsistent color specifications (e.g. a list or array of multiple types) will now result in an error when passed to process_color().
  • parallel() has been updated to align with other plotting functions (taking an optional components keyword argument).

pyrolite.util

  • Feature: Added ternary classification models for USDASoilTexture, FeldsparTernary and QAP ( #49; idea and implementation of the latter thanks to Martin Bentley; see note on plot templates above).
  • Added some functionality to pyrolite.util.classification to allow classifier fields to be precisely specified by ratios (useful in ternary systems), for multiple 'modes' of diagrams to be contained a single configuration file, and fixed some issues with labelling (arguments add_labels and which_labels can now be used to selectively add either field IDs/abbreviations or field names to classification diagrams).
  • Limits are no longer explicitly required for bivariate templates (xlim, ylim) in pyrolite.util.classification.
  • Update default parameterisation to "full" for lambdas, using all REE to generate orthogonal polynomial functions.
  • Expanded pyrolite.util.text.int_to_alpha() to handle integers which are greater than 25 by adding multiple alphabetical characters (e.g. 26 > aa), and to use the built-in string.ascii_lowercase.
  • save_figure() will now create the directory it’s given if it doesn’t exist.
  • Citation information for lambdas updated to include recent publications.
  • Updated plot_pca_vectors() to accept line colors and linestyles arguments.
  • Updated init_spherical_octant() to accept a fontsize argument.
  • Added example for coloring ternary diagrams and ternary scatter points based on a ternary color system.
  • Added helper for generating PCA component labels from a scikit-learn PCA object (get_PCA_component_labels())
  • Updated confusion matrix visualisation helper plot_confusion_matrix() to remove grid and provide more useful default colormap normalization options.
  • Moved the manifold visualisation example to utility examples from plotting examples.
  • Added a fmt_string argument to LogTransform for use in automated naming of transformed columns; this may be expanded to other transformers soon.
  • Fixed some string issues for pyrolite.util.text.

0.3.0

15 Mar 07:12
Compare
Choose a tag to compare

0.3.0 Changelog

  • New Contributor: Lucy Mathieson
  • Continuous Integration has been migrated from Travis to GitHub Actions.
  • Added an environment.yml file for development environment consistency.
  • Removed some tests dependent on xlrd due to external issues with reading .xls and .xlsx files with some OS-Python version combinations.
  • Fixed some broken documentation links.
  • Added psutil to requirements.

pyrolite.plot

  • Bugfix: Fixed a bug where there scatter and line arguments would conflict for spider (#46). To address this, spider and related functions will now accept the keyword arguments line_kw and scatter_kw to explicitly configure the scatter and line aspects of the spider plot - enabling finer customization. An extra example has been added to the docs to illustrate the use of these parameters. Thanks go to Lucy Mathieson for raising this one!
  • Added the set_ticks keyword argument to spider and associated functions, allowing ticks to be optionally set (set_ticks=False if you don't want to set the x-ticks).
  • Updated pyrolite.plot.color.process_color to better handle colour mapping and added examples illustrating this. You can also now use RGBA colours when using the color_mappings keyword argument.
  • Updated automated pyrolite matplotlib style export to be more reliable.* Changed the default shading for density to suppress error about upcoming matplotlib depreciation.
  • Ordering for contours, contour names and contour styles is now preserved for density and related functions.
  • Updated pyrolite.plot.templates.pearce to use ratios from Sun & McDonough (1989), as in the Pearce (2008) paper.

pyrolite.geochem

  • Bugfix: Fixed a bug where Eu was unnecessarily excluded from the lambda_lnREE fit in all cases.
  • Bugfix: Fixed a bug where ratio-based normalisation was not implemented for get_ratio and related functions (#34).
  • Added a local variable to pyrolite.geochem.ind to allow referencing of indexing functions (e.g. by_incompatibility) by name, allowing easier integration with :func:~pyrolite.plot.pyroplot.spider.
  • Added by_number for indexing a set of elements by atomic number.

pyrolite.comp

  • Updated the docstring for pyrolite.comp.impute.EMCOMP.
  • Minor updates for pyrolite.comp.codata labelling, and reflected changes in pyrolite.util.skl.transform. Issues were identified where the column name 'S' appears, and a workaround has been put in place for now.

pyrolite.util

  • Expanded pyrolite.util.lambdas to allow fitting of tetrad functions, anomalies and estimation of parameter uncertainties for all three algorithms.
  • Added pyrolite.util.resampling for weighted spatiotemporal bootstrap resampling and estimation, together with added a number of updates to pyrolite.util.spatial to provide required spatial-similarity functionality.
  • Updated the geological timescale in pyrolite.util.time to use the 2020/03 version of the International Chronostratigraphic Chart (#45).
  • Added alphalabel_subplots for automatic alphabetic labelling of subplots (e.g. for a manuscript figure).
  • Fixed an low-precision integer rollover issue in a combinatorial calculation for pyrolite.util.missing by increasing precision to 64-bit integers.
  • Added example_patterns_from_parameters to work with pyrolite.util.lambdas and generate synthetic REE patterns based on
    lambda and/or tetrad-parameterised curves.
  • Moved get_centroid from pyrolite.util.classification to pyrolite.util.plot.helpers
  • Made a small change to density to allow passing contour labels as a list.
  • mappable_from_values will not accept a norm keyword argument, allowing use of colormap normalisers like matplotlib.colors.Normalize. This function was also updated to better handle Series objects.
  • Fixed a small bug for TAS instantiation which didn't allow passing the variables to be used from a pandas.DataFrame. If you have different variable names, you can now pass them as a list with the axes keyword argument (e.g. TAS(axes=['sio2', 'alkali'])).
  • Homogenised logging throughout the package - now all managed through pyrolite.util.log. The debugging and logging streaming function
    stream_log can now also be accessed here (pyrolite.util.log.stream_log).

0.2.8

07 Aug 09:23
Compare
Choose a tag to compare

0.2.8 Changelog

  • Updated citation information.
  • Added specific testing for OSX for Travis, and updated the install method to better pick up issues with pip installations.
  • Feature: Added a gallery of pages for each of the datasets included with pyrolite. This will soon be expanded, especially for the reference compositions (to address #38).

pyrolite.geochem

  • PR Merged: Kaarel Mänd submitted a pull request to add a number of shale and crustal compositions to the reference database.
  • Bugfix: Fixed a bug where lambdas would only be calculated for rows without missing data. Where missing data was present, this would result in an assertion error and hence no returned values.
  • Bugfix: Fixed a bug where missing data wasn't handled correctly for calculating lambdas. The functions now correctly ignore the potential contribution of elements which are missing when parameterising REE patterns. Thanks to Steve Barnes for the tip off which led to identifying this issue!
  • Feature: Added pyrolite.geochem.ind.REY, pyrolite.geochem.pyrochem.list_REY, and pyrolite.geochem.pyrochem.REY to address
    (#35). This issue was also opened by Kaarel Mänd!
  • As a lead-in to a potential change in default parameterisation, you can now provide additional specifications for the calculation of lambdas to
    pyrolite.geochem.pyrochem.lambda_lnREE and pyrolite.util.lambdas.calc_lambdas to determine the basis over which the individual orthogonal polynomials are defined (i.e. which REE are included to define the orthonormality of these functions). For the keyword argument params, (as before) you can pass a list of tuples defining the constants representing the polynomials, but you can now alternatively pass the string "ONeill2016" to explicitly specify the original parameterisation, or :code:"full" to use all REE (including Eu) to define the orthonormality of the component functions (i.e. using params="full"). To determine which elements are used to perform the fit, you can either filter the columns passed to these functions or specifically exclude columns using the exclude keyword argument (e.g. the default remains exclude=["Eu"] which excludes Eu from the fitting process). Note that the default for fitting will remain, but going forward the default for the definition of the polynomial functions will change to use all the REE by default (i.e. change to params="full").
  • Significant performance upgrades for pyrolite.geochem.pyrochem.lambda_lnREE and associated functions (up to 3000x for larger datasets).
  • Added a minimum number of elements, configurable for pyrolite.geochem.pyrochem.lambda_lnREE. This is currently set to seven elements (about half of the REE), and probably lower than it should be ideally. If for some reason you want to test what lambdas (maybe just one or two) look like with less elements, you can use the min_elements keyword argument.
  • Added pyrolite.geochem.pyrochem.list_isotope_ratios and corresponding selector pyrolite.geochem.pyrochem.isotope_ratios to subset isotope ratios.
  • Added pyrolite.geochem.pyrochem.parse_chem to translate geochemical columns to a standardised (and pyrolite-recognised) column name format.

pyrolite.plot

  • Bugfix: Fixed a bug where arguments processing by :mod:pyrolite.plot.color would consume the 'alpha' parameter if no colour was specified (and as such it would have no effect on the default colors used by matplotlib.pyplot)
  • Bugfix: pyrolite.plot.color now better handles colour and value arrays.
  • Bugfix: Keyword arguments passed to pyrolite.plot.density will now correctly be forwarded to respective functions for histogram and hexbin methods.
  • Customised :mod:matplotlib styling has been added for :mod:pyrolite plotting functions, including legends. This is currently relatively minimal, but could be expanded slightly in the future.
  • The bw_method argument for scipy.stats.kde.gaussian_kde can now be parsed by pyrolite density-plot functions (e.g. pyrolite.plot.pyroplot.density, pyrolite.plot.pyroplot.heatscatter). This means you can modify the default bandwidth of the gaussian kernel density plots. Future updates may allow non-Gaussian kernels to also be used for these purposes - keep an eye out!
  • You can now specify the y-extent for conditional spider plots to restrict the range over which the plot is generated (and focus the plot to where your data actually is). For this, feed in a (min, max) tuple for the yextent keyword argument.
  • The ybins argument for pyrolite.plot.pyroplot.spider and related functions has been updated to bins to be in line with other functions.
  • Conditional density pyrolite.plot.pyroplot.REE plots now work as expected, after some fixes for generating reverse-ordered indexes and bins
  • Added a filter for ternary density plots to ignore true zeroes.
  • Some updates for pyrolite.plot.color for alpha handling and colour arrays .

pyrolite.comp

  • Updated transform naming to be consistent between functions and class methods. From this version use capitalised versions for the transform name acronyms (e.g. ILR instead of ilr).
  • Added for transform metadata storage within DataFrames for pyrolite.comp.pyrocomp, and functions to access transforms by name.
  • Added labelling functions for use with pyrolite.comp.pyrocomp and pyrolite.comp.codata to illustrate the precise relationships depicted by the logratio metrics (specified using the label_mode parameter supplied to each of the resepective pyrolite.comp.pyrocomp` logratio transforms).

pyrolite.util

  • Revamped pyrolite.util.classification to remove cross-compatibility bugs with OSX/other systems. This is now much simpler and uses JSON for serialization.
  • Small fix for pyrolite.util.plot.style.mappable_from_values to deal with NaN values.
  • Added pyrolite.util.log for more streamlined logging (from pyrolite-meltsutil)
  • Added pyrolite.util.spatial.levenshtein_distance for comparing sequence differences/distances between 1D iterables (e.g. strings, lists).

0.2.7

05 Jun 03:31
Compare
Choose a tag to compare

Note that this is the version of pyrolite offically peer-reviewed by pyOpenSci.

0.2.7 Changelog

  • Bugfix to include radii data in MANIFEST.in

0.2.6 Changelog

  • New Contributors: Kaarel Mänd and Laura Miller
  • PR Merged: Louise Schonevel submitted a pull request to fill out the newly-added Formatting and Cleaning Up Plots tutorial. This tutorial aims to provide some basic guidance for common figure and axis formatting tasks as relevant to pyrolite.
  • Added codacy for code quality checking, and implemented numerous clean-ups and a few new tests across the package.
  • Performance upgrades, largely for the documentation page. The docs page should build and load faster, and have less memory hang-ups - due to smaller default image sizes/DPI.
  • Removed dependency on fancyimpute, instead using functions from scikit-learn

pyrolite.geochem

  • Bugfix: pyrolite lambdas differ slightly from O'Neill's 2016 paper[1] (#39). Differences between the lambda coefficients of the original and pyrolite implementations of the lambdas calculation were identified (thanks to Laura Miller for this one). With further investigation, it's likely the cost function passed to scipy.optimize.least_squares contained an error. This has been remedied, and the relevant pyrolite functions now by default should give values comparable to O'Neill (2016). As part of this, the reference composition ChondriteREE_ON was added to the reference database with the REE abundances presented in that paper..
  • Bugfix: Upgrades for pyrolite.geochem.transform.convert_chemistry to improve performance (#29). This bug appears to have resulted from caching the function calls to pyrolite.geochem.ind.simple_oxides, which is addressed with 18fede0.
  • Feature: Added the Whittaker and Muntus (1970)[2] ionic radii for use in silicate geochemistry (#41), which can optionally be used with pyrolite.geochem.ind.get_ionic_radii using the source keyword argument (source='Whittaker'). Thanks to Charles Le Losq for the suggestion!
  • Bugfix: Removed an erroneous zero from the GLOSS reference composition (GLOSS_P2014 value for Pr).
  • Updated pyrolite.geochem.ind.REE to default to dropPm=True
  • Moved pyrolite.mineral.ions to pyrolite.geochem.ions

[1]: O’Neill, H.S.C., 2016. The Smoothness and Shapes of Chondrite-normalized Rare Earth Element Patterns in Basalts. J Petrology 57, 1463–1508. doi: 10.1093/petrology/egw047

[2]: Whittaker, E.J.W., Muntus, R., 1970. Ionic radii for use in geochemistry. Geochimica et Cosmochimica Acta 34, 945–956. doi: 10.1016/0016-7037(70)90077-3

pyrolite.mineral

  • Bugfix: Added the mineral database to MANIFEST.in to allow this to be installed with pyrolite (fixing a bug where this isn't present, identified by Kaarel Mänd).

pyrolite.plot

  • Bugfix: Updated pyrolite.plot to use pandas.DataFrame.reindex over pandas.DataFrame.loc where indexes could include missing values to deal with #31.
  • Updated pyrolite.plot.spider.spider to accept logy keyword argument, defaulting to True

pyrolite.util

  • Broke down pyrolite.util.plot into submodules, and updated relevant imports. This will result in minimal changes to API usage where functions are imported explicitly.
  • Split out pyrolite.util.lambdas from pyrolite.util.math
  • Added a minimum figure dimension to pyrolite.util.plot.axes.init_axes to avoid having null-dimensions during automatic figure generation from empty datasets.
  • Added pyrolite.util.synthetic.example_spider_data to generate an example dataset for demonstrating spider diagrams and associated functions. This allowed detailed synthetic data generation for pyrolite.plot.pyroplot.spider and pyrolite.plot.pyroplot.REE plotting examples to be cut down significantly.
  • Removed unused submodule pyrolite.util.wfs

0.2.5

19 Feb 03:09
Compare
Choose a tag to compare

0.2.5 Changelog

  • PR Merged: @lavender22 updated the spider diagram example to add a link to the normalisation example (which lists different reservoirs you can normalise to).
  • Added an 'Importing Data' section to the docs Getting Started page.
  • Disabled automatic extension loading (e.g. for pyrolite_meltsutil) to avoid bugs during version mismatches.

pyrolite.comp

  • Updated the pyrolite.comp.pyrocomp dataframe accessor API to include
    reference to compositional data log transform functions within pyrolite.comp.codata

pyrolite.plot

  • Added support for spider plot index ordering added with the keyword index_order (#30)
  • Added support for color indexing in pyrolite.plot.color using
    pandas.Series, and also for list-like arrays of categories
  • Added a workaround for referring to axes positions where the projection is changed
    to a ternary projection (displacing the original axis), but the reference to the
    original axes object (now booted from fig.axes/fig.orderedaxes) is
    subsequently used.
  • Updated pyrolite.plot.color.process_color processing of auxillary
    color keyword arguments (fixing a bug for color arguments in pyrolite.plot.stem)
  • Added support for a color_mappings keyword argument for mapping
    categorical variables to specific colors.
  • Updated the effect of relim keyword argument of
    pyrolite.plot.density.density to remove the scaling (it will no longer
    log-scale the axes, just the grid/histogram bins).
  • Updated pyrolite.plot.ternary.grid.Grid to accept an x-y tuple to specify
    numbers of bins in each direction within a grid (e.g. bins=(20, 40))
  • Updated the grids used in some of the pyrolite.plot.density.density
    methods to be edges, lining up the arrays such that shading parameters
    will work as expected (e.g. shading='gouraud')

pyrolite.geochem

  • Added sorting function pyrolite.geochem.ind.by_imcompatibility
    for incompatible element sorting (based on BCC/PM relative abundances).

pyrolite.mineral

  • Minor bugfix for pyrolite.mineral.mindb.update_database

pyrolite.util

  • Moved pyrolite.util.general.check_perl out of pyrolite into pyrolite_meltsutil