Bug report #1629
parameter name changed in v.buffer and r.surf.fractal from GRASS 6.3 to GRASS 6.4
Status: | Closed | ||
---|---|---|---|
Priority: | Low | ||
Assignee: | Lorenzo Masini | ||
Category: | GRASS | ||
Affected QGIS version: | Regression?: | No | |
Operating System: | All | Easy fix?: | No |
Pull Request or Patch supplied: | Resolution: | fixed | |
Crashes QGIS or corrupts data: | Copied to github as #: | 11689 |
Description
In GRASS64, v.buffer is deprecated, and v.buffer2 should be used instead.
Looks like the "buffer" parameter was removed in 6.4. v.buffer
--interface-description doesn't report it anymore (thanks jef for pointing out).
As a result, the command is not working:
Cannot find key buffer
History
#1 Updated by Markus Neteler over 15 years ago
I cannot reproduce this:
GRASS 6.4.0svn (spearfish60):~ > v.buffer --interface-description <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE task SYSTEM "grass-interface.dtd"> <task name="v.buffer"> <description> Creates a buffer around features of given type (areas must contain centroid). </description> <keywords> vector, buffer </keywords>
The new code is obviously named "v.buffer" as before:
GRASS 6.4.0svn (spearfish60):~/grass64 > head vector/v.buffer2/Makefile MODULE_TOPDIR = ../.. PGM = v.buffer ...
The GRASS 6 production line should maintain full compatibility even if a module is rewritten from scratch as in the case of v.buffer.
GRASS 6.4.0svn (spearfish60):~/grass64 > v.buffer help Description: Creates a buffer around features of given type (areas must contain centroid). Keywords: vector, buffer Usage: v.buffer [-sc] input=name output=name [type=string[,string,...]] [layer=value] [distance=value] [minordistance=value] [angle=value] [bufcolumn=name] [scale=value] [tolerance=value] [--overwrite] [--verbose] [--quiet]
Ha, I see the problem:
# GRASS 6.3, http://grass.osgeo.org/grass63/manuals/html63_user/v.buffer.html: buffer=float Buffer distance in map units # GRASS 6.4, http://grass.osgeo.org/grass64/manuals/html64_user/v.buffer.html: distance=float Buffer distance along major axis in map units
This is bad and needs to be fixed in GRASS unless QGIS can update "buffer" to "distance" in the XML file.
Markus
#2 Updated by Paolo Cavallini over 15 years ago
I would suggest to change it in GRASS. If this is not possible, please let us know, and we'll change the qgis module (but I do not like the idea of having two different modules, one for grass63 and one for grass64, even though they can be selected during compilation)
#3 Updated by Markus Neteler over 15 years ago
- Status changed from Open to Closed
- Resolution set to fixed
Done. From grass-dev:
On Thu, Apr 23, 2009 at 1:36 PM, Hamish wrote:
in devbr6 and relbr6_4 I have added backwards compatibility aliases for
the removed options. so all should be ok again.Hamish
Closing.
#4 Updated by hamish - over 15 years ago
Markus:
unless QGIS can update "buffer" to "distance" in the XML file.
Even though the old name now works again, the XML file should be updated for forward compatibility with GRASS 7, when the old name will be removed again. (currently both names for it work)
Hamish
#5 Updated by hamish - over 15 years ago
(but I do not like the idea of having two different modules,
one for grass63 and one for grass64, even though they can be
selected during compilation)
... ok, leave it as buffer= then.
H
#6 Updated by Paolo Cavallini over 15 years ago
- Resolution deleted (
fixed) - Status changed from Closed to Feedback
I reopen the ticket, to remember changing the option when grass63 will be deprecated, and no longer widely available.
#7 Updated by Paolo Cavallini over 15 years ago
Same thing happens for r.surf.fractal (option d=float has been changed in option dimension=float), so it does not work with grass64
#8 Updated by hamish - over 15 years ago
Replying to [comment:8 pcav]:
Same thing happens for r.surf.fractal (option d=float has been
changed in option dimension=float), so it does not work with
grass64
that one should not matter, the parser will accept shorter names.
See http://grass.osgeo.org/wiki/Module_command_line_parser
I reopen the ticket, to remember changing the option when
grass63 will be deprecated, and no longer widely available.
maybe better just to leave the XML file as it is and close the ticket. A stable GRASS 7 release may be a long time away.
Hamish
#9 Updated by hamish - over 15 years ago
Replying to [comment:8 pcav]:
Same thing happens for r.surf.fractal (option d=float has been
changed in option dimension=float), so it does not work with
grass64
Hamish ha scritto:
no? what is the exact error message?
Paolo:
option d not recognized
Using grep I can not find any trace of that message in the latest qgis trunk/ SVN or GRASS's libgis. Has it been retranslated?
does QGIS's grass toolbox double-check the module options using the 'g.module --interface-description' or does it just try to run what the programmer/user threw at it and see what happens?
??
Hamish
#10 Updated by Paolo Cavallini over 15 years ago
An useful comment by neteler:
I feel that it is a parsing problem in QGIS that might expect full names. If so it should not do so.
#11 Updated by Lorenzo Masini over 15 years ago
- Status changed from Feedback to Closed
- Resolution set to fixed
Fixed in commit 59750316 (SVN r10904).
#12 Updated by Paolo Cavallini over 15 years ago
- Resolution deleted (
fixed) - Status changed from Closed to Feedback
#13 Updated by Paolo Cavallini over 15 years ago
- Status changed from Feedback to Open
#14 Updated by Paolo Cavallini over 15 years ago
- Status changed from Open to Closed
- Resolution set to fixed