focal (1) r.compress.1grass.gz

Provided by: grass-doc_7.8.2-1build3_all bug

NAME

       r.compress  - Compresses and decompresses raster maps.

KEYWORDS

       raster, map management, compression

SYNOPSIS

       r.compress
       r.compress --help
       r.compress [-upg] map=name[,name,...]  [--help]  [--verbose]  [--quiet]  [--ui]

   Flags:
       -u
           Uncompress the map

       -p
           Print compression information and data type of input map(s)

       -g
           Print compression information in shell script style

       --help
           Print usage summary

       --verbose
           Verbose module output

       --quiet
           Quiet module output

       --ui
           Force launching GUI dialog

   Parameters:
       map=name[,name,...] [required]
           Name of existing raster map(s)

DESCRIPTION

       r.compress  can be used to compress or decompress raster maps.  Additionally, it prints information about
       the compression method and data type of the input raster map(s).

       All raster maps (those imported for the first time and those newly generated) are compressed  by  default
       using  the ZSTD compression method if available, otherwise ZLIB compression is used (see below).  Related
       no data files (i.e.: NULL files), if present, are compressed by default  unless  a  specific  environment
       variable is set to explicitly disable NULL file compression (GRASS_COMPRESS_NULLS, see below).

       During  compression  or  re-compression,  r.compress compresses raster maps using the method specified by
       means of the environment variable GRASS_COMPRESSOR. The default compression method is ZSTD if  available,
       otherwise  ZLIB’s  "deflate"  algorithm  (LZ77-based).   Raster maps that contain very little information
       (such as boundary, geology, soils and land use maps) can be greatly reduced in size. Some raster maps are
       shrunk  to  roughly 1% of their original sizes.  All newly generated raster maps are automatically stored
       as compressed data with varying methods depending on the  raster  format  (i.e.,  CELL:  integer;  FCELL:
       single  precision;  DCELL:  double  precision;  see  below).  All GRASS GIS modules are able to read both
       compressed and uncompressed raster maps.

       Raster maps that are already compressed might be compressed again, either by setting a  different  method
       with  GRASS_COMPRESSOR  (supported  methods:  RLE,  ZLIB,  LZ4,  BZIP2,  ZSTD)  or,  for the case of ZLIB
       compression, by changing the compression level with the environment variable GRASS_ZLIB_LEVEL.

       Compressed raster maps may be decompressed using r.compress with the -u flag. If a raster map was already
       decompressed  and  the  -u  flag  is  set,  the  module  simply  informs the user that the map is already
       decompressed and exits.

       Information about the compression method and data type of the input raster map(s) can be printed in shell
       style  with the -g flag. In this case, the module prints to stdout one line per input map with the fields
       "input map name", "data type", "name of data compression method", "NULL file  compression"  separated  by
       the pipe character. NULL file compression is indicated with "YES" or "NO".

   TERMINOLOGY
           •   INTEGER map (CELL data type): a raster map of INTEGER type (whole numbers only)

           •   FLOAT map (FCELL data type): a raster map of FLOAT type (4 bytes, 7-9 digits precision)

           •   DOUBLE map (DCELL data type): a raster map of DOUBLE type (8 bytes, 15-17 digits precision)

           •   NULL: represents "no data" in raster maps; to be distinguished from 0 (zero) data value

   OVERVIEW OF AVAILABLE COMPRESSION ALGORITHMS
       The following compression methods are available (set by export GRASS_COMPRESSOR=method):

           •   NONE (uncompressed)

           •   RLE  (generic Run-Length Encoding of single bytes; deprecated)

           •   ZLIB (DEFLATE, good speed and compression)

               •   with  zlib  compression  levels  (export  GRASS_ZLIB_LEVEL=X):  -1..9  (-1  is  default which
                   corresponds to ZLIB level 6)

               •   note: export GRASS_ZLIB_LEVEL=0 is equal to copying the data as-is from source to destination

           •   LZ4  (fastest, low compression)

           •   BZIP2 (slowest, high compression)

           •   ZSTD (compared to ZLIB, faster and  higher  compression,  much  faster  decompression  -  default
               compression)
       Important:  the  NULL  file compression can be turned off with export GRASS_COMPRESS_NULLS=0. Raster maps
       with NULL file compression can only be opened with GRASS GIS 7.2.0 or later. NULL file compression for  a
       particular  raster  map can be managed with r.null -z.  The NULL file compression is using the LZ4 method
       as being the best compromise between speed and compression rate.

   COMPRESSION ALGORITHM DETAILS
       All GRASS GIS raster map types are by default ZSTD compressed if available,  otherwise  ZLIB  compressed.
       Through  the  environment  variable GRASS_COMPRESSOR the compression method can be set to RLE, ZLIB, LZ4,
       BZIP2, or ZSTD.

       Integer (CELL type) raster maps can be compressed with RLE if the environment  variable  GRASS_COMPRESSOR
       exists and is set to RLE. However, this is not recommended.

       Floating  point  (FCELL,  DCELL)  raster  maps never use RLE compression; they are either compressed with
       ZLIB, LZ4, BZIP2, ZSTD or are uncompressed.

       RLE
           DEPRECATED  Run-Length  Encoding,  poor  compression  ratio  but  fast.  It  is  kept  for  backwards
           compatibility to read raster maps created with GRASS 6. It is only used for raster maps of type CELL.
           FCELL and DCELL maps are never and have never been compressed with RLE.

       ZLIB
           ZLIB’s deflate is the default compression method for all raster maps, if ZSTD is not available. GRASS
           GIS  7  uses  by  default  1 as ZLIB compression level which is the best compromise between speed and
           compression ratio, also when compared to other available compression methods. Valid levels are in the
           range [1, 9] and can be set with the environment variable GRASS_ZLIB_LEVEL.

       LZ4
           LZ4  is  a  very fast compression method, about as fast as no compression. Decompression is also very
           fast. The compression ratio is generally higher than  for  RLE  but  worse  than  for  ZLIB.  LZ4  is
           recommended if disk space is not a limiting factor.

       BZIP2
           BZIP2  can  provide  compression ratios much higher than the other methods, but only for large raster
           maps (> 10000 columns). For large raster maps, disk space consumption can be reduced by 30 - 50% when
           using  BZIP2  instead  of  ZLIB’s deflate. BZIP2 is the slowest compression and decompression method.
           However, if reading from / writing to a storage device is the limiting factor, BZIP2 compression  can
           speed up raster map processing. Be aware that for smaller raster maps, BZIP2 compression ratio can be
           worse than other compression methods.

       ZSTD
           ZSTD (Zstandard) provides compression ratios higher than ZLIB but lower than BZIP2 (for large  data).
           ZSTD  compresses up to 4x faster than ZLIB, and usually decompresses 6x faster than ZLIB. ZSTD is the
           default compression method if available.

NOTES

   Compression method number scheme
       The used compression method is encoded  with  numbers.  In  the  internal  cellhd  file,  the  value  for
       "compressed" is 1 for RLE, 2 for ZLIB, 3 for LZ4, 4 for BZIP2, and 5 for ZSTD.

       Obviously, decompression is controlled by the raster map’s compression, not by the environment variable.

   Formats
       Conceptually,  a  raster data file consists of rows of cells, with each row containing the same number of
       cells. A cell consists of one or more bytes. For CELL maps, the number of bytes per cell depends  on  the
       category  values  stored  in  the cell. Category values in the range 0-255 require 1 byte per cell, while
       category values in the range 256-65535 require 2 bytes, and category values  in  the  range  above  65535
       require 3 (or more) bytes per cell.

       FCELL maps always have 4 bytes per cell and DCELL maps always have 8 bytes per cell.

       Since  GRASS  GIS  7.0.0,  the  default  compression method for Integer (CELL) raster maps is ZLIB and no
       longer RLE.

   ZLIB compression levels
       If the environment variable GRASS_ZLIB_LEVEL exists and its  value  can  be  parsed  as  an  integer,  it
       determines  the  compression  level  used  when  newly  generated  raster  maps are compressed using ZLIB
       compression. This applies to all raster map types (CELL, FCELL, DCELL).

       If the variable does not exist, or the value cannot be parsed as an integer, ZLIB’s compression  level  1
       will be used.

EXAMPLES

   Printing of current compression state
       Example for an uncompressed raster map:
       r.compress compressed_no -p
         <compressed_no> (method 0: NONE). Data type: <CELL>

   Applying ZLIB compression
       Applying ZLIB compression to a copy of the uncompressed map from above:
       # compression of map using ZLIB compression
       g.copy raster=compressed_no,compressed_ZLIB
       export GRASS_COMPRESSOR=ZLIB # ZLIB
       r.compress compressed_ZLIB
       r.compress compressed_ZLIB -p
         <compressed_ZLIB> is compressed (method 2: ZLIB). Data type: <CELL>
       unset GRASS_COMPRESSOR # switch back to default

   Applying BZIP2 compression
       Applying BZIP2 compression to a copy of the ZLIB-compressed map from above:
       # compression of map using BZIP2 compression
       g.copy raster=compressed_ZLIB,compressed_BZIP2
       export GRASS_COMPRESSOR=BZIP2 # BZIP2
       r.compress compressed_BZIP2
       r.compress compressed_BZIP2 -p
         <compressed_BZIP2> is compressed (method 4: BZIP2). Data type: <CELL>
       unset GRASS_COMPRESSOR # switch back to default

   Applying ZSTD compression
       Applying ZSTD compression to a copy of the BZIP2-compressed map from above:
       # compression of map using ZSTD compression
       g.copy raster=compressed_BZIP2,compressed_ZSTD
       export GRASS_COMPRESSOR=ZSTD # ZSTD
       r.compress compressed_ZSTD
       r.compress compressed_ZSTD -p
         <compressed_ZSTD> is compressed (method 5: ZSTD). Data type: <CELL>
       unset GRASS_COMPRESSOR

SEE ALSO

        r.info, r.null, r.support

       Compression algorithms: bzip2, LZ4, zlib, zstd

AUTHORS

       James Westervelt and Michael Shapiro, U.S. Army Construction Engineering Research Laboratory

       Markus Metz

SOURCE CODE

       Available at: r.compress source code (history)

       Main index | Raster index | Topics index | Keywords index | Graphical index | Full index

       © 2003-2019 GRASS Development Team, GRASS GIS 7.8.2 Reference Manual