[GRASS-dev] [GRASS GIS] #2555: v.colors: silently ignores rules given at stdin

GRASS GIS trac at osgeo.org
Thu Jan 22 07:19:50 PST 2015


#2555: v.colors: silently ignores rules given at stdin
----------------------------+-----------------------------------------------
 Reporter:  mlennert        |       Owner:  grass-dev@…              
     Type:  defect          |      Status:  new                      
 Priority:  normal          |   Milestone:  7.0.0                    
Component:  Vector          |     Version:  svn-releasebranch70      
 Keywords:  v.colors stdin  |    Platform:  Unspecified              
      Cpu:  Unspecified     |  
----------------------------+-----------------------------------------------
 {{{
 v.colors map=censusblk_swwake use=attr column=MEDIAN_AGE rules=- << EOF
 0% white
 100% red
 EOF
 }}}

 No color change in the map. However, if you create a rules file (called
 'rules' here) with the same rules:


 {{{
 v.colors map=censusblk_swwake use=attr column=MEDIAN_AGE rules=rules
 }}}

 everything works as expected.

 The reason is
 [https://trac.osgeo.org/grass/browser/grass/trunk/vector/v.colors/main.c#L282
 main.c, lines 282ff] where the code handling the stdin case is just
 commented without informing the user. IIUC, the problem is getting the min
 and max values of the attribute or cats and of deciding whether the values
 are floating point or not. For the first, the arraystats library offers
 the AS_basic_stats function. For the latter, a simple check of the column
 type should be enough (or = int if cat values are used).

 Ideally this should be fixed, but if this is not possible, the option of
 giving the rules at stdin should not be proposed in the interface
 description and help page and there should be a message that this function
 is currently not implemented. Silently ignoring is not a very user
 friendly approach...

-- 
Ticket URL: <https://trac.osgeo.org/grass/ticket/2555>
GRASS GIS <http://grass.osgeo.org>



More information about the grass-dev mailing list