Skip to content

Releases: GeoStat-Framework/GSTools

v1.7.0 'Morphic Mint'

28 Apr 11:38
1edd2b9
Compare
Choose a tag to compare

Release Notes

This great release brings not only one but two impressive new features to GSTools: Plurigaussian Fields and Sum-Models.
Plurigaussian Fields provide a smart way to introduce structure to random fields and with Sum-Models you are finally able to add two or more covariance models to better capture spatial patterns. In addition, we outsourced the cython code of GSTools into a separate package GSTools-Cython, which makes GSTools itself a lightweight pure python package.

Installation

You can install GSTools with conda:

conda install -c conda-forge gstools

or with pip:

pip install gstools

Documentation

The documentation can be found at: https://gstools.readthedocs.io/

What's new?

Enhancements

  • new feature: Plurigaussian simulations (PGS) (#370)
    • they simulate distributions of categorical data, e.g. lithofacies, hydrofacies, soil types, or cementitious materials
    • they naturally extend truncated Gaussian fields, which are already a part of GSTools through the field transformations
  • new feature: support for Sum-Models (#364)
    • added SumModel class
      • represents sum of covariance models
      • behaves just as a normal covariance model with kriging and field generation
      • covariance models can be added with overloaded + operator: model = m1 + m2
      • class is subscriptable to access sub-models by index: m1 = model[0]
      • included models will get a nugget of 0 and the nugget is stored separately in the sum-model
      • model variance is the sum of the sub-model variances
      • model length-scale is weighted sum of sub-model len-scales, where the weights are the ratios of the sub-models variance to the sum variance (motivated by the integral scale, which satisfies this relation)
      • anisotropy and rotation need to be the same for all included sub-models
      • parameters of the sub-models can be accessed by name with added index suffix: model[0].nu == model.nu_0
      • fitting: if len_scale is fixed, none of the len_scale_<i> can be fixed since len_scale is calculated from variance ratios
    • added Nugget class (empty SumModel)
      • allow len scale of 0 in CovModel to enable a pure nugget model
      • added zero_var and model attributes to Generator ABC to shortcut field generation for pure nugget models

Changes

  • outsourced cython code to a separate package GSTools-Cython (#376)
  • removed var_raw attribute from CovModel (was rarely used and only relevant for the truncated power law models)
    • BREAKING CHANGE (but not to many should be affected)
    • TPLCovModel now has a intensity attribute which calculates what var_raw was before
  • simplified variogram fitting (var_raw was a bad idea in the first place)
  • variogram plotting now handles a len-scale of 0 (to properly plot nugget models)
  • fitting: when sill is given and var and nugget are deselected from fitting, an error is raised if given var+nugget is not equal to sill (before, they were reset under the hood in a strange way)

Bugfixes

  • pnt_cnt was not recalculated in vario_estimate when a mask was applied, together with a given sample size this resulted in an IndexError most of the times (#378)

v1.6.1 'Periodic Peach'

30 Jan 09:18
Compare
Choose a tag to compare

Release Notes

This release brings Python 3.13 support and provides some minor bugfixes.

Installation

You can install GSTools with conda:

conda install -c conda-forge gstools

or with pip:

pip install gstools

Documentation

The documentation can be found at: https://gstools.readthedocs.io/

What's new?

Enhancements

  • added wheels for Python 3.13 #375

Bugfixes

  • fix readthedocs.com problems (#375)
  • remove deprecated scipy dependency (#375)

v1.6.0 'Periodic Peach'

18 Jul 13:12
e7ed975
Compare
Choose a tag to compare

Release Notes

This release includes a new spatial random field generator called "Fourier" which can generate periodic random fields.

Installation

You can install GSTools with conda:

conda install -c conda-forge gstools

or with pip:

pip install gstools

Documentation

The documentation can be found at: https://gstools.readthedocs.io/

What's new?

Enhancements

  • add a new spatial random field generator called Fourier (#302)
    • create periodic spatial random fields with Fourier, by setting the period length with the keyword periodic
    • add examples to showcase how to use the new generator

Bugfixes

  • fix some Cython issues (#354)
    • update deprecated conditional compilation for OpenMP support
    • fix changing between Cython and Rust backends
    • improve documentation regarding parallelization
  • fix deprecated license identifier, now Zenodo releases work again (#356)

Changes

  • require gstools-core v1.0.0 at least (#361)

v1.5.2 'Nifty Neon'

19 May 20:13
b80d8bb
Compare
Choose a tag to compare

Release Notes

This release brings better support for spatio-temporal models as well as some updates for models on geographic coordinates.

Installation

You can install GSTools with conda:

conda install -c conda-forge gstools

or with pip:

pip install gstools

Documentation

The documentation can be found at: https://gstools.readthedocs.io/

What's new?

Enhancements

  • added global variable config.NUM_THREADS to select number of threads for parallel computation (#336)
  • speed up sampling with emcee by setting vectorize=True in EnsembleSampler (#346)
  • prepare numpy 2 support (#340)
    • at least numpy 2.0.0rc1 for building extensions (for Python 3.9 and above)
    • check multiple numpy and scipy versions in CI
    • fixed minimal versions for numpy
    • use np.asarray everywhere with np.atleast_(n)d
    • fix long/longlong integer issue in cython on windows by always using 64bit integers

Bugfixes

  • build docs with latest sphinx version (#340)
  • fixed zero division error in spectral density of Integral model (#347)
  • minor pylint fixes for used-before-assignment issues (#350)

Changes

  • require pyvista 0.40 at least (#340)
  • require matplotlib 3.7 at least (#350)
  • remove universal2 wheels for macos (we already provide separate intel and arm64 wheels) (#350)

v1.5.1 'Nifty Neon'

03 Nov 20:49
d2da47e
Compare
Choose a tag to compare

Release Notes

This release brings better support for spatio-temporal models as well as some updates for models on geographic coordinates.

Installation

You can install GSTools with conda:

conda install -c conda-forge gstools

or with pip:

pip install gstools

Documentation

The documentation can be found at: https://gstools.readthedocs.io/

What's new?

Enhancements

see #317

  • added wheels for Python 3.12
  • dropped support for Python 3.7 (EOL)
  • linted Cython files with cython-lint
  • use Cython 3 to build extensions

v1.5.0 'Nifty Neon'

15 Jun 19:13
ab3c6c4
Compare
Choose a tag to compare

Release Notes

This release brings better support for spatio-temporal models as well as some updates for models on geographic coordinates.

Installation

You can install GSTools with conda:

conda install -c conda-forge gstools

or with pip:

pip install gstools

Documentation

The documentation can be found at: https://gstools.readthedocs.io/

What's new?

Enhancements

  • added temporal flag to CovModel to explicitly specify spatio-temporal models #308
    • rotation between spatial and temporal dimension will be ignored
    • added spatial_dim to CovModel to explicitly set spatial dimension for spatio-temporal models
      • if not using spatial_dim, the provided dim needs to include the possible temporal dimension
      • spatial_dim is always one less than field_dim for spatio-temporal models
    • also works with latlon=True to have a spatio-temporal model with geographic coordinates
    • all plotting routines respect this
    • the Field class now has a temporal attribute which forwards the model attribute
    • automatic variogram fitting in kriging classes for temporal=True and latlon=True will raise an error
  • added geo_scale to CovModel to have a more consistent way to set the units of the model length scale for geographic coordinates #308
    • no need to use rescale for this anymore (was rather a hack)
    • added gs.KM_SCALE which is the same as gs.EARTH_RADIUS for kilometer scaling
    • added gs.DEGREE_SCALE for great circle distance in degrees
    • added gs.RADIAN_SCALE for great circle distance in radians (default and previous behavior)
    • yadrenko variogram respects this and assumes the great circle distances is given in the respective unit
    • vario_estimate also has geo_scale now to control the units of the bins
  • vario_estimate now forwards additional kwargs to standard_bins (bin_no, max_dist) #308
  • added low and high arguments to uniform transformation #310

Changes

  • CovModels expect special arguments by keyword now #308
  • always use f-strings internally #283
  • removed verbose attribute from RandMeth classes #309
  • all arguments for RandMeth classes key-word-only now except model #309
  • rename "package" to "api" in doc structure #290

Bugfixes

  • latex equations were not rendered correctly in docs #290

v1.4.1 'Sassy Sapphire'

03 Nov 13:05
510df78
Compare
Choose a tag to compare

Release Notes

This release brings Python 3.11 support, a new covariance model and provides some minor bugfixes.

Installation

You can install GSTools with conda:

conda install -c conda-forge gstools

or with pip:

pip install gstools

Documentation

The documentation can be found at: https://gstools.readthedocs.io/

What's new?

Enhancements

  • new (Exponential-) Integral model added #243
  • added wheels for Python 3.11 #272

Changes

  • API documentation is polished and fully auto-generated now #271

Bugfixes

  • fixed approximation of Matern.spectrum for big nu #243
  • GSTools had wrong version when installed from git archive #272
  • Field.plot: solve long-standing mpl slider bug #273

v1.4.0 'Sassy Sapphire'

18 Aug 11:25
21ecf18
Compare
Choose a tag to compare

Release Notes

This release drops Python 3.6 support, brings a new package structure, adds some usability improvements and provides some crucial bugfixes.

Installation

You can install GSTools with conda:

conda install -c conda-forge gstools

or with pip:

pip install gstools

Documentation

The documentation can be found at: https://gstools.readthedocs.io/

What's new?

Enhancements

  • added Youtube tutorial to documentation #239
  • better support for custom generators #250 #259
  • add valid_value_types class variable to all field classes #250
  • PyKrige: fix passed variogram in case of latlon models #254
  • add bounds checks for optional arguments of CovModel when resetting by class attribute #255
  • minor coverage improvements #255
  • documentation: readability improvements #257

Changes

  • drop Python 3.6 support (setuptools>60 needs py>3.7) #241
  • move setup.cfg content to pyproject.toml (PEP 621) #241
  • move to src/ based package structure (better testing, building and structure) #241
  • use extension-helpers for openmp support in setup.py #241
  • increase minimal version of meshio to v5.1 #241

Bugfixes

  • Pyvista v0.32 deprecation warning: use point_data instead of point_arrays #237
  • remove deprecated scipy (v1.9) method pinv2 #247
  • change float comparison in tests #248
  • Cython: solve -Wsometimes-uninitialized warning #255

v1.3.5 'Pure Pink'

20 Jan 12:31
41d80e2
Compare
Choose a tag to compare

Release Notes

Bugfix release.

Installation

You can install GSTools with conda:

conda install -c conda-forge gstools

or with pip:

pip install gstools

Documentation

The documentation can be found at: https://gstools.readthedocs.io/

What's new?

Changes

  • remove caps for dependencies #229
  • build linux wheels with manylinux2014 for all versions (CIBW v2.3.1) #227

Bugfixes

  • Field.mesh was not compatible with meshio v5.1+ #227

v1.3.4 'Pure Pink'

30 Nov 22:04
d8941c2
Compare
Choose a tag to compare

Release Notes

This release comes with wheels for Python 3.10 and a new optional package with re-implementations of the Cython routines in Rust called GSTools-Core.

You can install the rust package as an option with

pip install gstools[rust]

Or simply by

pip install gstools-core

If the package is present it will be used instead of the Cython routines.

Installation

You can install GSTools with conda:

conda install -c conda-forge gstools

or with pip:

pip install gstools

Documentation

The documentation can be found at: https://gstools.readthedocs.io/

What's new?

Enhancements

  • add GSTools-Core as optional dependency #215
  • provide wheels for Python 3.10 #211
  • provide macOS wheels for Apple Silicon #211

Changes

  • remove unnecessary dim argument in Cython code #216