[GRASS-dev] [GRASS GIS] #3197: Memory limit issues with r.univar (when used within i.segment.stats)

GRASS GIS trac at osgeo.org
Thu Nov 3 02:39:02 PDT 2016


#3197: Memory limit issues with r.univar (when used within i.segment.stats)
---------------------+-------------------------
 Reporter:  jpduffy  |      Owner:  grass-dev@…
     Type:  defect   |     Status:  new
 Priority:  normal   |  Milestone:  7.0.6
Component:  Default  |    Version:  7.0.4
 Keywords:           |        CPU:  x86-32
 Platform:  Linux    |
---------------------+-------------------------
 Hello,

 I am trying to use i.segment.stats as part of an OBIA workflow on high
 resolution raster orthomosaics. So far I have used i.segment.uspo,
 i.segment and r.clump to create a layer called gp_seg_optimum_clump. Using
 r.clump means that the clumps are sequentially numbered, whereas they are
 not directly after i.segment.

 I try to run the following command:

 i.segment.stats --overwrite --verbose map=gp_seg_optimum_clump at gp1 \
 rasters=gp_ortho.1 at gp1,gp_ortho.2 at gp1,gp_ortho.3 at gp1,gp_ortho.4 at gp1 \
 raster_statistics=min,max,mean,stddev,variance,sum \
 csvfile=/home/jpd205/Wales_GRASS/GarronPill/gp_seg_stats \
 separator=comma

 And I get the following error:


 Calculating geometry statistics
 Calculating statistics for raster gp_ortho.1 at gp1
 ERROR: G_realloc: unable to allocate 572000 bytes of memory at
        raster/r.univar/r.univar_main.c:324
 Traceback (most recent call last):
   File "/home/jpd205/.grass7/addons/scripts/i.segment.stats", line 251, in
 <module>
     main()
   File "/home/jpd205/.grass7/addons/scripts/i.segment.stats", line 176, in
 main
     quiet=True)
   File "/usr/lib/grass70/etc/python/grass/script/core.py", line 395, in
 run_command
     return handle_errors(returncode, returncode, args, kwargs)
   File "/usr/lib/grass70/etc/python/grass/script/core.py", line 313, in
 handle_errors
     returncode=returncode)
 grass.exceptions.CalledModuleError: Module run None ['r.univar', '--o', '
 --q', '-et', 'zones=gp_seg_optimum_clump at gp1',
 'output=/home/jpd205/Wales_GRASS/GarronPill/gp1/.tmp/osgeobeefy/6462.0',
 'map=gp_ortho.1 at gp1'] ended with error
 Process ended with non-zero return code 1. See errors in the (error)
 output.

 Some details about my region settings and data:

 g.region -p
 projection: 99 (OSGB 1936 / British National Grid)
 zone:       0
 datum:      osgb36
 ellipsoid:  airy
 north:      208007.00931776
 south:      207952.59780698
 west:       200993.90853302
 east:       201097.28911076
 nsres:      0.00430914
 ewres:      0.00430914
 rows:       12627
 cols:       23991
 cells:      302934357

 r.info map=gp_seg_optimum_clump
 +----------------------------------------------------------------------------+
  | Map:      gp_seg_optimum_clump           Date: Thu Oct 27 14:28:30 2016
 |
  | Mapset:   gp1                            Login of Creator: jpd205
 |
  | Location: GarronPill
 |
  | DataBase: /home/jpd205/Wales_GRASS
 |
  | Title:    gp_seg_optimum_clump ( gp_seg_optimum_clump )
 |
  | Timestamp: none
 |
 |----------------------------------------------------------------------------|
  |
 |
  |   Type of Map:  raster               Number of Categories: 0
 |
  |   Data Type:    CELL
 |
  |   Rows:         12627
 |
  |   Columns:      23991
 |
  |   Total Cells:  302934357
 |
  |        Projection: OSGB 1936 / British National Grid
 |
  |            N: 208007.00931776    S: 207952.59780698   Res: 0.00430914
 |
  |            E: 201097.28911076    W: 200993.90853302   Res: 0.00430914
 |
  |   Range of data:    min = 1  max = 1264957
 |
  |
 |
  |   Data Source:
 |
  |    gp_seg_optimum at gp1
 |
  |
 |
  |
 |
  |   Data Description:
 |
  |    generated by r.clump
 |
  |
 |
  |   Comments:
 |
  |    r.clump --overwrite --verbose -d input="gp_seg_optimum at gp1"
 output="\   |
  |    gp_seg_optimum_clump" title="gp_seg_optimum_clump"
 |
  |
 |
 +----------------------------------------------------------------------------+

 r.info map=gp_ortho.1
 +----------------------------------------------------------------------------+
  | Map:      gp_ortho.1                     Date: Mon Oct 17 09:06:32 2016
 |
  | Mapset:   gp1                            Login of Creator: jd
 |
  | Location: GarronPill
 |
  | DataBase: /home/jpd205/Wales_GRASS
 |
  | Title:     ( gp_ortho.1 )
 |
  | Timestamp: none
 |
 |----------------------------------------------------------------------------|
  |
 |
  |   Type of Map:  raster               Number of Categories: 0
 |
  |   Data Type:    CELL
 |
  |   Rows:         12627
 |
  |   Columns:      23991
 |
  |   Total Cells:  302934357
 |
  |        Projection: OSGB 1936 / British National Grid
 |
  |            N: 208007.00931776    S: 207952.59780698   Res: 0.00430914
 |
  |            E: 201097.28911076    W: 200993.90853302   Res: 0.00430914
 |
  |   Range of data:    min = 0  max = 255
 |
  |
 |
  |   Data Description:
 |
  |    generated by r.in.gdal
 |
  |
 |
  |   Comments:
 |
  |    r.in.gdal -o input="/home/jd/GarronPill_R_BNG_PS2_O_C_RGB_TEX.tif"
 o\   |
  |    utput="gp_ortho" memory=300 offset=0
 |
  |
 |
 +----------------------------------------------------------------------------+



 Moritz Lennert believes that this is a memory issue limit with r.univar.
 He suggested I submit this bug report.

 Kind regards

 James

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



More information about the grass-dev mailing list