Bug report #1629

parameter name changed in v.buffer and r.surf.fractal from GRASS 6.3 to GRASS 6.4

Added by Paolo Cavallini over 11 years ago. Updated almost 11 years ago.

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 11 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 11 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 11 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 11 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 11 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 11 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 11 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 11 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 11 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 11 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 about 11 years ago

  • Status changed from Feedback to Closed
  • Resolution set to fixed

Fixed in commit 59750316 (SVN r10904).

#12 Updated by Paolo Cavallini almost 11 years ago

  • Resolution deleted (fixed)
  • Status changed from Closed to Feedback

#13 Updated by Paolo Cavallini almost 11 years ago

  • Status changed from Feedback to Open

#14 Updated by Paolo Cavallini almost 11 years ago

  • Status changed from Open to Closed
  • Resolution set to fixed

Also available in: Atom PDF