[GRASS-dev] [GRASS GIS] #2020: r.volume gives wrong results on G7

GRASS GIS trac at osgeo.org
Mon Jul 1 17:07:17 PDT 2013


#2020: r.volume gives wrong results on G7
----------------------+-----------------------------------------------------
 Reporter:  madi      |       Owner:  grass-dev@…              
     Type:  defect    |      Status:  new                      
 Priority:  normal    |   Milestone:  7.0.0                    
Component:  Raster    |     Version:  svn-trunk                
 Keywords:  r.volume  |    Platform:  Linux                    
      Cpu:  x86-64    |  
----------------------+-----------------------------------------------------

Comment(by hamish):

 Hi,

 The problem is with the handling NULL cells in the input map, or rather
 not handling them. It's this line in main.c:   `sum[i] += data_buf[col];`
 Every now and then the value which is added is -2147483648 instead of in
 the range of ~ 0-36. That happens when the clump map exists but the input
 map does not. So for your test data the slope map is 1 cell smaller than
 the basins map around the edges of the area, and those cells which are
 non-NULL in the basins map but NULL in the slope map return corrupted
 values.

 fwiw between devbr6 and trunk there don't seem to be any module changes
 beyond the conversion of G_() to Rast_() in the function names.


 I notice even in grass7 it's still trying to make an old grass5 sites_list
 points map, and also that the input map is always opened and read as a
 CELL map, even when it is floating point, so the results will be.. less
 correct than they might otherwise be due to rounding/quantization errors.
 For 0.0-1.0 normalized data that might be fatal. (conversion of the input
 to int(map*1000) with r.mapcalc gives the same error for NULLs in 'sum'
 though)


 Hamish

-- 
Ticket URL: <http://trac.osgeo.org/grass/ticket/2020#comment:3>
GRASS GIS <http://grass.osgeo.org>



More information about the grass-dev mailing list