[Git][debian-gis-team/grass][experimental] 4 commits: New upstream version 8.3.2

Bas Couwenberg (@sebastic) gitlab at salsa.debian.org
Thu Mar 7 17:31:41 GMT 2024



Bas Couwenberg pushed to branch experimental at Debian GIS Project / grass


Commits:
ce41c2f8 by Bas Couwenberg at 2024-03-07T18:12:28+01:00
New upstream version 8.3.2
- - - - -
c8b74aeb by Bas Couwenberg at 2024-03-07T18:15:25+01:00
Update upstream source from tag 'upstream/8.3.2'

Update to upstream version '8.3.2'
with Debian dir 98943611dcdfbe08192eb0a0aeff88c81f0faedc
- - - - -
07d8694f by Bas Couwenberg at 2024-03-07T18:17:32+01:00
New upstream release.

- - - - -
a49f8088 by Bas Couwenberg at 2024-03-07T18:18:44+01:00
Set distribution to experimental.

- - - - -


17 changed files:

- .github/workflows/additional_checks.yml
- .github/workflows/clang-format-check.yml
- .github/workflows/create_release_draft.yml
- .github/workflows/docker.yml
- .github/workflows/gcc.yml
- .github/workflows/osgeo4w.yml
- .github/workflows/pytest.yml
- .github/workflows/ubuntu.yml
- debian/changelog
- gui/wxpython/startup/locdownload.py
- include/VERSION
- raster/r.horizon/main.c
- raster/r.horizon/testsuite/test_r_horizon.py
- raster/r.texture/r.texture.html
- scripts/db.dropcolumn/db.dropcolumn.py
- scripts/db.in.ogr/db.in.ogr.py
- scripts/v.db.renamecolumn/v.db.renamecolumn.py


Changes:

=====================================
.github/workflows/additional_checks.yml
=====================================
@@ -27,7 +27,7 @@ jobs:
 
     steps:
       - name: Checkout repository contents
-        uses: actions/checkout at v3
+        uses: actions/checkout at b4ffde65f46336ab88eb53be808477a3936bae11 # v4
         with:
           fetch-depth: 31
 
@@ -38,7 +38,7 @@ jobs:
           exclude: mswindows .*\.bat .*/testsuite/data/.*
 
       - name: Set up Python
-        uses: actions/setup-python at v4
+        uses: actions/setup-python at v5
         with:
           python-version: '3.10'
 


=====================================
.github/workflows/clang-format-check.yml
=====================================
@@ -17,7 +17,7 @@ jobs:
     name: Formatting Check
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout at v3
+      - uses: actions/checkout at b4ffde65f46336ab88eb53be808477a3936bae11 # v4
       - name: Run clang-format style check for C/C++/Protobuf programs.
         uses: jidicula/clang-format-action at v4.11.0
         with:


=====================================
.github/workflows/create_release_draft.yml
=====================================
@@ -22,12 +22,12 @@ jobs:
 
     steps:
       - name: Checks-out repository
-        uses: actions/checkout at v3
+        uses: actions/checkout at b4ffde65f46336ab88eb53be808477a3936bae11 # v4
         with:
           fetch-depth: 0
 
       - name: Set up Python
-        uses: actions/setup-python at v4
+        uses: actions/setup-python at v5
         with:
           python-version: '3.10'
 
@@ -93,7 +93,7 @@ jobs:
           asset_content_type: application/gzip
 
       - name: Make the created files available
-        uses: actions/upload-artifact at v3
+        uses: actions/upload-artifact at v4
         if: always()
         with:
           name: artifacts


=====================================
.github/workflows/docker.yml
=====================================
@@ -49,12 +49,12 @@ jobs:
 
     steps:
       - name: Checkout
-        uses: actions/checkout at v3
+        uses: actions/checkout at b4ffde65f46336ab88eb53be808477a3936bae11 # v4
         with:
           fetch-depth: 0
       - name: Docker meta
         id: meta
-        uses: docker/metadata-action at v4
+        uses: docker/metadata-action at v5
         with:
           images: osgeo/grass-gis
           tags: |
@@ -66,17 +66,17 @@ jobs:
             latest=false
             suffix=-${{ matrix.os }}
       - name: Set up QEMU
-        uses: docker/setup-qemu-action at v2
+        uses: docker/setup-qemu-action at v3
       - name: Set up Docker Buildx
-        uses: docker/setup-buildx-action at v2
+        uses: docker/setup-buildx-action at v3
       - name: Login to DockerHub
-        uses: docker/login-action at v2
+        uses: docker/login-action at v3
         with:
           username: ${{ secrets.DOCKERHUB_USERNAME }}
           password: ${{ secrets.DOCKERHUB_TOKEN  }}
       - name: Build and push
         id: docker_build
-        uses: docker/build-push-action at v4
+        uses: docker/build-push-action at v5
         with:
           push: true
           pull: true


=====================================
.github/workflows/gcc.yml
=====================================
@@ -35,7 +35,7 @@ jobs:
       fail-fast: false
 
     steps:
-      - uses: actions/checkout at v3
+      - uses: actions/checkout at b4ffde65f46336ab88eb53be808477a3936bae11 # v4
       - name: Get dependencies
         run: |
           sudo apt-get update -y


=====================================
.github/workflows/osgeo4w.yml
=====================================
@@ -32,7 +32,7 @@ jobs:
         run: |
           git config --global core.autocrlf false
           git config --global core.eol lf
-      - uses: actions/checkout at v3
+      - uses: actions/checkout at b4ffde65f46336ab88eb53be808477a3936bae11 # v4
       - uses: msys2/setup-msys2 at v2
         with:
           path-type: inherit


=====================================
.github/workflows/pytest.yml
=====================================
@@ -30,10 +30,10 @@ jobs:
     runs-on: ${{ matrix.os }}
 
     steps:
-      - uses: actions/checkout at v3
+      - uses: actions/checkout at b4ffde65f46336ab88eb53be808477a3936bae11 # v4
 
       - name: Set up Python
-        uses: actions/setup-python at v4
+        uses: actions/setup-python at v5
         with:
           python-version: ${{ matrix.python-version }}
 


=====================================
.github/workflows/ubuntu.yml
=====================================
@@ -26,7 +26,7 @@ jobs:
     strategy:
       matrix:
         include:
-          - name: '22.04'
+          - name: "22.04"
             os: ubuntu-22.04
             config: ubuntu-22.04
           # This is without optional things but it still keeps things useful,
@@ -38,7 +38,7 @@ jobs:
       fail-fast: false
 
     steps:
-      - uses: actions/checkout at v3
+      - uses: actions/checkout at b4ffde65f46336ab88eb53be808477a3936bae11 # v4
 
       - name: Get dependencies
         run: |
@@ -86,7 +86,7 @@ jobs:
 
       - name: Make HTML test report available
         if: ${{ always() }}
-        uses: actions/upload-artifact at v3
+        uses: actions/upload-artifact at v4
         with:
           name: testreport-${{ matrix.config }}
           path: testreport


=====================================
debian/changelog
=====================================
@@ -1,3 +1,9 @@
+grass (8.3.2-1~exp1) experimental; urgency=medium
+
+  * New upstream release.
+
+ -- Bas Couwenberg <sebastic at debian.org>  Thu, 07 Mar 2024 18:18:27 +0100
+
 grass (8.3.2~rc1-1~exp1) experimental; urgency=medium
 
   * New upstream release candidate.


=====================================
gui/wxpython/startup/locdownload.py
=====================================
@@ -59,7 +59,7 @@ LOCATIONS = [
     },
     {
         "label": "Piemonte, Italy data set",
-        "url": "http://geodati.fmach.it/gfoss_geodata/libro_gfoss/grassdata_piemonte_utm32n_wgs84_grass7.tar.gz",
+        "url": "https://grass.osgeo.org/sampledata/grassdata_piemonte_utm32n_wgs84_grass7.tar.gz",
     },
     {
         "label": "Slovakia 3D precipitation voxel data set",


=====================================
include/VERSION
=====================================
@@ -1,4 +1,4 @@
 8
 3
-2RC1
+2
 2024


=====================================
raster/r.horizon/main.c
=====================================
@@ -757,6 +757,7 @@ double horizon_height(void)
 
     tanh0 = 0.;
     length = 0;
+    zp = z_orig;
 
     height = searching();
 


=====================================
raster/r.horizon/testsuite/test_r_horizon.py
=====================================
@@ -144,6 +144,12 @@ class TestHorizon(TestCase):
         stdout = module.outputs.stdout
         self.assertMultiLineEqual(first=ref2, second=stdout)
 
+        # include nulls along the edge
+        self.runModule("g.region", raster="elevation", w="w-100")
+        self.assertModule(module)
+        stdout = module.outputs.stdout
+        self.assertMultiLineEqual(first=ref2, second=stdout)
+
     def test_point_mode_multiple_direction_artificial(self):
         """Test mode with 1 point and multiple directions with artificial surface"""
         module = SimpleModule(


=====================================
raster/r.texture/r.texture.html
=====================================
@@ -52,8 +52,8 @@ It can be used in supervised classification algorithms such as
 or for the identification of objects in <a href="i.segment.html">i.segment</a>,
 and/or for the characterization of these objects and thus, for example, as one
 of the raster inputs of the
-<a href="https://grass.osgeo.org/grass8/manuals/addons/i.segment.stats.html">
-	i.segment.stats</a> addon.
+<a href="https://grass.osgeo.org/grass-stable/manuals/addons/i.segment.stats.html">i.segment.stats</a>
+addon.
 
 <p>
 In general, several variables constitute texture: differences in grey level values,
@@ -68,7 +68,15 @@ level co-occurrence matrix as described by Haralick et al (1973). This matrix
 is a two-dimensional histogram of grey levels for a pair of pixels which are
 separated by a fixed spatial relationship. The matrix approximates the joint
 probability distribution of a pair of pixels. Several texture measures are
-directly computed from the grey level co-occurrence matrix.
+directly computed from the Grey Level Co-occurrence Matrix (GLCM).
+
+The provided measures can be categorized under first-order and
+second-order statistics, with each playing a unique role in texture
+analysis. First-order statistics consider the distribution of
+individual pixel values without regard to spatial relationships, while
+second-order statistics, particularly those derived from the Grey Level
+Co-occurrence Matrix (GLCM), consider the spatial relationship of
+pixels.
 
 <p>
 The following part offers brief explanations of the Haralick et al texture
@@ -76,24 +84,45 @@ measures (after Jensen 1996).
 
 <h3>First-order statistics in the spatial domain</h3>
 <ul>
-<li> Sum Average (SA)</li>
+<li> Sum Average (SA):
+ Sum Average measures the average gray level intensity of the sum of
+ pixel pairs within the moving window. It reflects the average intensity
+ of pixel pairs at specific distances and orientations, highlighting the
+ overall brightness level within the area.</li>
 
 <li> Entropy (ENT):
  This measure analyses the randomness. It is high when the values of the
  moving window have similar values. It is low when the values are close
- to either 0 or 1 (i.e. when the pixels in the local window are uniform).</li>
+ to either 0 or 1 (i.e. when the pixels in the local window are
+ uniform).</li>
 
-<li> Difference Entropy (DE)</li>
+<li> Difference Entropy (DE):
+ This metric quantifies the randomness or unpredictability in the
+ distribution of differences between the grey levels of pixel pairs. It
+ is a measure of the entropy of the pixel-pair difference histogram,
+ capturing texture granularity.</li>
 
-<li> Sum Entropy (SE)</li>
+<li> Sum Entropy (SE): Similar to Difference Entropy, Sum Entropy measures
+ the randomness or unpredictability, but in the context of the sum of the
+ grey levels of pixel pairs. It evaluates the entropy of the pixel-pair
+ sum distribution, providing insight into the complexity of texture in
+ terms of intensity variation.</li>
 
 <li> Variance (VAR):
-  A measure of gray tone variance within the moving window (second-order
-moment about the mean)</li>
-
-<li> Difference Variance (DV)</li>
-
-<li> Sum Variance (SV)</li>
+ A measure of gray tone variance within the moving window (second-order
+ moment about the mean)</li>
+
+<li> Difference Variance (DV):
+ This is a measure of the variance or spread of the differences in grey
+ levels between pairs of pixels within the moving window. It quantifies
+ the contrast variability between pixels, indicating texture smoothness
+ or roughness.</li>
+
+<li> Sum Variance (SV):
+ In contrast to Difference Variance, Sum Variance measures the variance
+ of the sum of grey levels of pixel pairs. It assesses the variability
+ in the intensity levels of pairs of pixels, contributing to an
+ understanding of texture brightness or intensity variation.</li>
 </ul>
 
 Note that measures "mean", "kurtosis", "range", "skewness", and "standard
@@ -128,9 +157,19 @@ level co-occurrence matrices (GLCM; after Haralick 1979).
  pixels. Typically high, when the scale of local texture is larger than the
  <em>distance</em>.</li>
 
-<li> Information Measures of Correlation (MOC)</li>
-
-<li> Maximal Correlation Coefficient (MCC)</li>
+<li> Information Measures of Correlation (MOC):
+ These measures evaluate the complexity of the texture in terms of the
+ mutual dependence between the grey levels of pixel pairs. They
+ quantify how one pixel value informs or correlates with another,
+ offering insight into pattern predictability and structure regularity.</li>
+
+<li> Maximal Correlation Coefficient (MCC):
+ This statistic measures the highest correlation between any two
+ features of the texture, providing a single value that summarizes the
+ degree of linear dependency between grey levels in the texture. It's
+ often used to assess the overall correlation in the image, indicating
+ how predictable the texture patterns are from one pixel to the
+ next.</li>
 </ul>
 
 <p>


=====================================
scripts/db.dropcolumn/db.dropcolumn.py
=====================================
@@ -35,6 +35,13 @@
 # % required : yes
 # %end
 
+# %option G_OPT_DB_DATABASE
+# %end
+
+# %option G_OPT_DB_DRIVER
+# % options: dbf,odbc,ogr,sqlite,pg
+# %end
+
 import sys
 import string
 
@@ -45,14 +52,19 @@ import grass.script as gscript
 def main():
     table = options["table"]
     column = options["column"]
+    database = options["database"]
+    driver = options["driver"]
     force = flags["f"]
 
     # check if DB parameters are set, and if not set them.
     gscript.run_command("db.connect", flags="c")
 
-    kv = gscript.db_connection()
-    database = kv["database"]
-    driver = kv["driver"]
+    if not database or not driver:
+        kv = gscript.db_connection()
+        if not database:
+            database = kv["database"]
+        if not driver:
+            driver = kv["driver"]
     # schema needed for PG?
 
     if force:
@@ -67,7 +79,10 @@ def main():
             % column
         )
 
-    cols = [f[0] for f in gscript.db_describe(table)["cols"]]
+    cols = [
+        f[0]
+        for f in gscript.db_describe(table, database=database, driver=driver)["cols"]
+    ]
     if column not in cols:
         gscript.fatal(_("Column <%s> not found in table") % column)
 


=====================================
scripts/db.in.ogr/db.in.ogr.py
=====================================
@@ -143,6 +143,13 @@ def main():
         else:
             grass.fatal(_("Input DSN <%s> not found or not readable") % input)
 
+    # save db connection settings of the output
+    f = grass.vector_layer_db(output, "1")
+
+    table = f["table"]
+    database = f["database"]
+    driver = f["driver"]
+
     # rename ID col if requested from cat to new name
     if key:
         grass.write_command(
@@ -173,14 +180,16 @@ def main():
         "db.dropcolumn",
         quiet=True,
         flags="f",
-        table=output,
+        table=table,
+        database=database,
+        driver=driver,
         column="cat",
         stdout=nuldev,
         stderr=nuldev,
     )
     nuldev.close()
 
-    records = grass.db_describe(output)["nrows"]
+    records = grass.db_describe(table, database=database, driver=driver)["nrows"]
     grass.message(_("Imported table <%s> with %d rows") % (output, records))
 
 


=====================================
scripts/v.db.renamecolumn/v.db.renamecolumn.py
=====================================
@@ -90,7 +90,7 @@ def main():
 
     # describe old col
     oldcoltype = None
-    for f in grass.db_describe(table)["cols"]:
+    for f in grass.db_describe(table, database=database, driver=driver)["cols"]:
         if f[0] != oldcol:
             continue
         oldcoltype = f[1]



View it on GitLab: https://salsa.debian.org/debian-gis-team/grass/-/compare/6faa753d12a545f52a5e501b3f7f77bd89534eed...a49f80887d62cf961f4daf89bce2796577fb00d8

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/grass/-/compare/6faa753d12a545f52a5e501b3f7f77bd89534eed...a49f80887d62cf961f4daf89bce2796577fb00d8
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20240307/5d294c1d/attachment-0001.htm>


More information about the Pkg-grass-devel mailing list