From 3cddff2246678a981af163baa1f7b5f792d49461 Mon Sep 17 00:00:00 2001 From: "M. Hamish Bowman" Date: Thu, 5 Sep 2024 17:08:17 +1200 Subject: [PATCH 01/11] v.surf.icw: modernize for Python3 and current GRASS parser behavior --- src/vector/v.surf.icw/v.surf.icw.html | 3 ++- src/vector/v.surf.icw/v.surf.icw.py | 20 ++++++++------------ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/vector/v.surf.icw/v.surf.icw.html b/src/vector/v.surf.icw/v.surf.icw.html index 06682ed369..6cebb0f3df 100644 --- a/src/vector/v.surf.icw/v.surf.icw.html +++ b/src/vector/v.surf.icw/v.surf.icw.html @@ -134,5 +134,6 @@

SEE ALSO

AUTHOR

Hamish Bowman
-Department of Marine Science,
+Department of Geology
+University of Otago
Dunedin, New Zealand
diff --git a/src/vector/v.surf.icw/v.surf.icw.py b/src/vector/v.surf.icw/v.surf.icw.py index 349e5258ff..84a08e6682 100755 --- a/src/vector/v.surf.icw/v.surf.icw.py +++ b/src/vector/v.surf.icw/v.surf.icw.py @@ -1,8 +1,7 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 ############################################################################# # # MODULE: v.surf.icw -# version $Id$ # # AUTHOR: M. Hamish Bowman, Dunedin, New Zealand # Originally written aboard the NZ DoC ship M/V Renown, @@ -13,7 +12,7 @@ # PURPOSE: Like IDW interpolation, but distance is cost to get to any # other site. # -# COPYRIGHT: (c) 2003-2014 Hamish Bowman +# COPYRIGHT: (c) 2003-2024 Hamish Bowman # This program is free software under the GNU General Public # License (>=v2). Read the file COPYING that comes with GRASS # for details. @@ -345,7 +344,7 @@ def main(): ) # stall to wait for the nth worker to complete, if (i + 1) % workers == 0: - # print 'stalling ...' + # print('stalling ...') proc[i].wait() # make sure everyone is finished @@ -393,7 +392,7 @@ def main(): ) # stall to wait for the nth worker to complete, if (i + 1) % workers == 0: - # print 'stalling ...' + # print('stalling ...') proc[i].wait() # r.patch in=1by_cost_site_sqrd.${NUM},tmp_idw_cost_val_$$ out=1by_cost_site_sqrd.${NUM} --o @@ -415,8 +414,7 @@ def main(): ####################################################### #### Step 3) find sum(cost^2) - grass.verbose("") - grass.verbose(_("Finding sum of squares ...")) + grass.verbose("\n" + _("Finding sum of squares ...")) # todo: test if MASK exists already, fatal exit if it does? if post_mask: @@ -450,8 +448,7 @@ def main(): ####################################################### #### Step 4) ( 1/di^2 / sum(1/d^2) ) * ai - grass.verbose("") - grass.message(_("Creating partial weights ...")) + grass.message("\n" + _("Creating partial weights ...")) proc = {} num = 1 @@ -534,8 +531,7 @@ def main(): # grass.run_command('g.list', type = 'raster', mapset = '.') ####################################################### - grass.message("") - grass.message(_("Calculating final values ...")) + grass.message("\n" + _("Calculating final values ...")) input_maps = tmp_base + "partial.%05d" % 1 for i in range(2, n + 1): @@ -550,7 +546,7 @@ def main(): grass.run_command("r.colors", map=output, color="bcyr", quiet=True) grass.run_command( - "r.support", map=output, history="", title="Inverse cost-weighted interpolation" + "r.support", map=output, history=" ", title="Inverse cost-weighted interpolation" ) grass.run_command("r.support", map=output, history="v.surf.icw interpolation:") grass.run_command( From 09c0c2c001ec3a6eb7621de26b605af82b4d5e03 Mon Sep 17 00:00:00 2001 From: "M. Hamish Bowman" Date: Thu, 5 Sep 2024 18:18:10 +1200 Subject: [PATCH 02/11] v.surf.icw: bugfix incomplete change in trac bug # 2574 --- src/vector/v.surf.icw/v.surf.icw.py | 31 ++++++++++++++++++----------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/vector/v.surf.icw/v.surf.icw.py b/src/vector/v.surf.icw/v.surf.icw.py index 84a08e6682..102a50e22e 100755 --- a/src/vector/v.surf.icw/v.surf.icw.py +++ b/src/vector/v.surf.icw/v.surf.icw.py @@ -134,10 +134,12 @@ def cleanup(): grass.verbose(_("Cleanup..")) tmp_base = "tmp_icw_" + str(os.getpid()) + "_" - grass.run_command( - "g.remove", flags="f", type="raster", pattern=tmp_base + "*", quiet=True - ) - grass.try_remove(TMP_FILE) + # grass.run_command('g.list', type='raster', mapset='.', flags='p') + result = grass.list_strings('raster', pattern=tmp_base + "*", mapset='.') + if len(result) > 0: + grass.run_command( + "g.remove", flags="f", type="raster", pattern=tmp_base + "*", quiet=True + ) def main(): @@ -423,14 +425,12 @@ def main(): grass.message(_("Summation of cost weights ...")) - input_maps = tmp_base + "1by_cost_site_sq.%05d" % 1 - - global TMP_FILE TMP_FILE = grass.tempfile() with open(TMP_FILE, "w") as maplist: - for i in range(2, n + 1): + for i in range(1, n + 1): mapname = "%s1by_cost_site_sq.%05d" % (tmp_base, i) maplist.write(mapname + "\n") + maplist.close() # grass.run_command('g.list', type = 'raster', mapset = '.') @@ -442,6 +442,8 @@ def main(): except CalledModuleError: grass.fatal(_("Problem running %s") % "r.series") + grass.try_remove(TMP_FILE) + if post_mask: grass.message(_("Removing post_mask <%s>"), post_mask) grass.run_command("g.remove", flags="f", name="MASK", quiet=True) @@ -533,15 +535,20 @@ def main(): ####################################################### grass.message("\n" + _("Calculating final values ...")) - input_maps = tmp_base + "partial.%05d" % 1 - for i in range(2, n + 1): - input_maps += ",%spartial.%05d" % (tmp_base, i) + TMP_FILE = grass.tempfile() + with open(TMP_FILE, "w") as maplist: + for i in range(1, n + 1): + mapname = "%spartial.%05d" % (tmp_base, i) + maplist.write(mapname + "\n") + maplist.close() try: - grass.run_command("r.series", method="sum", input=input_maps, output=output) + grass.run_command("r.series", method="sum", file=TMP_FILE, output=output) except CalledModuleError: grass.fatal(_("Problem running %s") % "r.series") + grass.try_remove(TMP_FILE) + # TODO: r.patch in v.to.rast of values at exact seed site locations. currently set to null grass.run_command("r.colors", map=output, color="bcyr", quiet=True) From 392143b8a28e82d0194b21dfbfbc2a16163ee22b Mon Sep 17 00:00:00 2001 From: "M. Hamish Bowman" Date: Thu, 5 Sep 2024 18:34:13 +1200 Subject: [PATCH 03/11] v.surf.icw: deal to trailing whitespace --- src/vector/v.surf.icw/v.surf.icw.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vector/v.surf.icw/v.surf.icw.py b/src/vector/v.surf.icw/v.surf.icw.py index 102a50e22e..5592d62b53 100755 --- a/src/vector/v.surf.icw/v.surf.icw.py +++ b/src/vector/v.surf.icw/v.surf.icw.py @@ -539,7 +539,7 @@ def main(): with open(TMP_FILE, "w") as maplist: for i in range(1, n + 1): mapname = "%spartial.%05d" % (tmp_base, i) - maplist.write(mapname + "\n") + maplist.write(mapname + "\n") maplist.close() try: From 34f475edbaaa31de6d47dbf39c8959883cc48c44 Mon Sep 17 00:00:00 2001 From: "M. Hamish Bowman" Date: Thu, 5 Sep 2024 17:08:17 +1200 Subject: [PATCH 04/11] v.surf.icw: modernize for Python3 and current GRASS parser behavior --- src/vector/v.surf.icw/v.surf.icw.html | 3 ++- src/vector/v.surf.icw/v.surf.icw.py | 20 ++++++++------------ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/vector/v.surf.icw/v.surf.icw.html b/src/vector/v.surf.icw/v.surf.icw.html index 06682ed369..6cebb0f3df 100644 --- a/src/vector/v.surf.icw/v.surf.icw.html +++ b/src/vector/v.surf.icw/v.surf.icw.html @@ -134,5 +134,6 @@

SEE ALSO

AUTHOR

Hamish Bowman
-Department of Marine Science,
+Department of Geology
+University of Otago
Dunedin, New Zealand
diff --git a/src/vector/v.surf.icw/v.surf.icw.py b/src/vector/v.surf.icw/v.surf.icw.py index 349e5258ff..84a08e6682 100755 --- a/src/vector/v.surf.icw/v.surf.icw.py +++ b/src/vector/v.surf.icw/v.surf.icw.py @@ -1,8 +1,7 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 ############################################################################# # # MODULE: v.surf.icw -# version $Id$ # # AUTHOR: M. Hamish Bowman, Dunedin, New Zealand # Originally written aboard the NZ DoC ship M/V Renown, @@ -13,7 +12,7 @@ # PURPOSE: Like IDW interpolation, but distance is cost to get to any # other site. # -# COPYRIGHT: (c) 2003-2014 Hamish Bowman +# COPYRIGHT: (c) 2003-2024 Hamish Bowman # This program is free software under the GNU General Public # License (>=v2). Read the file COPYING that comes with GRASS # for details. @@ -345,7 +344,7 @@ def main(): ) # stall to wait for the nth worker to complete, if (i + 1) % workers == 0: - # print 'stalling ...' + # print('stalling ...') proc[i].wait() # make sure everyone is finished @@ -393,7 +392,7 @@ def main(): ) # stall to wait for the nth worker to complete, if (i + 1) % workers == 0: - # print 'stalling ...' + # print('stalling ...') proc[i].wait() # r.patch in=1by_cost_site_sqrd.${NUM},tmp_idw_cost_val_$$ out=1by_cost_site_sqrd.${NUM} --o @@ -415,8 +414,7 @@ def main(): ####################################################### #### Step 3) find sum(cost^2) - grass.verbose("") - grass.verbose(_("Finding sum of squares ...")) + grass.verbose("\n" + _("Finding sum of squares ...")) # todo: test if MASK exists already, fatal exit if it does? if post_mask: @@ -450,8 +448,7 @@ def main(): ####################################################### #### Step 4) ( 1/di^2 / sum(1/d^2) ) * ai - grass.verbose("") - grass.message(_("Creating partial weights ...")) + grass.message("\n" + _("Creating partial weights ...")) proc = {} num = 1 @@ -534,8 +531,7 @@ def main(): # grass.run_command('g.list', type = 'raster', mapset = '.') ####################################################### - grass.message("") - grass.message(_("Calculating final values ...")) + grass.message("\n" + _("Calculating final values ...")) input_maps = tmp_base + "partial.%05d" % 1 for i in range(2, n + 1): @@ -550,7 +546,7 @@ def main(): grass.run_command("r.colors", map=output, color="bcyr", quiet=True) grass.run_command( - "r.support", map=output, history="", title="Inverse cost-weighted interpolation" + "r.support", map=output, history=" ", title="Inverse cost-weighted interpolation" ) grass.run_command("r.support", map=output, history="v.surf.icw interpolation:") grass.run_command( From f4b5d744887fe8a236ec527186f92112a2900853 Mon Sep 17 00:00:00 2001 From: "M. Hamish Bowman" Date: Thu, 5 Sep 2024 18:18:10 +1200 Subject: [PATCH 05/11] v.surf.icw: bugfix incomplete change in trac bug # 2574 --- src/vector/v.surf.icw/v.surf.icw.py | 31 ++++++++++++++++++----------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/vector/v.surf.icw/v.surf.icw.py b/src/vector/v.surf.icw/v.surf.icw.py index 84a08e6682..102a50e22e 100755 --- a/src/vector/v.surf.icw/v.surf.icw.py +++ b/src/vector/v.surf.icw/v.surf.icw.py @@ -134,10 +134,12 @@ def cleanup(): grass.verbose(_("Cleanup..")) tmp_base = "tmp_icw_" + str(os.getpid()) + "_" - grass.run_command( - "g.remove", flags="f", type="raster", pattern=tmp_base + "*", quiet=True - ) - grass.try_remove(TMP_FILE) + # grass.run_command('g.list', type='raster', mapset='.', flags='p') + result = grass.list_strings('raster', pattern=tmp_base + "*", mapset='.') + if len(result) > 0: + grass.run_command( + "g.remove", flags="f", type="raster", pattern=tmp_base + "*", quiet=True + ) def main(): @@ -423,14 +425,12 @@ def main(): grass.message(_("Summation of cost weights ...")) - input_maps = tmp_base + "1by_cost_site_sq.%05d" % 1 - - global TMP_FILE TMP_FILE = grass.tempfile() with open(TMP_FILE, "w") as maplist: - for i in range(2, n + 1): + for i in range(1, n + 1): mapname = "%s1by_cost_site_sq.%05d" % (tmp_base, i) maplist.write(mapname + "\n") + maplist.close() # grass.run_command('g.list', type = 'raster', mapset = '.') @@ -442,6 +442,8 @@ def main(): except CalledModuleError: grass.fatal(_("Problem running %s") % "r.series") + grass.try_remove(TMP_FILE) + if post_mask: grass.message(_("Removing post_mask <%s>"), post_mask) grass.run_command("g.remove", flags="f", name="MASK", quiet=True) @@ -533,15 +535,20 @@ def main(): ####################################################### grass.message("\n" + _("Calculating final values ...")) - input_maps = tmp_base + "partial.%05d" % 1 - for i in range(2, n + 1): - input_maps += ",%spartial.%05d" % (tmp_base, i) + TMP_FILE = grass.tempfile() + with open(TMP_FILE, "w") as maplist: + for i in range(1, n + 1): + mapname = "%spartial.%05d" % (tmp_base, i) + maplist.write(mapname + "\n") + maplist.close() try: - grass.run_command("r.series", method="sum", input=input_maps, output=output) + grass.run_command("r.series", method="sum", file=TMP_FILE, output=output) except CalledModuleError: grass.fatal(_("Problem running %s") % "r.series") + grass.try_remove(TMP_FILE) + # TODO: r.patch in v.to.rast of values at exact seed site locations. currently set to null grass.run_command("r.colors", map=output, color="bcyr", quiet=True) From dc38a04bbf0c52eb854970c62242bb2bc1de521f Mon Sep 17 00:00:00 2001 From: "M. Hamish Bowman" Date: Thu, 5 Sep 2024 18:34:13 +1200 Subject: [PATCH 06/11] v.surf.icw: deal to trailing whitespace --- src/vector/v.surf.icw/v.surf.icw.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vector/v.surf.icw/v.surf.icw.py b/src/vector/v.surf.icw/v.surf.icw.py index 102a50e22e..5592d62b53 100755 --- a/src/vector/v.surf.icw/v.surf.icw.py +++ b/src/vector/v.surf.icw/v.surf.icw.py @@ -539,7 +539,7 @@ def main(): with open(TMP_FILE, "w") as maplist: for i in range(1, n + 1): mapname = "%spartial.%05d" % (tmp_base, i) - maplist.write(mapname + "\n") + maplist.write(mapname + "\n") maplist.close() try: From 3fd8e45014d91006a139e520035e3a885a79cdef Mon Sep 17 00:00:00 2001 From: "M. Hamish Bowman" Date: Fri, 6 Sep 2024 11:47:19 +1200 Subject: [PATCH 07/11] v.surf.icw: make indent checks happy --- src/vector/v.surf.icw/v.surf.icw.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/vector/v.surf.icw/v.surf.icw.py b/src/vector/v.surf.icw/v.surf.icw.py index 5592d62b53..ee1663428d 100755 --- a/src/vector/v.surf.icw/v.surf.icw.py +++ b/src/vector/v.surf.icw/v.surf.icw.py @@ -135,15 +135,14 @@ def cleanup(): grass.verbose(_("Cleanup..")) tmp_base = "tmp_icw_" + str(os.getpid()) + "_" # grass.run_command('g.list', type='raster', mapset='.', flags='p') - result = grass.list_strings('raster', pattern=tmp_base + "*", mapset='.') + result = grass.list_strings("raster", pattern=tmp_base + "*", mapset=".") if len(result) > 0: - grass.run_command( - "g.remove", flags="f", type="raster", pattern=tmp_base + "*", quiet=True - ) + grass.run_command( + "g.remove", flags="f", type="raster", pattern=tmp_base + "*", quiet=True + ) def main(): - pts_input = options["input"] output = options["output"] cost_map = options["cost_map"] @@ -553,7 +552,10 @@ def main(): grass.run_command("r.colors", map=output, color="bcyr", quiet=True) grass.run_command( - "r.support", map=output, history=" ", title="Inverse cost-weighted interpolation" + "r.support", + map=output, + history=" ", + title="Inverse cost-weighted interpolation", ) grass.run_command("r.support", map=output, history="v.surf.icw interpolation:") grass.run_command( From 5a407e71d0d8d27f4a68da8ccb5bc8f7d66b054f Mon Sep 17 00:00:00 2001 From: "M. Hamish Bowman" Date: Fri, 6 Sep 2024 13:48:05 +1200 Subject: [PATCH 08/11] v.surf.icw: make less chatty --- src/vector/v.surf.icw/v.surf.icw.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/vector/v.surf.icw/v.surf.icw.py b/src/vector/v.surf.icw/v.surf.icw.py index ee1663428d..e7b4d43d48 100755 --- a/src/vector/v.surf.icw/v.surf.icw.py +++ b/src/vector/v.surf.icw/v.surf.icw.py @@ -271,16 +271,16 @@ def main(): data_value = grass.vector_db_select(pts_input, columns=column)["values"][cat][0] if not data_value: - grass.message( + grass.verbose( _("Site %d of %d, e=%.4f n=%.4f cat=%d data=?") % (num, n, float(easting), float(northing), cat) ) - grass.message(_(" -- Skipping, no data here.")) + grass.verbose(_(" -- Skipping, no data here.")) del points_list[num - 1] n -= 1 continue else: - grass.message( + grass.verbose( _("Site %d of %d, e=%.4f n=%.4f cat=%d data=%.8g") % (num, n, float(easting), float(northing), cat, float(data_value)) ) @@ -296,7 +296,7 @@ def main(): .split("|")[-1] ) if rast_val == "*": - grass.message(_(" -- Skipping, point lays outside of cost_map.")) + grass.verbose(_(" -- Skipping, point lays outside of cost_map.")) del points_list[num - 1] n -= 1 continue @@ -462,12 +462,12 @@ def main(): # failsafe: at this point the data values should all be valid if not data_value: - grass.message(_("Site %d of %d, cat = %d, data value = ?") % (num, n, cat)) - grass.message(_(" -- Skipping, no data here. [Probably programmer error]")) + grass.verbose(_("Site %d of %d, cat = %d, data value = ?") % (num, n, cat)) + grass.verbose(_(" -- Skipping, no data here. [Probably programmer error]")) n -= 1 continue else: - grass.message( + grass.verbose( _("Site %d of %d, cat = %d, data value = %.8g") % (num, n, cat, data_value) ) @@ -483,7 +483,7 @@ def main(): .split("|")[-1] ) if rast_val == "*": - grass.message( + grass.verbose( _( " -- Skipping, point lays outside of cost_map. [Probably programmer error]" ) From 34e26cc5af263254e9f80413e0cca235a15bc99e Mon Sep 17 00:00:00 2001 From: "M. Hamish Bowman" Date: Fri, 6 Sep 2024 14:01:57 +1200 Subject: [PATCH 09/11] v.surf.icw: make less spacey --- src/vector/v.surf.icw/v.surf.icw.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/vector/v.surf.icw/v.surf.icw.py b/src/vector/v.surf.icw/v.surf.icw.py index e7b4d43d48..86c3f048a1 100755 --- a/src/vector/v.surf.icw/v.surf.icw.py +++ b/src/vector/v.surf.icw/v.surf.icw.py @@ -327,6 +327,7 @@ def main(): if proc[i].wait() != 0: grass.fatal(_("Problem running %s") % "r.cost") + grass.verbose("\n") grass.message(_("Removing anomalies at site positions ...")) proc = {} @@ -449,7 +450,8 @@ def main(): ####################################################### #### Step 4) ( 1/di^2 / sum(1/d^2) ) * ai - grass.message("\n" + _("Creating partial weights ...")) + grass.verbose("\n") + grass.message(_("Creating partial weights ...")) proc = {} num = 1 @@ -532,7 +534,8 @@ def main(): # grass.run_command('g.list', type = 'raster', mapset = '.') ####################################################### - grass.message("\n" + _("Calculating final values ...")) + grass.verbose("\n") + grass.message(_("Calculating final values ...")) TMP_FILE = grass.tempfile() with open(TMP_FILE, "w") as maplist: From 8eba0efe28c16dee61db855b3c821757adf3e759 Mon Sep 17 00:00:00 2001 From: "M. Hamish Bowman" Date: Thu, 12 Sep 2024 17:14:44 +1200 Subject: [PATCH 10/11] Use G_OPT_ standard parser options. This changes workers= to nprocs=. --- src/vector/v.surf.icw/v.surf.icw.html | 2 +- src/vector/v.surf.icw/v.surf.icw.py | 45 ++++++++------------------- 2 files changed, 14 insertions(+), 33 deletions(-) diff --git a/src/vector/v.surf.icw/v.surf.icw.html b/src/vector/v.surf.icw/v.surf.icw.html index 6cebb0f3df..91dfff582c 100644 --- a/src/vector/v.surf.icw/v.surf.icw.html +++ b/src/vector/v.surf.icw/v.surf.icw.html @@ -51,7 +51,7 @@

NOTES

-->

By default the module will run serially. To run in parallel set the -workers parameter to the desired value (typically the number +nprocs parameter to the desired value (typically the number of cores in your CPU). Alternatively, if the WORKERS environment variable is set, the number of concurrent processes will be set at that number of jobs. diff --git a/src/vector/v.surf.icw/v.surf.icw.py b/src/vector/v.surf.icw/v.surf.icw.py index 86c3f048a1..f469926f14 100755 --- a/src/vector/v.surf.icw/v.surf.icw.py +++ b/src/vector/v.surf.icw/v.surf.icw.py @@ -43,25 +43,14 @@ # % keyword: interpolation # % keyword: ICW # %End -# %option -# % key: input -# % type: string -# % gisprompt: old,vector,vector -# % description: Name of existing vector points map containing seed data -# % required : yes +# %option G_OPT_V_INPUT +# % label: Name of existing vector points map containing seed data # %end -# %option -# % key: column -# % type: string +# %option G_OPT_DB_COLUMN # % description: Column name in points map that contains data values # % required : yes # %end -# %option -# % key: output -# % type: string -# % gisprompt: new,cell,raster -# % description: Name for output raster map -# % required : yes +# %option G_OPT_R_OUTPUT # %end # %option # % key: cost_map @@ -78,19 +67,11 @@ # % options: 1-6 # % required : no # %end -# %option -# % key: layer +# %option G_OPT_V_FIELD # % type: integer -# % answer: 1 -# % description: Layer number of data in points map -# % required: no +# % label: Layer number of data in points map # %end -# %option -# % key: where -# % type: string -# % label: WHERE conditions of SQL query statement without 'where' keyword -# % description: Example: income < 1000 and inhab >= 10000 -# % required : no +# %option G_OPT_DB_WHERE # %end ##%option @@ -111,11 +92,8 @@ # % key: r # % description: Use (d^n)*log(d) instead of 1/(d^n) for radial basis function # %end -# %option -# % key: workers -# % type: integer -# % options: 1-256 -# % answer: 1 +# %option G_OPT_M_NPROCS +# % options: 1-1024 # % description: Number of parallel processes to launch # %end @@ -151,7 +129,7 @@ def main(): friction = float(options["friction"]) layer = options["layer"] where = options["where"] - workers = int(options["workers"]) + workers = int(options["nprocs"]) if workers == 1 and "WORKERS" in os.environ: workers = int(os.environ["WORKERS"]) @@ -267,6 +245,7 @@ def main(): northing = position[1] cat = int(position[-1]) + # FIXME: layer=layer probably needed here # retrieve data value from vector's attribute table: data_value = grass.vector_db_select(pts_input, columns=column)["values"][cat][0] @@ -459,6 +438,7 @@ def main(): easting = position[0] northing = position[1] cat = int(position[-1]) + # FIXME: layer=layer probably needed here data_value = grass.vector_db_select(pts_input, columns=column)["values"][cat][0] data_value = float(data_value) @@ -566,6 +546,7 @@ def main(): map=output, history=" input map=" + pts_input + " attribute column=" + column, ) + # FIXME: if layer !=1 then (layer="$layer") probably needed here grass.run_command( "r.support", map=output, From 12a709cacd0da87169430adee3a97bfce8233a03 Mon Sep 17 00:00:00 2001 From: "M. Hamish Bowman" Date: Thu, 12 Sep 2024 17:44:12 +1200 Subject: [PATCH 11/11] v.surf.icw: add screenshot to help page --- src/vector/v.surf.icw/v.surf.icw.html | 9 +++++++++ src/vector/v.surf.icw/v_surf_icw_salinity.png | Bin 0 -> 81514 bytes 2 files changed, 9 insertions(+) create mode 100644 src/vector/v.surf.icw/v_surf_icw_salinity.png diff --git a/src/vector/v.surf.icw/v.surf.icw.html b/src/vector/v.surf.icw/v.surf.icw.html index 91dfff582c..0731f43258 100644 --- a/src/vector/v.surf.icw/v.surf.icw.html +++ b/src/vector/v.surf.icw/v.surf.icw.html @@ -56,6 +56,15 @@

NOTES

variable is set, the number of concurrent processes will be set at that number of jobs. +
+ + v.surf.icw example +
+ ICW interpolation of surface salinity in Chalky and Preservation Inlets, + Fiordland, New Zealand +
+

EXAMPLE

diff --git a/src/vector/v.surf.icw/v_surf_icw_salinity.png b/src/vector/v.surf.icw/v_surf_icw_salinity.png new file mode 100644 index 0000000000000000000000000000000000000000..a180f158b4e4282cd78cbf74396106e809b7411f GIT binary patch literal 81514 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

+Tp?b>yhk4-Qf7W7fCbyr(c$RuEBl`^D4v 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�hZH?UiQhn+a0!SeYL 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