Skip to content

Commit 9770861

Browse files
Merge pull request #507 from DataverseLabs/dev
PyOpenSci updates and slightly changed api
2 parents d820b24 + da7f2f3 commit 9770861

File tree

377 files changed

+23806
-15380
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

377 files changed

+23806
-15380
lines changed

CHANGELOG.rst

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,66 @@
11
Changes - from version >= 1.x
22
=============================
33

4+
2025-11-23
5+
----------
6+
7+
**version 1.2.0**
8+
9+
* [enhancement] `Blocks` has the new parameters `values` and `geometries`, that might be provided instead of `ds` parameter
10+
* [enhancement] `calculate_semivariance()` function has the new parameters `values` and `geometries`, that might be provided instead of `ds` parameter
11+
* [enhancement] `interpolate_points()` function has the new parameters `known_values` and `known_geometries`, that might be provided instead of the `known_locations` parameter
12+
* [enhancement] `validate_kriging()` function has the new parameters `known_values` and `known_geometries`, that might be provided instead of the `known_locations` parameter
13+
* [enhancement] `validate_kriging()` has new parameter: `progress_bar` that controls `tqdm` progress bar
14+
* [enhancement] `inverse_distance_weighting()` function has the new parameters `known_values` and `known_geometries`, that might be provided instead of the `known_locations` parameter
15+
* [enhancement] `IndicatorKriging` class has the new parameters `known_values` and `known_geometries`, that might be provided instead of the `known_locations` parameter
16+
* [enhancement] `ordinary_kriging()` function has the new parameters `known_values` and `known_geometries`, that might be provided instead of the `known_locations` parameter
17+
* [enhancement] `simple_kriging()` function has the new parameters `known_values` and `known_geometries`, that might be provided instead of the `known_locations` parameter
18+
* [enhancement] `UniversalKriging` class has the new parameters `known_values` and `known_geometries`, that might be provided instead of the `known_locations` parameter
19+
* [api change] `inblock_semivariance()` function is now private: `_inblock_semivariance()`
20+
* [enhancement] `DirectionalVariogram()` class has the new parameters `values` and `geometries`, that might be provided instead of `ds` parameter
21+
* [tests] Added basic tests for `DirectionalVariogram()` class
22+
* [enhancement] `ExperimentalVariogram()` class has the new parameters `values` and `geometries`, that might be provided instead of `ds` parameter
23+
* [tests] Added basic tests for `ExperimentalVariogram()` class
24+
* [enhancement] `build_experimental_variogram()` function has the new parameters `values` and `geometries`, that might be provided instead of `ds` parameter
25+
* [tests] Added basic tests for `build_experimental_variogram()` function
26+
* [enhancement] `VariogramCloud()` class has the new parameters `values` and `geometries`, that might be provided instead of `ds` parameter
27+
* [api change] `directional_weighted_semivariance()` function is now private: `_directional_weighted_semivariance()`
28+
* [api change] `omnidirectional_variogram()` function is now private: `_omnidirectional_variogram()`
29+
* [api change] `omnidirectional_semivariogram_cloud()` function is now private: `_omnidirectional_semivariogram_cloud()`
30+
* [enhancement] `calculate_covariance()` function has the new parameters `values` and `geometries`, that might be provided instead of `ds` parameter
31+
* [api change] `directional_covariance()` function is now private: `_directional_covariance()`
32+
* [api change] `omnidirectional_covariance()` function is now private: `_omnidirectional_covariance()`
33+
* [api change] `directional_semivariance()` function is now private: `_directional_semivariance()`
34+
* [api change] `directional_semivariance_cloud()` function is now private: `_directional_semivariance_cloud()`
35+
* [api change] `omnidirectional_semivariance()` function is now private: `_omnidirectional_semivariance()`
36+
* [enhancement] `point_cloud_semivariance()` function has the new parameters `values` and `geometries`, that might be provided instead of `ds` parameter
37+
* [enhancement] `code_indicator()` function has the new parameters `values` and `geometries`, that might be provided instead of `ds` parameter
38+
* [enhancement] `ExperimentalIndicatorVariogram` and `IndicatorVariogramData` classes have the new parameters `values` and `geometries`, that might be provided instead of `ds` parameter
39+
* [enhancement] `PointSupport` has the new parameters `values` and `geometries`, that might be provided instead of `ds` parameter
40+
* [docs] updated tutorials - new parameters are used in kriging operations, and when experimental variogram is computed
41+
* [docs] added missing badges (Python version and package version)
42+
* [docs] `CITATION.cff`, citation section in readme has been moved up, bibtex citation has been added
43+
* [docs] corrected broken links to `CONTRIBUTING.md` file in readme and docs
44+
* [setup] links to documentation have been added to `pyproject.toml`
45+
* [docs] docstring examples - all user-facing API endpoints have examples in docstrings, using new input types (values | geometries)
46+
* [docs] updated docstrings (examples) in: `PointSupportDistance`, `core.block_filter`, `pipelines.interpolate`, `pyinterpolate.distance.block.calc_block_to_block_distance`, `validate_kriging`, `metrics` module functions, `inverse_distance_weighting`, `centroid_poisson_kriging`, `area_to_area_pk`, `area_to_point_pk`, `area_to_point_pk`, `area_to_point_pk`, `ordinary_kriging`, `simple_kriging`, `IndicatorKriging`, `UniversalKriging`, `Deconvolution`,
47+
* [enhancement] `ExperimentalVariogram` has new property - `lag_semivariance_array` that returns numpy array with lags and semivariances
48+
* [enhancement] `TheoreticalVariogram` has new property - `lag_yhat_array` that returns numpy array with lags and predicted semivariances
49+
* [api change] `Deviation` class parameters have been renamed to clearly point what is passed as the input
50+
* [tests] `Deviation` class tests and debug (method selection)
51+
* [docs] docstring example for `Deviation`
52+
* [docs] docstring example for `AggregatedVariogram` and `regularize()`
53+
* [docs] docstring example for `ExperimentalVariogram` and `build_experimental_variogram()`, `calculate_semivariance()`, used parameters `values` and `geometries`
54+
* [docs] docstring example for `calculate_covariance()`, used parameters `values` and `geometries`
55+
* [docs] docstring example for `DirectionalVariogram`, used parameters `values` and `geometries`
56+
* [docs] docstring example for `VariogramCloud`, used parameters `values` and `geometries`
57+
* [docs] `ExperimentalIndicatorVariogram` and `TheoreticalIndicatorVariogram` - updated examples in docstrings
58+
* [docs] `TheoreticalVariogram`, and `build_theoretical_variogram()` examples
59+
* [docs] `calculate_spatial_dependence_index()` example
60+
* [bug/feature] `ExperimentalVariogram` class removes lags with NaN values (in covariance and semivariance)
61+
* [docs] Example in `interpolate_raster()` function
62+
63+
464
2025-10-11
565
----------
666

CITATION.cff

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
cff-version: 1.2.0
2+
message: If you use this software, please cite both the article from preferred-citation and the software itself.
3+
authors:
4+
- family-names: Moliński
5+
given-names: Szymon
6+
title: 'Pyinterpolate: Spatial interpolation in Python for point measurements and aggregated datasets'
7+
version: 1.0.0
8+
url: https://doi.org/10.21105/joss.02869
9+
doi: 10.21105/joss.02869
10+
date-released: '2022-11-09'
11+
preferred-citation:
12+
authors:
13+
- family-names: Moliński
14+
given-names: Szymon
15+
title: 'Pyinterpolate: Spatial interpolation in Python for point measurements and aggregated datasets'
16+
doi: 10.21105/joss.02869
17+
url: https://doi.org/10.21105/joss.02869
18+
type: article-journal
19+
pages: '2869'
20+
year: '2022'
21+
conference: {}
22+
publisher:
23+
name: The Open Journal

README.md

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
1-
![JOSS](https://joss.theoj.org/papers/3f87f562264c4e5174d9e6ed6d8812aa/status.svg) [![License](https://img.shields.io/badge/License-BSD_2--Clause-orange.svg)](https://opensource.org/licenses/BSD-2-Clause) ![Documentation Status](https://readthedocs.org/projects/pyinterpolate/badge/?version=latest) [![CodeFactor](https://www.codefactor.io/repository/github/dataverselabs/pyinterpolate/badge)](https://www.codefactor.io/repository/github/dataverselabs/pyinterpolate)
2-
3-
[![Run Unit Test via Pytest](https://github.com/DataverseLabs/pyinterpolate/actions/workflows/python-install-and-test-on-linux-always.yml/badge.svg)](https://github.com/DataverseLabs/pyinterpolate/actions/workflows/python-install-and-test-on-linux-always.yml) [![CodeQL](https://github.com/DataverseLabs/pyinterpolate/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/DataverseLabs/pyinterpolate/actions/workflows/github-code-scanning/codeql) ![Tests Coverage](https://raw.githubusercontent.com/DataverseLabs/pyinterpolate/6a18f86ab3927e48009107e7eda7d6c833a4a610/coverage.svg)
4-
5-
1+
![PyPI - Version](https://img.shields.io/pypi/v/pyinterpolate) ![Conda Version](https://img.shields.io/conda/v/conda-forge/pyinterpolate)
2+
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyinterpolate)
63

4+
![JOSS](https://joss.theoj.org/papers/3f87f562264c4e5174d9e6ed6d8812aa/status.svg) [![License](https://img.shields.io/badge/License-BSD_2--Clause-orange.svg)](https://opensource.org/licenses/BSD-2-Clause) ![Documentation Status](https://readthedocs.org/projects/pyinterpolate/badge/?version=latest) [![CodeFactor](https://www.codefactor.io/repository/github/dataverselabs/pyinterpolate/badge)](https://www.codefactor.io/repository/github/dataverselabs/pyinterpolate)
75

6+
[![Run Unit Test via Pytest](https://github.com/DataverseLabs/pyinterpolate/actions/workflows/python-install-and-test-on-linux-always.yml/badge.svg)](https://github.com/DataverseLabs/pyinterpolate/actions/workflows/python-install-and-test-on-linux-always.yml) [![CodeQL](https://github.com/DataverseLabs/pyinterpolate/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/DataverseLabs/pyinterpolate/actions/workflows/github-code-scanning/codeql) ![Tests Coverage](https://raw.githubusercontent.com/DataverseLabs/pyinterpolate/6a18f86ab3927e48009107e7eda7d6c833a4a610/coverage.svg)
87

98
# Pyinterpolate
109

11-
**version 1.1.0**
10+
**version 1.2.0**
1211

1312
![Logo](https://raw.githubusercontent.com/DataverseLabs/pyinterpolate/refs/heads/main/pyinterpolate-banner.png)
1413

@@ -17,6 +16,27 @@
1716
The package was updated to version 1.0 in June 2025. There are breaking API changes, so please, refer to the [CHANGELOG](https://github.com/DataverseLabs/pyinterpolate/blob/main/CHANGELOG.rst) to know more about the changes.
1817
Right now, the package in version 1.0.0 is in the **beta** stage, which means that it is stable but be careful with the production use. There might be some minor bugs, and large swaths of code are not optimized yet. If you find any bugs, please report them in the [issue tracker](https://github.com/DataverseLabs/pyinterpolate/issues).
1918

19+
## Citation
20+
21+
Moliński, S., (2022). Pyinterpolate: Spatial interpolation in Python for point measurements and aggregated datasets. Journal of Open Source Software, 7(70), 2869, https://doi.org/10.21105/joss.02869
22+
23+
### Bibtex
24+
25+
```text
26+
@article{Moliński2022,
27+
doi = {10.21105/joss.02869},
28+
url = {https://doi.org/10.21105/joss.02869},
29+
year = {2022},
30+
publisher = {The Open Journal},
31+
volume = {7},
32+
number = {70},
33+
pages = {2869},
34+
author = {Moliński, Szymon},
35+
title = {Pyinterpolate: Spatial interpolation in Python for point measurements and aggregated datasets},
36+
journal = {Journal of Open Source Software} }
37+
38+
```
39+
2040
## Introduction
2141

2242
Pyinterpolate is the Python library for **spatial statistics**. The package provides access to spatial statistics tools (variogram analysis, Kriging, Poisson Kriging, Indicator Kriging, Inverse Distance Weighting).
@@ -158,7 +178,7 @@ A world of advice, you should **always** use Virtual Environment for the install
158178

159179
## Tests and contribution
160180

161-
All tests are grouped in the `test` directory. If you would like to contribute, then you won't avoid testing, but it is described step-by-step here: [CONTRIBUTION.md](https://github.com/DataverseLabs/pyinterpolate/blob/main/CONTRIBUTION.md)
181+
All tests are grouped in the `test` directory. If you would like to contribute, then you won't avoid testing, but it is described step-by-step here: [CONTRIBUTING.md](https://github.com/DataverseLabs/pyinterpolate/blob/main/CONTRIBUTING.md)
162182

163183
## Use cases
164184

@@ -181,11 +201,6 @@ Pyinterpolate was created thanks to many resources and all of them are pointed h
181201

182202
Join our community in Discord: [Discord Server Pyinterpolate](https://discord.gg/3EMuRkj)
183203

184-
## How to cite
185-
186-
Moliński, S., (2022). Pyinterpolate: Spatial interpolation in Python for point measurements and aggregated datasets. Journal of Open Source Software, 7(70), 2869, https://doi.org/10.21105/joss.02869
187-
188-
189204
## Requirements and dependencies (v 1.x)
190205

191206
Core requirements and dependencies are:

coverage.svg

Lines changed: 2 additions & 2 deletions
Loading

dev/profile/semivariogram/experimental/profile_from_ellipse_weighted.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import numpy as np
22
from pyinterpolate.semivariogram.experimental.functions.directional import \
3-
directional_weighted_semivariance
3+
_directional_weighted_semivariance
44

55

66
def profile_select_in_ellipse():
@@ -9,7 +9,7 @@ def profile_select_in_ellipse():
99
step_size = 0.05
1010
max_range = 0.6
1111

12-
_ = directional_weighted_semivariance(
12+
_ = _directional_weighted_semivariance(
1313
points=points,
1414
lags=np.linspace(step_size, max_range, 10),
1515
custom_weights=weights,
56.1 KB
Binary file not shown.
101 KB
Binary file not shown.
3.5 KB
Binary file not shown.
43.2 KB
Binary file not shown.
44.3 KB
Binary file not shown.

0 commit comments

Comments
 (0)