Skip to content

Commit e1a9758

Browse files
committed
Updated sill descriptions in documentation, updated spatial dependency index calculations
1 parent 897656a commit e1a9758

File tree

43 files changed

+1951
-1898
lines changed

Some content is hidden

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

43 files changed

+1951
-1898
lines changed

CHANGELOG.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
Changes - from version >= 1.x
22
=============================
33

4-
2025-0
5-
------
4+
2025-10-11
5+
----------
66

77
**version 1.1.0**
88

@@ -12,6 +12,7 @@ Changes - from version >= 1.x
1212
* [docs] updated missing DOI in Indicator Variogram
1313
* [enhancement] representative point in `Blocks` is sampled from the largest `Polygon` when `MultiPolygon` is passed
1414
* [enhancement] `Blocks` object might be altered during CRS transformation or new object might be created (`inplace` parameter and copying mechanism)
15+
* [bug] incosistent documenation - `sill` represents *partial sill*, not *total sill*, and documentation might be misleading
1516

1617
2025-07-17
1718
----------

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Pyinterpolate
44

5-
**version 1.0.3**
5+
**version 1.1.0**
66

77
![Logo](pyinterpolate-banner.png)
88

1.81 KB
Binary file not shown.
-1.56 KB
Binary file not shown.
1.37 KB
Binary file not shown.
2.12 KB
Binary file not shown.
Binary file not shown.

docs/build/html/_modules/pyinterpolate/core/data_models/blocks.html

Lines changed: 37 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,7 @@ <h1>Source code for pyinterpolate.core.data_models.blocks</h1><div class="highli
434434
<span class="sd">- Package doesn&#39;t read data files, data must be loaded into DataFrame and</span>
435435
<span class="sd"> then passed into the Blocks object.</span>
436436
<span class="sd">&quot;&quot;&quot;</span>
437+
<span class="kn">import</span> <span class="nn">copy</span>
437438
<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Union</span><span class="p">,</span> <span class="n">Hashable</span><span class="p">,</span> <span class="n">Dict</span>
438439
<span class="kn">from</span> <span class="nn">numpy.typing</span> <span class="kn">import</span> <span class="n">ArrayLike</span>
439440

@@ -927,10 +928,9 @@ <h1>Source code for pyinterpolate.core.data_models.blocks</h1><div class="highli
927928
<span class="k">return</span> <span class="n">df</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">block_id</span><span class="p">,</span> <span class="n">other_blocks</span><span class="p">]</span></div>
928929

929930

930-
<span class="c1"># TODO manage copying and inplace transformations</span>
931931
<div class="viewcode-block" id="Blocks.transform_crs">
932932
<a class="viewcode-back" href="../../../../api/core/core.html#pyinterpolate.Blocks.transform_crs">[docs]</a>
933-
<span class="k">def</span> <span class="nf">transform_crs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">target_crs</span><span class="p">):</span>
933+
<span class="k">def</span> <span class="nf">transform_crs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">target_crs</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
934934
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Function transforms Blocks CRS</span>
935935

936936
<span class="sd"> Parameters</span>
@@ -940,23 +940,46 @@ <h1>Source code for pyinterpolate.core.data_models.blocks</h1><div class="highli
940940
<span class="sd"> :meth:`pyproj.CRS.from_user_input()</span>
941941
<span class="sd"> &lt;pyproj.crs.CRS.from_user_input&gt;`,</span>
942942
<span class="sd"> such as an authority string (eg &quot;EPSG:4326&quot;) or a WKT string.</span>
943+
944+
<span class="sd"> inplace : bool, default = True</span>
945+
<span class="sd"> When set to `True` then transform object&#39;s instance on the fly,</span>
946+
<span class="sd"> otherwise return modified object and do leave the old instance</span>
947+
<span class="sd"> unchanged.</span>
943948
<span class="sd"> &quot;&quot;&quot;</span>
944949
<span class="c1"># Transform core dataset</span>
945-
<span class="bp">self</span><span class="o">.</span><span class="n">ds</span><span class="o">.</span><span class="n">to_crs</span><span class="p">(</span><span class="n">target_crs</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
950+
<span class="k">if</span> <span class="n">inplace</span><span class="p">:</span>
951+
<span class="bp">self</span><span class="o">.</span><span class="n">ds</span><span class="o">.</span><span class="n">to_crs</span><span class="p">(</span><span class="n">target_crs</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
946952

947-
<span class="c1"># representative points</span>
948-
<span class="bp">self</span><span class="o">.</span><span class="n">_get_representative_points</span><span class="p">()</span>
949-
<span class="bp">self</span><span class="o">.</span><span class="n">_points_to_floats</span><span class="p">()</span>
953+
<span class="c1"># representative points</span>
954+
<span class="bp">self</span><span class="o">.</span><span class="n">_get_representative_points</span><span class="p">()</span>
955+
<span class="bp">self</span><span class="o">.</span><span class="n">_points_to_floats</span><span class="p">()</span>
950956

951-
<span class="c1"># distances</span>
952-
<span class="bp">self</span><span class="o">.</span><span class="n">distances</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">calculate_distances_between_rep_points</span><span class="p">(</span>
953-
<span class="n">update</span><span class="o">=</span><span class="kc">False</span>
954-
<span class="p">)</span>
957+
<span class="c1"># distances</span>
958+
<span class="bp">self</span><span class="o">.</span><span class="n">distances</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">calculate_distances_between_rep_points</span><span class="p">(</span>
959+
<span class="n">update</span><span class="o">=</span><span class="kc">False</span>
960+
<span class="p">)</span>
961+
962+
<span class="c1"># angles</span>
963+
<span class="bp">self</span><span class="o">.</span><span class="n">angles</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">calculate_angles_between_rep_points</span><span class="p">(</span>
964+
<span class="n">update</span><span class="o">=</span><span class="kc">False</span>
965+
<span class="p">)</span>
966+
<span class="k">return</span> <span class="kc">None</span>
967+
<span class="k">else</span><span class="p">:</span>
968+
<span class="n">new_object</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
969+
970+
<span class="n">new_object</span><span class="o">.</span><span class="n">ds</span><span class="o">.</span><span class="n">to_crs</span><span class="p">(</span><span class="n">target_crs</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
971+
<span class="n">new_object</span><span class="o">.</span><span class="n">_get_representative_points</span><span class="p">()</span>
972+
<span class="n">new_object</span><span class="o">.</span><span class="n">_points_to_floats</span><span class="p">()</span>
973+
974+
<span class="n">new_object</span><span class="o">.</span><span class="n">distances</span> <span class="o">=</span> <span class="n">new_object</span><span class="o">.</span><span class="n">calculate_distances_between_rep_points</span><span class="p">(</span>
975+
<span class="n">update</span><span class="o">=</span><span class="kc">False</span>
976+
<span class="p">)</span>
977+
978+
<span class="n">new_object</span><span class="o">.</span><span class="n">angles</span> <span class="o">=</span> <span class="n">new_object</span><span class="o">.</span><span class="n">calculate_angles_between_rep_points</span><span class="p">(</span>
979+
<span class="n">update</span><span class="o">=</span><span class="kc">False</span>
980+
<span class="p">)</span>
955981

956-
<span class="c1"># angles</span>
957-
<span class="bp">self</span><span class="o">.</span><span class="n">angles</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">calculate_angles_between_rep_points</span><span class="p">(</span>
958-
<span class="n">update</span><span class="o">=</span><span class="kc">False</span>
959-
<span class="p">)</span></div>
982+
<span class="k">return</span> <span class="n">new_object</span></div>
960983

961984

962985
<span class="k">def</span> <span class="nf">_delete</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">block_index</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Hashable</span><span class="p">]):</span>

docs/build/html/_modules/pyinterpolate/kriging/point/ordinary.html

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<head>
88
<meta charset="utf-8" />
99
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
10-
<title>pyinterpolate.kriging.point.ordinary &#8212; pyinterpolate 1.0.2 documentation</title>
10+
<title>pyinterpolate.kriging.point.ordinary &#8212; pyinterpolate 1.1.0 documentation</title>
1111

1212

1313

@@ -38,7 +38,7 @@
3838
<link rel="preload" as="script" href="../../../../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf" />
3939
<link rel="preload" as="script" href="../../../../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
4040

41-
<script src="../../../../_static/documentation_options.js?v=1ed6394b"></script>
41+
<script src="../../../../_static/documentation_options.js?v=fc837d61"></script>
4242
<script src="../../../../_static/doctools.js?v=9bcbadda"></script>
4343
<script src="../../../../_static/sphinx_highlight.js?v=dc90522c"></script>
4444
<script src="../../../../_static/clipboard.min.js?v=a7894cd8"></script>
@@ -111,7 +111,7 @@
111111

112112

113113

114-
<p class="title logo__title">pyinterpolate 1.0.2 documentation</p>
114+
<p class="title logo__title">pyinterpolate 1.1.0 documentation</p>
115115

116116
</a></div>
117117

@@ -665,7 +665,7 @@ <h1>Source code for pyinterpolate.kriging.point.ordinary</h1><div class="highlig
665665
<span class="sd"> Parameters</span>
666666
<span class="sd"> ----------</span>
667667
<span class="sd"> theoretical_model : TheoreticalVariogram</span>
668-
<span class="sd"> A trained theoretical variogram model.</span>
668+
<span class="sd"> Fitted theoretical variogram model.</span>
669669

670670
<span class="sd"> known_locations : numpy array</span>
671671
<span class="sd"> The known locations: ``[x, y, value]``.</span>
@@ -674,7 +674,9 @@ <h1>Source code for pyinterpolate.kriging.point.ordinary</h1><div class="highlig
674674
<span class="sd"> Point where you want to estimate value ``(x, y) &lt;-&gt; (lon, lat)``.</span>
675675

676676
<span class="sd"> sill : float</span>
677-
<span class="sd"> The sill (``c(0)``) of a dataset.</span>
677+
<span class="sd"> Partial sill, or sill when nugget is set to zero. Total sill is a sum</span>
678+
<span class="sd"> of partial sill and nugget. If given, then partial sill is fixed to</span>
679+
<span class="sd"> this value.</span>
678680

679681
<span class="sd"> neighbors_range : float, default=None</span>
680682
<span class="sd"> The maximum distance where we search for neighbors. If ``None`` is</span>

docs/build/html/_modules/pyinterpolate/semivariogram/indicator/indicator.html

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -810,7 +810,9 @@ <h1>Source code for pyinterpolate.semivariogram.indicator.indicator</h1><div cla
810810
<span class="sd"> ``min_range`` and ``max_range``.</span>
811811

812812
<span class="sd"> sill : float, default = None</span>
813-
<span class="sd"> If given, then sill is fixed to this value.</span>
813+
<span class="sd"> Partial sill, or sill when nugget is set to zero. Total sill is</span>
814+
<span class="sd"> a sum of partial sill and nugget. If given, then partial sill</span>
815+
<span class="sd"> is fixed to this value.</span>
814816

815817
<span class="sd"> n_sill_values : int, default = 5</span>
816818
<span class="sd"> The last n experimental semivariance records for sill estimation.</span>
@@ -819,17 +821,13 @@ <h1>Source code for pyinterpolate.semivariogram.indicator.indicator</h1><div cla
819821
<span class="sd"> sill_from_variance : bool, default = False</span>
820822
<span class="sd"> Estimate sill from the variance (semivariance at distance 0).</span>
821823

822-
<span class="sd"> min_sill : float, default = 1</span>
823-
<span class="sd"> The minimal fraction of the value chosen with the sill estimation</span>
824-
<span class="sd"> method. The value is: for ``sill_from_values`` - the mean of</span>
825-
<span class="sd"> the last ``n_sill_values`` number of experimental semivariances,</span>
826-
<span class="sd"> for ``sill_from_variance`` - the experimental variogram variance.</span>
827-
828-
<span class="sd"> max_sill : float, default = 5</span>
829-
<span class="sd"> The maximum fraction of the value chosen with the sill estimation</span>
830-
<span class="sd"> method. The value is: for ``sill_from_values`` - the mean of</span>
831-
<span class="sd"> the last ``n_sill_values`` number of experimental semivariances,</span>
832-
<span class="sd"> for ``sill_from_variance`` - the experimental variogram variance.</span>
824+
<span class="sd"> min_sill : float, default = 0.5</span>
825+
<span class="sd"> The minimal fraction of the variogram variance at lag 0 to</span>
826+
<span class="sd"> find partial sill, ``0 &lt;= min_sill &lt;= max_sill``.</span>
827+
828+
<span class="sd"> max_sill : float, default = 2</span>
829+
<span class="sd"> The maximum fraction of the variogram variance at lag 0 to find</span>
830+
<span class="sd"> partial sill.</span>
833831

834832
<span class="sd"> number_of_sills : int, default = 16</span>
835833
<span class="sd"> How many equally spaced sill values are tested between</span>

0 commit comments

Comments
 (0)