Releases: GeoStat-Framework/GSTools
v1.7.0 'Morphic Mint'
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 thelen_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
andmodel
attributes to Generator ABC to shortcut field generation for pure nugget models
- added
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 whatvar_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 invario_estimate
when a mask was applied, together with a given sample size this resulted in anIndexError
most of the times (#378)
v1.6.1 'Periodic Peach'
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
v1.6.0 'Periodic Peach'
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 keywordperiodic
- add examples to showcase how to use the new generator
- create periodic spatial random fields with
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'
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
inEnsembleSampler
(#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 withnp.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
v1.5.1 'Nifty Neon'
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'
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 toCovModel
to explicitly specify spatio-temporal models #308- rotation between spatial and temporal dimension will be ignored
- added
spatial_dim
toCovModel
to explicitly set spatial dimension for spatio-temporal models- if not using
spatial_dim
, the provideddim
needs to include the possible temporal dimension spatial_dim
is always one less thanfield_dim
for spatio-temporal models
- if not using
- also works with
latlon=True
to have a spatio-temporal model with geographic coordinates - all plotting routines respect this
- the
Field
class now has atemporal
attribute which forwards the model attribute - automatic variogram fitting in kriging classes for
temporal=True
andlatlon=True
will raise an error
- added
geo_scale
toCovModel
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 asgs.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 hasgeo_scale
now to control the units of the bins
- no need to use
vario_estimate
now forwards additional kwargs tostandard_bins
(bin_no
,max_dist
) #308- added
low
andhigh
arguments touniform
transformation #310
Changes
CovModel
s expect special arguments by keyword now #308- always use f-strings internally #283
- removed
verbose
attribute fromRandMeth
classes #309 - all arguments for
RandMeth
classes key-word-only now exceptmodel
#309 - rename "package" to "api" in doc structure #290
Bugfixes
- latex equations were not rendered correctly in docs #290
v1.4.1 'Sassy Sapphire'
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
Changes
- API documentation is polished and fully auto-generated now #271
Bugfixes
v1.4.0 'Sassy Sapphire'
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 topyproject.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
v1.3.5 'Pure Pink'
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
v1.3.4 'Pure Pink'
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