Opened 11 years ago

Last modified 11 years ago

#1506 new enhancement

r.to.rast3: support for float datatype

Reported by: hamish Owned by: grass-dev@…
Priority: normal Milestone: 6.5.0
Component: Raster3D Version: svn-trunk
Keywords: r.to.rast3 Cc:
CPU: All Platform: All

Description

Hi,

3D rasters can either be 'float's or 'double's. But r.to.rast3 always creates doubles. For a 3D raster with many many cells this can be a rather expensive problem.

thanks, Hamish

ps- why no raster 3d support for integers? (e.g. category == geologic rock type)

pps- why not FCELL,DCELL to match 2D rasters? or are they anachronisms from an era when IEEE FPs were still in strong competition with IBM's FP, etc?

Change History (1)

comment:1 by hamish, 11 years ago

ps- the post-processing work-around:

 r3.mapcalc "map3d.float = float(map3d)"

unfortunately the result is many many times larger. (4.6mb double -> 86mb float grid3/cell file in my test)

 grid3$ diff map3d/cellhd map3d.float/cellhd
 @@ -15,11 +15,11 @@
  TileDimensionX: 8
  TileDimensionY: 8
  TileDimensionZ: 8
 -CellType: double
 +CellType: float
  useCompression: 1
  useRle: 1
  useLzw: 0
 -Precision: 23
 +Precision: -1
  nofHeaderBytes: 16
  useXdr: 1
  hasIndex: 1

but there is no r3.compress or r3.support utility to adjust that. (is precision=23 meaningful for doubles? isn't anything >16 sig. digits going to be noise?)

Only r3.in.ascii and r3.in.v5d have controls for these:

           type   Data type used in the output file
                  options: default,double,float
                  default: default
      precision   Precision used in the output file (default, max, or 0 to 52)
                  default: default
    compression   The compression method used in the output file
                  options: default,rle,none
                  default: default
  tiledimension   The dimensions of the tiles used in the output file
                  default: default

?, Hamish

Note: See TracTickets for help on using tickets.