mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-12-21 08:39:46 +08:00
f376c23329
re: https://github.com/Unidata/netcdf-c/issues/1642 Modify ncdump, nccopy, and ncgen to support the NC_COMPACT storage option. Added test cases and added description to the man pages for the utilities. 1. ncdump: For compact storage variable, print special attribute __Storage_ as ```` <var>: _Storage = "compact"; ```` 2. ncgen: parse and implement ```` <var>: _Storage = "compact"; ```` in a .cdl file 3. nccopy: Extend the chunk specification (-c flag) to support compact using the forms ```` nccopy ... -c <var>:compact and nccopy ... -c <var>:contiguous ```` Misc. other changes 1. cleanup the copy_chunking function in ncdump/nccopy.c
50 lines
1.5 KiB
C
50 lines
1.5 KiB
C
/*********************************************************************
|
|
* Copyright 2018, UCAR/Unidata
|
|
* See netcdf/COPYRIGHT file for copying and redistribution conditions.
|
|
* $Id $
|
|
*********************************************************************/
|
|
#ifndef _CHUNKSPEC_H_
|
|
#define _CHUNKSPEC_H_
|
|
|
|
/* Parse chunkspec string and convert into internal data structure,
|
|
* associating dimids from open file or group specified by ncid with
|
|
* corresponding chunk sizes */
|
|
extern int
|
|
chunkspec_parse(int ncid, const char *spec);
|
|
|
|
/* Return chunk size in chunkspec string specified for dimension
|
|
* corresponding to dimid, 0 if not found */
|
|
extern size_t
|
|
dimchunkspec_size(int dimid);
|
|
|
|
/* Return 1 if a dimension spec is defined
|
|
* corresponding to dimid, 0 if not found */
|
|
extern bool_t
|
|
dimchunkspec_exists(int indimid);
|
|
|
|
/* Return number of dimensions for which chunking was specified in
|
|
* chunkspec string on command line, 0 if no chunkspec string was
|
|
* specified. */
|
|
extern int
|
|
dimchunkspec_ndims(void);
|
|
|
|
/* Return whether chunking should be omitted, due to explicit
|
|
* command-line specification. */
|
|
extern bool_t
|
|
dimchunkspec_omit(void);
|
|
|
|
extern bool_t varchunkspec_omit(int grpid, int varid);
|
|
|
|
extern size_t* varchunkspec_chunksizes(int grpid, int varid);
|
|
|
|
extern size_t varchunkspec_ndims(int grpid, int varid);
|
|
|
|
extern bool_t varchunkspec_exists(int grpid, int varid);
|
|
|
|
extern int varchunkspec_kind(int grpid, int varid);
|
|
|
|
extern void chunkspecinit(void);
|
|
|
|
|
|
#endif /* _CHUNKSPEC_H_ */
|