Re: [netcdfgroup] compression without effect

Hi Frank,

> Now I wanted to test compression using the cxx4 interface, enabling it by 
> ncvar_data.setCompression(true,true,1) for the heaviest of my variables. 
> 
> However, even for a file filled with constants the files remain as big as 
> before. 
> Further tests using nccopy -d9 old.nca new.nca did not result in a 
> modification of the file size.

If you use an unlimited dimension, that may prevent compression,
because it means that each variable is divided into chunks for
compression, with one record per chunk.  There is significant HDF5
space overhead for storing lots of tiny chunks, even if they can be
compressed.

Two solutions include:

    1.  If you don't need the unlimited dimension any more, perhaps
        because no more data will be appended to the files, then convert
        the unlimited dimension into a fixed-size dimension, resulting in
        all the values of each variable being stored contiguously, which
        should be more compressible.

    2.  If you still need the unlimited dimension, then rechunk the data
        before compressing it, so the compression can work on larger
        chunks.

The nccopy utility can be used for both of these approaches.

For approach 1:

    $ nccopy -u orig.nc orig-u.nc        # makes unlimited dimension fixed size
    $ nccopy -d9 orig-u.nc orig-u-d9.nc  # compresses result

For approach 2, assuming you have a record dimension "t" with each chunk
a slice of only one t value:

    $ nccopy -c t/10 orig.nc orig-c.nc   # chunks t dimension using 10 instead 
of 1
    $ nccopy -d9 orig-c.nc orig-c-d9.nc # compresses result

--Russ


> --===============1981692180==
> Content-Type: multipart/alternative; boundary=047d7bdc99b29242bc04edc0db6b
> 
> --047d7bdc99b29242bc04edc0db6b
> Content-Type: text/plain; charset=ISO-8859-1
> 
> Hi,
> 
> I managed to compile netcdf-4.3.0 using mingw-w64 gcc 4.8.1.
> All I had to disabale was DAP (I have no use for anyway).
> 
> I tested that I can read and write netcdf files using the newly build .dll
> Now I wanted to test compression using the cxx4 interface, enabling it by
> ncvar_data.setCompression(true,true,1) for the heaviest of my variables.
> 
> However, even for a file filled with constants the files remain as big as
> before.
> Further tests using nccopy -d9 old.nca new.nca did not result in a
> modification of the file size.
> 
> Any advise?
> 
> Best,
> Frank
> 
> --047d7bdc99b29242bc04edc0db6b
> Content-Type: text/html; charset=ISO-8859-1
> Content-Transfer-Encoding: quoted-printable
> 
> <div dir=3D"ltr">Hi,<div><br></div><div>I managed to compile netcdf-4.3.0 u=
> sing mingw-w64 gcc 4.8.1.</div><div>All I had to disabale was DAP (I have n=
> o use for anyway).</div><div><br></div><div>I tested that I can read and wr=
> ite netcdf files using the newly build .dll</div>
> <div>Now I wanted to test compression using the cxx4 interface, enabling it=
>  by=A0</div><div>ncvar_data.setCompression(true,true,1) for the heaviest of=
>  my variables.=A0<br></div><div><br></div><div>However, even for a file fil=
> led with constants the files remain as big as before.=A0</div>
> <div>Further tests using nccopy -d9 old.nca new.nca did not result in a mod=
> ification of the file size.</div><div><br></div><div>Any advise?</div><div>=
> <br></div><div>Best,</div><div>Frank</div><div><br></div><div><br></div>
> </div>
> 
> --047d7bdc99b29242bc04edc0db6b--
> 
> 
> --===============1981692180==
> Content-Type: text/plain; charset="us-ascii"
> MIME-Version: 1.0
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline
> 
> _______________________________________________
> netcdfgroup mailing list
> netcdfgroup@xxxxxxxxxxxxxxxx
> For list information or to unsubscribe,  visit: http://www.unidata.ucar.edu/m
> ailing_lists/ 
> --===============1981692180==--



  • 2013 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: