Changelog

Contents

Changelog#

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

v2.0.1#

Released on 2026-02-17 Contributors:

  • Matt Tankersley

This release is a major refactor of code with the goal of simplifying the user experience. Before, most of the code was written as functions, which required passing many parameters between functions, and outputs of one function to be used as input to the next function. This made using the library complicated, leading to easy mistakes and bugs. Most of the code has now been update to use object oriented programming (OOP), where it makes sense. Unfortunately, this major refactor breaks part of the codebase! For a small single-developer project like this, it is currently not worth the effort of proper slow deprecation of changed functions! Make sure to go through the documentation and examples and update your code accordingly before your update to this or future versions of the software.

✏️ Changed#

  • Gravity data inputs should now be in xarray Datasets, instead of pandas DataFrames.

  • An xarray dataset accessor inv has been added, which enables properties and methods to be performed on xarray Dataset objects.

  • An new class, Inversion, now holds the gravity data, the physical model, and all the user-defined inversion settings, such as stopping criteria, domain extents, etc.

  • Inversions, cross-validation, and parameter optimization are all run through methods of the Inversion class, and results are saved as attributes to the class.

  • all user-facing functions can now be accessed through the main invert4geom namespace instead of the models.

  • Current topography variable of prism model dataset renamed from topo to topography.

  • Starting topography variable of prism model dataset renamed from starting_topo to starting_topography.

  • forward gravity, misfit, residual, and regional gravity values prior to inversion are all saved as variables with prefix β€œstarting_”.

  • build the API docs with autodoc instead of autoapi

  • updated the Uieda et al. 2017 CRUST1.0 example to use tesseroids instead of prisms

  • changed filt_type to filter_type

πŸš€ Added#

  • gravity data now includes an inner domain, which is created by zooming in on the data extent by a default of 10% of domain width. This inner-region of the gravity data is used for plotting and calculating statistics, such as L2-norms, and cross validation score, since edge effects can skew these values when a buffer is not included.

  • model datasets also can include an inner domain used just for plotting and calculating statistics to reduce edge effects.

  • add preliminary for simple density inversions

  • add preliminary support for using tesseroids instead of vertical prisms (NOT COMPLETE)

  • Regularization damping, model reference level (zref), and density contrast values found through the optimization routines are now saved to the Inversion class instance, so future inversions automatically use the optimally-found values.

  • optional mask variable can be added to the prism model dataset so only prisms with mask value of 1 are inverted, others are not changed during inversion.

  • allow plotting with PolarToolkit by setting a EPSG code as a user environment variable.

  • allow block-reduction of constraint points during constraint point minimization

  • new example notebook for a sub-ice shelf bathymetry inversion

  • allow other filter types for regional estimation

  • allow swapping regional and residual misfit fields

  • added boule as a dependency

πŸ› Fixed#

  • fix some issues with ReadTheDocs

v2.0.0#

Yanked from PyPI and never added to conda-forge due to error in dependency version for polartoolkit.

v1.1.0#

Released on 2025-08-07 Contributors:

  • Matt Tankersley

πŸš€ Added#

  • add nomkl dependency (except for Windows) to fix issue with PyGMT seg faulting

  • re-added uqpy as optional dependency

  • better instructions for contributors to get acknowledged as authors

✏️ Changed#

  • replace Python-Semantic-Release with manual releases

  • drop support for Python 3.9, 3.10 and add support for 3.11 following SPEC0

  • add minimum dependencies for some packages following SPEC0

  • use manual Zenodo releases with template for metadata

  • use new Optuna Journal Storage API and set min supported version to 4.0

  • replace some Make commands with nox

  • lots of changes to align with new version of my python packaging template

  • simplified ReadTheDocs environment using uv

πŸ› Fixed#

  • undo suggestions from Ruff which caused errors

  • fix binder env (d904f4e)

  • remove accidentally included inset maps in figures

v1.0.1 (2025-06-04)#

πŸ› Bug Fixes#

  • fixing release action (e30d1b5)

  • forgot to update one version of PSR (0f84d89)

  • up new -noop mode in GHA for PSR (bc28072)

  • use new python semantic release GHA (41665f9)

  • use new semantic release GHA (97b6bbb)

πŸ“¦οΈ Build#

  • use pytorch (β€˜torch’) from conda install of pip (1e6e20c)

🧰 Chores / Maintenance#

  • update python semantic release to v10.0.2 (f0e112c)

  • update makefile install commands (1ca9a58)

✏️ Formatting#

🎨 Refactor#

  • remove uncertainty tests since uqpy is now optional (4f07e04)

v1.0.0 (2025-06-02)#

🧰 Chores / Maintenance#

v0.13.0 (2025-04-08)#

πŸ“¦οΈ Build#

  • make UQpy optional due to their pinned deps (2df3369)

🧰 Chores / Maintenance#

  • update python-semantic-release to v9.21 (4ed38ba)

  • semantic release commit_parser from angular to conventional

BREAKING CHANGE: this is to force a new minor version as accidentally wasn’t forced in last PR (b3a334d)

  • add uncert deps to testing env (334ac77)

  • update testing of pip env (327fe4a)

✏️ Formatting#

v0.12.0 (2025-04-01)#

πŸ› Bug Fixes#

  • updates to grd_compare from polartoolkit (dac504d)

  • typo in logging (a103a41)

  • ensure startup trails are not more than total trials (1106942)

  • remove accidental enqueued trial (9ebf5fc)

  • must pass starting topo or kwargs if running zref/density cv (8c058e0)

  • remove scalebar issue from plotting gravity decay (509fcf9)

  • return int for buffer cells (567493d)

  • use padding for buffer zone in load_synthetic_model (72d1694)

  • update deprecated origin_shift parameters for polartoolkit plotting (a2633fb)

  • remove all unnecessary renaming coords for plotting (b1b082f)

  • raise error if using eq_source grid method with blockmean in function regional_constraints (20ed350)

  • move all plotting calls into try-except statements (22b6ee8)

  • assert that reference is not a nan in grids_to_prisms (5688497)

  • fall back to x and y if easting and northing not present in dataframe in sample_grids (8881f36)

  • return None if no score for trial instead of raising error (84d2f22)

  • skip columns of object type in resample_with_test_points (604d024)

πŸ“¦οΈ Build#

  • remove upper bound on scipy and put lower bound on UQpy (792a6e3)

  • update dependency constraints (4cfa740)

🧰 Chores / Maintenance#

  • environment.yml updates (f430302)

  • update make remove command (033e1e3)

  • remove test env caching (3662b43)

  • add test for core inversion functions (e1c7f1e)

  • add test for create_lhc and deepdiff as dependency (08fd512)

  • add environment.yml for dev installs (f87573d)

  • update make commands and instructions for using them (c00b3dd)

  • update makefile install commands (e973bfb)

  • update binder version to 0.11 (a0ba8e6)

✏️ Formatting#

πŸ“– Documentation#

  • update nbsphinx-thumbnail tags (f4891fc)

  • rerun all docs (a0b0cd0)

  • rerun how_to guides (eff7a31)

  • add thumbnail cell tag (9ce0d29)

  • update and re-run all docs (878d2bc)

  • rerun all docs except examples/ (59f40e4)

  • merge tmp/ folders to a single one and update tmp paths in all notebooks (296aec0)

πŸš€ Features#

  • include option to sample gravity filter width in uncertainty (beda3da)

  • additional plotting options for cv scores (7645c19)

  • add padding, upward continuation and total gradient options to β€˜filter_grid’ (c44ccb3)

  • specify and allow setting of random seed for all Optuna samplers (1d0a909)

  • specify min or max for scores for plot_cv_scores (9e8b567)

  • add plots for deterministic error comparison (c106dff)

  • replace botorch sampler with GPsampler and manually enqueueing trials with low-discrepancy QMCsampler (180af7d)

  • use duplicate pruner in optuna studies (dbb38ca)

  • if sampling gravity with constant value do it on longer wavelength (adcdee2)

  • add progressbar and plot kwargs for run_inversoin_workflow (f544081)

  • allow choosing startup trails for damping cv and density/zref cv in run_inversion_workflow (3b0aa1e)

  • specify seed in contaminate_with_long_wavelength_noise (103fc15)

  • add region and clip_box options to show_prism_layers (77f4b76)

  • add functions for determining gravity decay and optimal buffer zone widths to limit edge effects (c7d5671)

  • allow setting pad width in filter_grid (b4c30b4)

  • allow multiplying (masking) of residual value via a mask_column in grav_df in the regional estimation functions (a6cd747)

  • allow upper and lower confining layers in function create_topography (24ed8da)

  • perform spline interpolation only for inside data, and merge to existing gridded outside data in function create_topography (bd7c586)

🎨 Refactor#

  • explicitly state scoring metric in eq_sources_score (32a7e8c)

  • make uncertainty functions return dict of sampled values (a933bf4)

  • explicitly state eqs scoring metric (963eadd)

  • set figure dimensions for plotting edge effects (a85732e)

  • remove long-wavelength contamination during gravity uncertainty (674796a)

  • use integers for density so avoid oversearching (442588a)

  • disable annoying optuna callbacks (5e9eff6)

  • ensure sampling of gravity and constraints doesn’t alter original data (735fec8)

  • make copies for mutable objects and minor fixes (baa9138)

  • raise error instead of log warning for regional_constant (8042a4a)

v0.11.1 (2024-11-20)#

πŸ› Bug Fixes#

  • make xesmf optional dependency (664072a)

🧰 Chores / Maintenance#

v0.11.0 (2024-11-19)#

πŸ› Bug Fixes#

  • use duplicate filter on optimize for zref/density (cc825e0)

  • exception for trail worsening warning (313f847)

  • raise warnings for invalid number of splits in test train data splitting (bcef273)

  • raise warnings and use fallback for nan scores in eq source fitting (ad14dc0)

  • re-create starting topography for each fold of training constraint points in density/zref optimization. (91ffb71)

  • re-write long-wavelength contamination function, adding dependency xesmf. (335e11e)

🧰 Chores / Maintenance#

  • remove ruff commands and use pre-commit (7495204)

  • bump binder env to v.0.10 (0604561)

  • update release checklist and make commands (8943bd0)

πŸ“– Documentation#

πŸš€ Features#

  • return fig for plot_cv_scores (70e4a0d)

  • add fname kwarg to some plotting functions (155f645)

  • add plotting functions for latin hypercube sampling (2607284)

  • add region parameter for regional_misfit_uncertainty (ef5239e)

  • add uncertainty estimate for equivalent source interpolation (0cb4a21)

  • allow normalizing of sampled values in latin hypercube (b01c210)

  • include discrete uniform distribution for LHS sampling (7bd98e9)

  • allow choice of criterion in sampling of latin hyper cube (f7e94a1)

  • allow weight_by=None in merged_stats (d96e5c2)

  • add normalizing functions (bebaa67)

🎨 Refactor#

  • make β€œdefault” the default depth for eq sources (6b68c2b)

  • print more decimals for inversion info (05cbda9)

v0.10.0 (2024-10-09)#

πŸ› Bug Fixes#

  • minor changes (338306d)

  • re-write long-wavelength contamination function, adding dependency xesmf (6e96870)

  • add debug for eq source fitting (43e2855)

  • if too few points, reduce K folds until it works for fitting Splines (5d40917)

  • re-create starting topography for each fold of training constraint points in density/zref optimization (5da58fb)

  • bug for checking gravity inside topo region with density/zref cv (e96099a)

πŸ“¦οΈ Build#

  • make xesmf optional dependency (8f3494c)

🧰 Chores / Maintenance#

✏️ Formatting#

πŸ“– Documentation#

  • update and rerun doc notebooks (7285281)

πŸš€ Features#

  • allow passing column name for weights in create_topography (1815139)

  • add fname option to optimize functions (1bb69b6)

v0.9.1 (2024-10-03)#

πŸ› Bug Fixes#

  • fixes error of using 1x not 4.5x default depth for eq sources (5746851)

  • enable default eq source depth for regional constraints (d9301a3)

πŸ“¦οΈ Build#

  • add pooch and scikit-learn as dependencies (8bebf45)

🧰 Chores / Maintenance#

  • update binder env to v0.9 (0307bd9)

πŸ“– Documentation#

v0.9.0 (2024-08-10)#

πŸ› Bug Fixes#

  • raise error for NaNs in gravity dataframe (3ca5cca)

  • drop nans in constraints_df in regional_constraints (6ee2b6b)

  • add warning for missing split_kwargs argument (ef96fd9)

  • use copy.deepcopy() for all dictionaries inside functions (10df82f)

  • warn instead of raise error for constraints outside of gravity data (08a60b4)

πŸ“¦οΈ Build#

  • increase min supported botorch version to include logie_candidates_func (1491b24)

  • restrict scipy to below v1.14 until UQpy import issue is fixed (474e5b5)

🧰 Chores / Maintenance#

πŸ“– Documentation#

πŸš€ Features#

  • add constraint_style to plotting inversion grav results (c062b43)

🎨 Refactor#

  • manually calculate default eq source depth until harmonica v0.7 is released. (aeb675a)

  • simplify UQpy import (783d3dc)

v0.8.1 (2024-08-05)#

πŸ› Bug Fixes#

  • remove nptyping as dependency (d2534d0)

🧰 Chores / Maintenance#

  • add test deps to conda_install for testing conda releases (c44d59b)

  • update binder env to v0.8 (8d9d294)

πŸ“– Documentation#

  • add missing docstring (50591e3)

  • fix issues with autoapi and typehints. (af93c02)

v0.8.0 (2024-08-02)#

πŸ› Bug Fixes#

  • ensure all dictionary pop calls are made on copies (1c80404)

  • enable upward continuation option for CPM with equivalent source gridding (0c23eca)

  • separate cmaps for starting and ending gravity residual plots (d6feb0e)

  • explicitly save inversion results in run_inversion_workflow (5db892e)

  • bug in eq_sources_score with too many folds (c78354e)

  • raise error if trying to get regional score from method constraints_cv (d35b703)

  • make dampings required for create_topography and starting_topography_kwargs (c3d407b)

  • only plot optuna importances if >1 parameter (ba17ed1)

  • update regional_eq_sources to work with new param names (68f85f2)

  • bug in optimize_eq_source_params (eb0ebbe)

  • add warnings about constraints and regional separation (c6bc503)

  • add warning in run_inversion_workflow for using constraints with zref/density CV (88e9a86)

  • add assert that run_inversion_workflow uses correct zref and density values (5692da4)

  • minor changes (dbe8ca5)

  • bug in run_inversion_workflow (bf875f8)

  • bug in optimize_inversion_zref_density_contrast_kfolds (8886438)

  • suppress info logs for run inversionwith kfolds CV (3bb59d2)

  • suppress info logs for regional separations (e15d3de)

  • change regional_method to method in regional_grav_kwargs (d52f01d)

  • raise error for bug in plot_2_param_cv_scores_uneven (7ec08e7)

  • add check for regional separation scores not being nans (e98bbfd)

  • bug in regional test (c618097)

  • bug in CPM kfolds optimization (30e6763)

  • updating plotting of optuna results in optimization (af78985)

  • add regional scores to trial user attrs in regional hyperparameter optimizations (9ac1bdf)

  • update best_spline_cv and use within create_topography (5c3d6c5)

  • raise error if index column already exists in sample_grids (7ca6c83)

  • update optuna plotting funcs (d3b1552)

  • update plot_2_parameter_cv_scores_unven function (8b73d43)

  • enqueue trials for value limits in optimize_eq_source_params (af519e0)

  • add default value to source_depth in OptimalEqSourceParams (03b828e)

  • use more startup trials in optimizing on both zref and density (789167b)

  • remove warning about using constraints for finding constant regional value in CV as it doesn’t seem to affect it. (14efcfc)

  • add warning if no supplied constraints in run_inversion_workflow if doing density/zref CV (2783ab4)

  • allow no starting_prisms in run_inversion_workflow if doing a density/zref CV (da1674c)

  • remove data_column from random_split_test_train and keep all non-coord columns in dataframe. (3584286)

  • bug in resample_with_test_points, drop nans (feda68f)

  • bug fixed to explicitly remove prism_layer in zref/density CV (b70a893)

  • update plotting for optuna optimization results (f2c60c4)

  • log warning if using constraints points for finding constant regional value within a zref/density CV. (f7a135d)

  • bug in plot_2_parameter_cv_scores_uneven (b8ca0f4)

  • bug in run_inversion_workflow (604729b)

  • minor fixes to logging (4481f5d)

  • add crs parameter for utils.nearest_grid_fill (b2eec98)

  • turn off dynamic convergence plotting during CV (a09ad32)

  • remove unnecessary depth_type arg for eq sources (4998705)

  • add warning to run_inversion about unused weighting grid (e2676fa)

πŸ“¦οΈ Build#

  • remove unused optuna parallel functions and dependencies: joblib, psutil, and tqdm_joblib (56c3887)

  • remove viz optional deps and add to core deps (b152f1b)

  • remove opti deps and include as part of core deps (a396318)

  • add deprecation to deps (dec0ec8)

🧰 Chores / Maintenance#

  • remove broken test and decrease timeout (3639b9c)

  • remove pre-commit GHA in favor for pre-commit.ci (865c514)

  • delete unused release file (8118b97)

  • remove check-manifest from pre-commit (71accc4)

  • updates from learn-scientific-python (65b1815)

  • gitignore tmp folders (c228cb2)

  • misc small changes (b4d247d)

  • make some functions private to declutter API documentation (e19c6f2)

  • remove test optuna parallel (a1b2477)

  • ignore optuna experimental warnings (e1fcb78)

  • remove check import for psutil, joblib and tqdm_joblib (0a3a925)

  • add debug logging throughout (70da273)

  • ignore some ruff issues in notebooks (d18e866)

  • update make commands (50f1881)

  • fix failing tests (7edfed2)

  • add pickle and sqlite files to make clean (71e897f)

  • add nodefaults to testing env (9a06f62)

  • update invert4geom version in environment.yml (7762e06)

  • updates to ci.yml (b3bb4d4)

  • use micromamba for GHA test env and cache it (481a296)

  • dont run test on docs or style commits (8b1065f)

  • set min pylint version (f36ef0f)

  • update make commands (e5bc907)

  • precommit ignore doc md files (78461c3)

✏️ Formatting#

πŸ“– Documentation#

  • update all doc notebooks (4cc0b69)

  • update some docstrings (ff932dd)

  • update overview and conventions (a225f45)

  • typo in contrib guide (32a8bdf)

  • add accidentally missing api files (b0b73d9)

  • update the docs (afab24d)

  • move contrib guide into docs folder (3009e90)

πŸš€ Features#

  • add uncertainty module (3d624c7)

  • add upward continuation option to eq_sources regional method (10e4c3e)

  • add back optuna parallel functions (4d53fde)

  • add non-optuna function for find best eq source damping (3f9c6d1)

  • add class for filtering duplicate log messages (b8df17d)

  • add damping value as dataarray attribute in create_topography (6e96f72)

  • add contextmanager function to temporarily set an env variable (b66bb59)

  • update fname for inversions and CV pickle files to be simpler (a8c3a1a)

  • add buffer arg to load_synthetic_model (8ac6fb1)

  • add checks for regional extent of gravity and constraints (997b416)

  • add fig_height kwarg to inversion plots (40cb035)

  • allow separate or combined metrics for regional hyperparameter optimizations (973d93d)

  • add function regional_constraints_cv to automatically perform a K-Folds cv for finding optimal parameter values for constraint point minimization (06ebe79)

  • allow internal CVs for eq sources and splines for regional_constraints (4982cc3)

  • allow internal CV in regional_eq_sources (24fed1a)

  • add data weights to regional_eq_sources (e63e49d)

  • add grav_obs_height parameter to regional_eq_sources (ed344ae)

  • add function for loading all synthetic topography and gravity (d4c8b07)

  • add function for contaminating data with long-wavelength noise (5d087a2)

  • new function optimize_inversion_zref_density_contrast_kfolds for use constraints within the CV via an inner kfolds-CV (f596f37)

  • remove default args for optimize_eq_source_params (df1fb14)

  • add progressbar and callbacks to optimize_eq_source_params (7156c05)

  • all passing kfolds of constraints to optimize_inversion_zref_density_constrast (dc17ed3)

  • add plotting function for fixing hoverdata on plotly-optuna plots (da2af82)

  • add plotting function for stochastic uncertainty (88288a9)

  • new function random_split_test_train to randomly split data for cross validations. (3b797ab)

  • add optimization for eq source params (9a31851)

  • add function to give score for regional estimations (276da98)

  • add function to convert format of test train folds dataframe (eec2a93)

  • add function for splitting data into test and train sets with several methods (5e252f1)

  • add optimization functions for all regional estimation techniques. (7db27cc)

  • add functions for optuna logback to warn about best parameter values being at limits. (53fafc7)

  • include multi-objective studies in custom optuna logback func (89d4403)

  • add constraints_dfto plotting functions (64147bf)

  • add delta L2 norms to convergence plots.

BREAKING CHANGE: plot_convergence now takes parameter params (output dict from run_inversion) and doesn’t plot iteration times. plot_dynamic_convergence now takes parameters l2_norms and delta_l2_norms instead of results. (7cbdbb3)

  • add plotting func for non-grid search 2 parameter CV (b86ebf9)

  • add constraints_df arg to plot_inversion_results (57aefcc)

  • allow already separated train/test sets for gravity data in run_inversion_workflow (9fa7f27)

  • add fname option to run_inversion_workflow to save results (d393d7d)

  • add option to turn off inversion progressbar (17c6b32)

  • add load_bishop_model function (8006cf5)

  • add weights option to create_topography (17827b4)

🎨 Refactor#

  • clean up CPM optimization and cv. (f873490)

  • clean up zref/density CV functions (4ecf9ec)

  • log info instead of warning for params at limits (24819a5)

  • redo regional separation with optimal parameters instead of storing results as attributes (ff369d8)

  • use run_optuna for all optimizations to all for running in parallel. (c59f2c7)

  • use split_kwargs in run_inversion_workflow and minor fixes (849bb39)

  • move creation of regional sep studies to new function (be30d53)

  • default to separate metrics (multi-objective) for regional separation (91b2e4b)

  • update optimize_eq_source_params to work with recent changes (0e3ce7b)

  • clean up regional_constraints and change default grid_method to β€œeq_sources” (7170ebd)

  • change equivalent source param names

BREAKING CHANGE: update parameter eq_cv->cv in regional_eq_sources and regional_constraints, and use parameter cv_kwargs to pass args to optimize_eq_source_params (10e47ef)

  • update utils.best_spline_cv to pass all kwargs directly to verde.SplineCV.

BREAKING CHANGE: update parameter spline_damping to spline_dampings in function regional.regional_constraints and all functions which feed into it (i.e. regional.regional_separation) (1546d06)

  • change all equivalent source parameter variable names.

BREAKING CHANGE: please update all variables names as follows: eq_damping-> damping, source_depth->depth, eq_damping_limits->damping_limits, source_depth_limits->depth_limits ([1476e2a`](https://github.com/mdtanker/invert4geom/commit/1476e2a5233f38c4a36d3f3c7f9ba4889bf8db2e))

  • cross_validation.eq_sources_score now passes all kwargs directly to hm.EquivalentSources class (5f9f7c6)

  • consolidate optuna logging of results (68b8dc8)

  • consolidate optuna warning for best parameter values at their limits (5a3a7d1)

  • overhaul run_inversion_workflow function to emit warnings at beginning, and enable kfolds CV for using constraints in regional separation with density/zref CV, and use better file names.

BREAKING CHANGE: removed starting_prisms_kwargs, put density_contrast and zef into standard kwargs now. All regional_grav_kwargs are now directly passed to the relevant functions, same for starting_topography_kwargs. (a72c8a4)

  • use context manager to temporarily change logging level (c14aaca)

  • minor changes to optimization (18f2058)

  • set default of source_depth to β€˜default’ in regional_eq_sources (ee7575f)

  • use pygmt instead of xarray for plotting some inversion results (cf377b3)

  • use a logger specifically for invert4geom and update all logging calls (fa111cc)

  • remove default value for damping_cv_trials and zref_density_cv_trials in run_inversion_workflow (7dce943)

  • internally calculate misfit and residual in regional estimation functions and use standardized names.

BREAKING CHANGE: The function regional_dc_shift has been removed, please use function regional_constant instead. Inputs to all regional functions have changed use to standardized column names. All functions will now automatically calculate the misfit and and residual, as well as the regional. (a501f54)

  • use standardized column names instead of setting with variables.

BREAKING CHANGE: To simplify the code, all instances of passing the column name for the various data type have been replace with preset names. Please update your code to use column names: gravity_anomaly instead of parameter grav_data_column, reginstead and parameterregional_column. ([a4f24ec`](https://github.com/mdtanker/invert4geom/commit/a4f24ecd3c84a9c545d13e54ad4cebf0e70794d1))

  • cv score functions to return inversion results as well as scores (15e4369)

  • remove buffer from delta l2 norm line in convergence plots (cd85659)

  • rename function plot_optuna_inversion_figures to plot_optuna_figures (4823cab)

  • temporarily disable info-level logging in CV score functions (f5c329d)

  • deprecate cross_validation.grav_optimal_parameter in favor of new Optuna-based function optimization.optimize_inversion_damping.

BREAKING CHANGE: please switch to the new function (3062ce3)

  • deprecate cross_validation.zref_density_optimal_parameter in favor of new Optuna-based function optimization.optimize_inversion_zref_density_contrast.

BREAKING CHANGE: please switch to the new function (5059cd0)

  • use easier to understand names in update_l2_norms (1516795)

  • change point color to gray for plot_2_parameter_cv_scores (ccbd4ba)

  • update regional_constraints func.

BREAKING CHANGE: parameter constraint_block_size changed to constraints_block_size. Instead of supplying a lists of damping values to dampings for the verde method, now provide a single value with parameter spline_damping. For eq_sources method, instead of providing limits and trial numbers, just provide single parameter values with parameters source_depth, and eq_damping, block_size. (3496d5f)

  • move eq_sources_score to cross_validation module (4def683)

  • explicitly set parameters instead of kwargs for eq_sources_score (2a8c133)

v0.7.0 (2024-06-26)#

πŸ› Bug Fixes#

  • add warnings for run_inversion_workflow (54fc6b9)

  • remove zref and density_contrastparameters, extract from prism layer instead

BREAKING_CHANGE: make sure to remove all zref and density_contrast parameters from the following functions: run_inversion, grav_cv_score, constraints_cv_score. (f995f00)

  • remove density_contrast parameter from run_inversion and extract contrast instead

BREAKING CHANGE: the run_inversion function now doesn’t take density_contrast parameter, please remove these parameters from your code! (2883c25)

πŸ“¦οΈ Build#

🧰 Chores / Maintenance#

  • add codecov token (9d27f1b)

  • pre-commit autoupdate to monthly (00189aa)

✏️ Formatting#

πŸ“– Documentation#

  • rerun the docs (322bcc8)

  • add variable density example to user guide (bdce402)

  • rerun docs (4635876)

  • add documentation to density contrast implementation (ca96f76)

  • fix error in readme (18b67c8)

  • update binder env to v0.6 (19551d7)

Other#

v0.6.0 (2024-05-29)#

πŸ› Bug Fixes#

  • remove numba jit decorator from jacobian_prism (b6166f5)

  • add missing imports (bbc4825)

  • update imports (362d79d)

  • use median not RMSE for constraint point minimization (6d1c686)

  • fix warning for best_spline_cv (abb5976)

πŸ“¦οΈ Build#

  • add plotly as optional dep (0745e2a)

🧰 Chores / Maintenance#

  • add warning if using constraints for regional separation within zref/density CV (0e298aa)

  • allow cyclic imports (0c8942b)

  • add optuna and plotly as optional imports (3545f71)

  • update regional tests (9994cd5)

  • update tests to use easting and northing conventions (74eed3e)

  • check for valid registration type (6fb491a)

  • raise error for wrong grid fill method (c7bc568)

  • codespell ignore word (1a8b169)

  • pylint ignore changelog (b8a7030)

  • git ignore pickle and log files (de4c738)

  • add make clean command (55fe0fa)

  • fix ruff linting compatibility issue (f82448c)

  • remove comprehensive ignore of specific md files in pre-commit (eb9b405)

  • ignore md files in pre-commit prettier, ruff, blacken (0fade3b)

✏️ Formatting#

πŸ“– Documentation#

  • update docstrings (ac9753c)

  • add section on conventions for Invert4Geom (650e4e0)

  • re-run all notebooks (a68431f)

  • clarify intended use of invert4geom in README (0817954)

  • fix spacing on md files (727c268)

  • update binder env (a6d9690)

πŸš€ Features#

  • add warning for global min of optimizing eq source parameters (bbd5f10)

  • add optuna optimization plotting function (8e64289)

  • add function for performing constraint CV (96f74a0)

  • updating logging in CV (45f1f77)

  • save and reload best inversion results during grav CV (f390b7c)

  • add function to run entire inversion workflow at once (a7b87c7)

  • add option to save inversion results (db9ef36)

  • add regional_separation function (3a8a626)

  • add equivalent sources options to regional_constraints (264c9f5)

  • add grav obs height option to regional_constraints (41f1a67)

  • add function for creating starting topography (32bb475)

  • add option to calculate CV scores as root median or mean square (818eed4)

🎨 Refactor#

  • update plot 2 parameter CV function (365f5cf)

  • update plot convergence function (7efe1e7)

  • update plot inversion results function (ad2efa8)

  • change default filename for optimize_eq_source_params (c7e4acd)

  • change names for saved inversion parameters (eaa7e55)

  • make gravity CV return inversion results

BREAKING CHANGE: first return value of grav_optimal_parameter is ow a tuple of the inversion results. (1048295)

  • remove inversion_region from run_inversion (73c1c7c)

  • misc changes to regional functions (446260e)

  • use easting and northing as coordinate names (172b736)

  • regional separation methods only take gravity df not grid.

BREAKING CHANGE: use grav_df and grav_data_column arguments instead of passing a grav_grid to the various regional separation methods. (33fc5ba)

  • switch keyword argument name

BREAKING CHANGE: make sure to switch all mentions of regional_col_name to regional_column in your code! (a71cba1)

  • change default regional_constraints grid method to verde (ac1320b)

  • update inversion progressbar (d791fcb)

  • switch keyword argument for constraint points to constraints_df

BREAKING CHANGE: all use of constraint points need to be supplied via argument constraints_df now! (bf6cd34)

  • update progressbar for grav CV (1ebe1d8)

  • switch keyword argument name

BREAKING CHANGE: make sure to switch run_inversion argument weights_after_solver to apply_weighting_grid and supply a xr.DataArray via parameter weighting_grid. (444c43d)

  • use list of l2 norms for end_inversion (f25e739)

  • change default perc_increase_limit (c456be8)

  • switch keyword argument name from input_grav_column to grav_data_column

BREAKING CHANGE: make sure to switch all mentions of β€˜input_grav_columntograv_data_column in your code! ([f864c1f`](https://github.com/mdtanker/invert4geom/commit/f864c1f0fede206b2c65f0b9ac60814e8e8011f9))

  • explicitly create density grid (7555f18)

  • use topo variable for getting final topography grid (5596082)

  • switch keyword argument name from input_grav to grav_df

BREAKING CHANGE: make sure to switch all mentions of input_grav to grav_df in your code! (b7656ee)

  • enable CV progressbars by default (dc6646e)

v0.5.0 (2024-05-07)#

πŸ› Bug Fixes#

  • set optuna logging level to warning (0796fef)

  • make ipython optional import (ce88f1a)

  • allow wiggle room for enforcing confining surfaces (7e4e0b0)

  • add warning message to annulus derivative calculation (99a7ade)

  • add noise to test regional eq sources (350baca)

  • replace pygmt gridding with simple set_index for plotting (ebf6732)

πŸ“¦οΈ Build#

  • make semantic release GHA need changelog success (7b7d1c4)

  • add make command for binder env (3b5d44e)

  • add optuna-integration package (fa648d5)

🧰 Chores / Maintenance#

  • ignore dtype in test utils sampling (f18e356)

  • more specific dtypes in tests (1c587fd)

  • fix test dtype issue (f16f955)

  • use head commit for skip tests on docs (7f4c863)

  • don’t run test on docs commits [skip ci] (fedf871)

  • try stopping tests only for docs (not style) (f1cf974)

  • stop tests on docs/style [skip ci] (49de955)

  • still trying to stop GHA running on docs / style [skip ci] (7306b35)

  • add missing β€œ)” [skip-ci] (49918e9)

  • fixing skip test on certain commits [skip ci] (4dfe4cf)

  • stop tests running on doc / style commits (1a9e308)

  • unpin binder env (e865ddc)

  • cleanup Make commands (482d95a)

  • don’t run tests on docs or style commits (30abcdf)

  • remove pre-commit updates from changelog (f7ea9c8)

✏️ Formatting#

πŸ“– Documentation#

  • remove duplicate thumbnail [skip ci] (507bd06)

  • specify thumbnails (18fcac1)

  • remove linkcode for API (2d2eeff)

  • add links to github code for API (883c706)

  • fix error in conf.py (2a7824d)

  • fix links to code in API docs (7d1fa5f)

  • update notebooks (a74dbee)

  • add bishop gallery example (7e55c7e)

  • update contrib guide (36baf37)

  • update and rerun user guide notebooks (b1c572a)

  • update contributing guide (761814c)

  • clarify code comment (ef34f57)

  • improve inversion docstrings (471a76f)

  • fix pinning issue (a8f0ea1)

  • pin python-semantic-release in GHA (c5b18da)

πŸš€ Features#

  • add termination reason to inversion progress bar (0274d7b)

  • add region arg to plot_inversion_topo_results (694b778)

  • add DC-shift regional estimation method (2e91771)

  • add scale and yoffset args to synthetic topography function (4801f33)

  • add iteration progress bar to inversion (25a4e92)

  • limit misfit rmse to within optional inversion region (b66d3c4)

  • add dynamic convergence plot to inversion (7a5d5b2)

  • add inversion_region to plot convergence (52eebdd)

  • add plot_title kwarg for plot_cv_scores (3cda4e0)

  • fix colorscales for inversion grav results (9218e68)

v0.4.0 (2024-02-22)#

πŸ› Bug Fixes#

  • resolve permission denied windows error in optuna test (1084b56)

πŸ“¦οΈ Build#

  • add support for Python 3.12 (b0b058a)

  • drop python 3.8 support

BREAKING CHANGE: (77cc15d)

🧰 Chores / Maintenance#

  • fixing semantic release action (cfcfdf1)

  • trying to fix semantic-release action (75cadc3)

  • manually update GH action and pre-commit versions (46d9357)

  • update changelog template (d20c603)

  • delete tmp optuna file in test (9b266aa)

  • gitignore vscode settings (ad5ab8e)

  • remove unnecessary files (74b63ae)

  • list packages after install in test GHA (35f05e5)

  • include all optimization deps in testing env (cb2f091)

  • add optuna to test deps (89e2447)

  • update GHA test env (70fcbf7)

  • revert to mamba for GHA test env (45c9b7b)

  • add make command for GHA test env (9f598bd)

  • upgrade pip for GHA test env (e89ba32)

  • include setuptools in GHA test env (aa9e569)

  • fix typo in pre-commit (b05bab5)

  • ignore bib in pre-commit (ecd6d93)

  • ignore changelog template in pre-commit (23ed7d4)

  • update changelog template (f3a3c9c)

  • remove old push GHA (9e2088d)

  • replace mamba with pip for GHA test env install (421cffe)

  • rename release GHA (32b6c3a)

  • add semantic release GHA (204c7a7)

  • update pre-commit config (e2dbcdd)

  • add make commands (98d6069)

  • update RTD env and add make command (83d4199)

  • change dependa-bot updates to monthly (3284324)

  • update from antarctic-plots to polartoolkit (16bf313)

✏️ Formatting#

πŸ“– Documentation#

  • rerun all user guide notebooks (d8688f2)

  • fix incorrect reference styles (93b6cfc)

  • fix bibliography references (606c936)

  • fix rtd.yml (36376d7)

  • use pip to install RTD env (27c063a)

  • switch from autodoc to autoapi (e182bac)

  • add binder link to docs (ddb80d3)

  • add reference .bib and md file (048933e)

  • update install instructions (5c051a4)

  • add a discretization user guide (8562c06)

  • move contributing guide (8d30cda)

  • enable nbgallery for user guide (2bcc0aa)

  • enable binder links (e134b4a)

πŸš€ Features#

  • add plotting options to show_prism_layers (8c1874e)

v0.3.1 (2023-12-06)#

πŸ› Bug Fixes#

  • adds encoding to open calls (110ff36)

πŸ“¦οΈ Build#

  • only install doc optional deps for nox (da69dcb)

🧰 Chores / Maintenance#

  • adds license file to pyproject.toml (ed882d8)

  • adds github issue templates amd comments (721b391)

✏️ Formatting#

πŸ“– Documentation#

  • remove optimization deps from RTD env (dad0330)

  • fix docstring for jacobian_annular (7b7be72)

  • fix intersphinx mapping links (1ca89af)

  • add docs link to contributing file (9d7f830)

  • fixes minor issues in docs (0bca578)

  • add cover figure (5c0d029)

v0.3.0 (2023-11-30)#

πŸ› Bug Fixes#

  • optional optuna Journal import (e0a159f)

  • make optimization dep imports optional (e7ed8a1)

  • use lock_obj to fix file store for windows (f835c74)

  • replace psutil cpu affinity with new function

used a function from a stack overflow answer which is able to get cpu core numbers for many operating systems since psutil doesn’t seem to work for MacOS or Windows. (f3bf61e)

πŸ“¦οΈ Build#

  • restrict xrft version

Seems to be cause issues in conda-forge feedstock, harmonica requires >= 1.0, match this (f9a17ff)

  • combine optional dependencies into all (d5f038b)

  • add optimization optional deps (871a870)

  • alter dependency versions (82695f5)

  • add new dependencies (8d9982c)

🧰 Chores / Maintenance#

  • add Make changelog command (d433a9d)

  • numba-progress install from pip to conda (59099bf)

  • move changelog template location (2bdeccb)

  • fix env.yml files (2735f09)

  • separate RTD env and testing env (0d1621d)

  • remove build api docs to ci.yml (0bf7f87)

  • add sphinx-apidoc call to ci.yml (9d0ff3a)

πŸ“– Documentation#

  • replace Unknown with Other in changelog (e7f274a)

  • customize jinja changelog template (203c1c8)

  • add rst files for new modules (b9010e5)

  • add estimating regional field user guide (7e5b69b)

  • add testing instructions to contrib guide (9c2732d)

  • add module descriptions to overview (ae7469d)

  • fix some docstrings (920e129)

  • add cross_validation to pre-commit ignore (b8e8e86)

πŸš€ Features#

  • add test files for all modules (2c11f56)

  • add regional module (2d52c19)

  • add optimization module (a398e12)

  • add synthetic regional field function (aeb81b2)

  • add eq_sources_score function (6c132d8)

  • add best_spline_cv function (3965dcb)

Other#

v0.2.0 (2023-11-27)#

πŸ› Bug Fixes#

  • add reference level to iteration plots (960eb44)

🧰 Chores / Maintenance#

  • add ignore option for codespell (bc4f597)

  • add semantic-release changelog template (bc93159)

  • add semantic release check to makefile (d3bb077)

✏️ Formatting#

πŸ“– Documentation#

  • minor changes (c29c742)

  • new user guide notebook

adds notebook which combines damping, density, and zref cross validations, as well as using a starting model and weighting grid. (1ad026a)

  • update user guide notebooks

To run faster, this lowers the resolution of the user guide notebooks. It also adds synthetic noise to all the examples. (d63c410)

  • update some docstrings (0bf4d7b)

  • add references to docstrings (d0357a8)

  • add emojis to homepage (eda2938)

  • set nb execute to never for docs (ef58202)

  • edit the user guide notebooks (aec1fe6)

  • add cross validation api docs (03c38d6)

  • remove tqdm mapping (088409e)

πŸš€ Features#

  • add 2 parameter cross validation plotting (2d1269e)

  • add contaminate function for synthetic noise (3a1cf8d)

Other#

v0.1.20 (2023-11-24)#

πŸ› Bug Fixes#

Other#

v0.1.19 (2023-11-24)#

πŸ› Bug Fixes#

  • add zref and density args to inversion (#24)

  • fix: add zref and density args to inversion

  • fix: removes references to density and zref

  • fix: remove python 3.12 support, add test for 3.10

  • chore: specify semantic release options

  • chore: remove pypy from testing versions (c62f189)

🧰 Chores / Maintenance#

  • remove scm version files (1f99c55)

Other#

v0.1.18 (2023-11-23)#

πŸ› Bug Fixes#

  • use PAT instead of GH token (f2cb0d1)

v0.1.17 (2023-11-23)#

πŸ› Bug Fixes#

🧰 Chores / Maintenance#

  • finally have release.yml fixed?! (6654e98)

  • fixing release.yml (2a381b3)

v0.1.16 (2023-11-23)#

πŸ› Bug Fixes#

🧰 Chores / Maintenance#

v0.1.15 (2023-11-23)#

πŸ› Bug Fixes#

  • separate push and release jobs (2f0284a)

v0.1.14 (2023-11-23)#

πŸ› Bug Fixes#

v0.1.13 (2023-11-23)#

πŸ› Bug Fixes#

  • remove permission from inside steps (42cadef)

  • move environment outside of steps (9773658)

  • reconfigure cd.yml (5fa82ed)

v0.1.12 (2023-11-23)#

πŸ› Bug Fixes#

v0.1.11 (2023-11-23)#

πŸ› Bug Fixes#

  • publish pypi only if tag (1186e3e)

v0.1.10 (2023-11-23)#

πŸ› Bug Fixes#

  • force a version increment (8dfd424)

🧰 Chores / Maintenance#

v0.1.9 (2023-11-23)#

πŸ› Bug Fixes#

  • trying to fix PSR making github release (b777890)

v0.1.8 (2023-11-23)#

πŸ› Bug Fixes#

  • replace hynek build with PSR build (f40cfe9)

v0.1.7 (2023-11-23)#

πŸ› Bug Fixes#

  • fake fix commit to test semantic-release (ffcd3ed)

🧰 Chores / Maintenance#

Other#

v0.1.6 (2023-11-22)#

πŸ› Bug Fixes#

  • add personal access token to github action (#20) (cc0f1ed)

  • enable semantic release (#19) (b318687)

🧰 Chores / Maintenance#

  • publish to pypi on all commits to main (#18) (5b0b9f3)

v0.1.5 (2023-11-23)#

🧰 Chores / Maintenance#

  • only publish to pypi on tags (#17) (ae9cbac)

v0.1.4 (2023-11-23)#

🧰 Chores / Maintenance#

  • manually increment version to test GA (#16) (dc18fdb)

v0.1.3 (2023-11-23)#

🧰 Chores / Maintenance#

  • enable publish to pypi without testpypi (#15) (c0d2969)

v0.1.2 (2023-11-23)#

🧰 Chores / Maintenance#

  • fixing release github action (#14)

manually increment version to test pypi release action is triggered (c9fc4c7)

  • still fixing release.yml (#12)

update pypi and testpypi environment name info (db9132a)

  • still fixing release.yml (#11)

refine if statements (24d3fca)

  • trying to fix release.yml (#9)

makes release.yml run on all pushes to main instead of just published pushes. (5554585)

Other#

v0.1.1 (2023-11-23)#

🧰 Chores / Maintenance#

  • trying to fix release.yml issues (#8)

  • chore: trying to fix reseal.yml issues

  • style: pre-commit fixes


Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> (aa8760a)

  • sets up python-semantic-release (#7)

Changes dynamic version to a manually typed version 0.1.0, and tells python-semanitc-release where this version is specified. Removes setuptools_scm. Configures semanitic-release. (612b319)

Other#