Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MINCGEN(1)		       MINC User's Guide		    MINCGEN(1)

NAME
       mincgen - Generate a MINC file from a CDL file.

SYNOPSIS

       mincgen [-b] [-n] [-o minc_filename] input_file

DESCRIPTION
       mincgen	generates  a MINC file.	 The input to mincgen is a description
       of a MINC file in a small language known	as CDL	(network  Common  Data
       form Language), described below.	 If no options are specified in	invok-
       ing mincgen, it merely checks the syntax	of the input CDL file, produc-
       ing error messages for any violations of	CDL syntax.  Other options can
       be used to create the corresponding MINC	file.

       mincgen may be used with	the companion program mincdump to perform some
       simple operations on MINC files.	 For example, to rename	a dimension in
       a  MINC	file, use mincdump to get a CDL	version	of the MINC file, edit
       the CDL file to change the name of the dimensions, and use  mincgen  to
       generate	the corresponding MINC file from the edited CDL	file.

OPTIONS
       -b     Create  a	(binary) MINC file.  If	the -o option is absent, a de-
	      fault file name will be constructed from the MINC	 name  (speci-
	      fied after the netcdf or hdf5 keyword in the input) by appending
	      the  `.mnc' extension.  If a file	already	exists with the	speci-
	      fied name, it will be overwritten.

       -o minc_filename
	      Name for the binary MINC file created.  If this option is	speci-
	      fied, it implies the "-b"	option.	 (This option is necessary be-
	      cause MINC files cannot be written directly to standard  output,
	      since standard output is not seekable.)

EXAMPLES
       Check the syntax	of the CDL file	`foo.cdl':

	      mincgen foo.cdl

       From  the  CDL  file `foo.cdl', generate	an equivalent binary MINC file
       named `x.mnc':

	      mincgen -o x.mnc foo.cdl

USAGE
   CDL Syntax Summary
       Below is	an example of CDL syntax, describing a MINC file with  several
       named  dimensions  (xspace, yspace, and zspace),	variables (zspace, im-
       age), variable attributes (valid_range, signtype), and some data.   CDL
       keywords	 are in	boldface.  (This example is intended to	illustrate the
       syntax; a real CDL file would have a more complete set of attributes so
       that the	data would be more completely self-describing.)

	      netcdf foo {  // an example MINC specification in	CDL

	      dimensions:
		   xspace = 8;
		      yspace = 8;
		      zspace = 5;

	      variables:
		   float  xspace;
		      float  yspace;
		   float  zspace(zspace);
		   short  image(zspace,yspace,xspace);
		      double image-min(zspace)
		      double image-max(zspace)

		   // variable attributes
		      image:valid_range	= 0,5;
	      data:
		      image-min	= -1,-1,-1,-1,-1;
		      image-max	= 1,1,1,1,1;
		      image =
		      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
		      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
		      1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
		      1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
		      2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
		      2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
		      3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
		      3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
		      5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
		      5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5;
		      zspace = 0,2,3.5,7,10;
	      }

       All CDL statements are terminated by a semicolon.   Spaces,  tabs,  and
       newlines	 can  be used freely for readability.  Comments	may follow the
       characters `//' on any line.

       A CDL description consists of three optional parts:  dimensions,	 vari-
       ables,  and  data,  beginning with the keyword dimensions:, variables:,
       and data, respectively.	The variable part may contain variable	decla-
       rations and attribute assignments.

       A MINC dimension	is used	to define the shape of one or more of the mul-
       tidimensional  variables	 contained in the MINC file.  A	MINC dimension
       has a name, a size, and possibly	several	other attributes.

       A variable represents a multidimensional	array of values	 of  the  same
       type.  A	variable has a name, a data type, and a	shape described	by its
       list  of	dimensions.  Each variable may also have associated attributes
       (see below) as well as data values.  The	name, data type, and shape  of
       a  variable are specified by its	declaration in the variable section of
       a CDL description.  A variable may have the same	name as	 a  dimension;
       by  convention  such a variable is one-dimensional and contains coordi-
       nates of	the dimension it names.	 Dimensions need not have  correspond-
       ing variables.

       A  netCDF  attribute  contains  information  about a netCDF variable or
       about the whole netCDF dataset.	Attributes are used  to	 specify  such
       properties  as units, special values, maximum and minimum valid values,
       scaling factors,	offsets, and  parameters.   Attribute  information  is
       represented by single values or arrays of values.  For example, "units"
       is an attribute represented by a	character array	such as	"celsius".  An
       attribute  has  an  associated variable,	a name,	a data type, a length,
       and a value.  In	contrast to variables that are intended	for data,  at-
       tributes	are intended for metadata (data	about data).

       In  CDL,	 an  attribute is designated by	a variable and attribute name,
       separated by `:'.  It is	possible to assign global attributes not asso-
       ciated with any variable	to the file as a whole by using	`:' before the
       attribute name.	The data type of an attribute in CDL is	 derived  from
       the  type  of  the value	assigned to it.	 The length of an attribute is
       the number of data values assigned to it, or the	number	of  characters
       in  the	character string assigned to it.  Multiple values are assigned
       to non-character	attributes by separating the values with commas.   All
       values assigned to an attribute must be of the same type.

       The names for CDL dimensions, variables,	and attributes must begin with
       an  alphabetic  character  or `_', and subsequent characters may	be al-
       phanumeric or `_' or `-'.

       The optional data section of a CDL specification	is where variables may
       be initialized.	The syntax of an initialization	is simple: a  variable
       name, an	equals sign, and a comma-delimited list	of constants (possibly
       separated  by  spaces,  tabs and	newlines) terminated with a semicolon.
       For multi-dimensional arrays, the last dimension	varies fastest.	  Thus
       row-order rather	than column order is used for matrices.	 If fewer val-
       ues  are	 supplied  than	 are needed to fill a variable,	it is extended
       with a type-dependent `fill value', which can be	overridden by  supply-
       ing  a value for	a distinguished	variable attribute named `_FillValue'.
       The types of constants need not match the type declared for a variable;
       coercions are done to convert integers to floating point, for  example.
       The  constant  `_'  can be used to designate the	fill value for a vari-
       able.

   Primitive Data Types
	      char characters
	      byte 8-bit data
	      short	16-bit signed integers
	      long 32-bit signed integers
	      int  (synonymous with long)
	      float	IEEE single precision floating point (32 bits)
	      real (synonymous with float)
	      double	IEEE double precision floating point (64 bits)

       Except for the added data-type byte and the lack	of unsigned, CDL  sup-
       ports  the same primitive data types as C.  The names for the primitive
       data types are reserved words in	CDL, so	the names of variables,	dimen-
       sions, and attributes must not be type names.   In  declarations,  type
       names may be specified in either	upper or lower case.

       Bytes  differ  from characters in that they are intended	to hold	a full
       eight bits of data, and the zero	byte has no special  significance,  as
       it does for character data.

       Shorts can hold values between -32768 and 32767.

       Longs  can hold values between -2147483648 and 2147483647.  int and in-
       teger are accepted as synonyms for long in CDL declarations.  Now  that
       there  are platforms with 64-bit	representations	for C longs, it	may be
       better to use the int synonym to	avoid confusion.

       Floats can hold values between about -3.4+38 and	3.4+38.	 Their	exter-
       nal representation is as	32-bit IEEE normalized single-precision	float-
       ing  point numbers. real	is accepted as a synonym for float in CDL dec-
       larations.

       Doubles can hold	values between about -1.7+308 and 1.7+308.  Their  ex-
       ternal representation is	as 64-bit IEEE standard	normalized double-pre-
       cision floating point numbers.

   CDL Constants
       Constants  assigned to attributes or variables may be of	any of the ba-
       sic MINC	types.	The syntax for constants is similar to C  syntax,  ex-
       cept  that  type	suffixes must be appended to shorts and	floats to dis-
       tinguish	them from longs	and doubles.

       A byte constant is represented by a single character or multiple	 char-
       acter escape sequence enclosed in single	quotes.	 For example,
	       'a'	 // ASCII `a'
	       '\0'	 // a zero byte
	       '\n'	 // ASCII newline character
	       '\33'	      // ASCII escape character	(33 octal)
	       '\x2b'	 // ASCII plus (2b hex)
	       '\377'	 // 377	octal =	255 decimal, non-ASCII

       Character  constants  are enclosed in double quotes.  A character array
       may be represented as a string enclosed in double quotes.  The usual  C
       string escape conventions are honored.  For example
	      "a"	// ASCII `a'
	      "Two\nlines\n" //	a 10-character string with two embedded	newlines
	      "a bell:\007"  //	a string containing an ASCII bell
       Note  that the character	array "a" would	fit in a one-element variable,
       since no	terminating NULL character is assumed.	However, a  zero  byte
       in a character array is interpreted as the end of the significant char-
       acters by the mincdump program, following the C convention.  Therefore,
       a  NULL byte should not be embedded in a	character string unless	at the
       end: use	the byte data type instead for byte arrays  that  contain  the
       zero  byte.   MINC  and	CDL have no string type, but only fixed-length
       character arrays, which may be multi-dimensional.

       short integer constants are intended  for  representing	16-bit	signed
       quantities.   The  form of a short constant is an integer constant with
       an `s' or `S' appended.	If a short constant begins with	`0', it	is in-
       terpreted as octal, except that if it begins with `0x',	it  is	inter-
       preted as a hexadecimal constant.  For example:
	      -2s  // a	short -2
	      0123s	// octal
	      0x7ffs  //hexadecimal

       Long  integer  constants	 are  intended	for representing 32-bit	signed
       quantities.  The	form of	a long constant	is an  ordinary	 integer  con-
       stant,  although	it is acceptable to append an optional `l' or `L'.  If
       a long constant begins with `0',	it is  interpreted  as	octal,	except
       that  if	 it  begins with `0x', it is interpreted as a hexadecimal con-
       stant.  Examples	of valid long constants	include:
	      -2
	      1234567890L
	      0123	// octal
	      0x7ff	     //	hexadecimal

       Floating	point constants	of type	float are appropriate for representing
       floating	point data with	about seven significant	digits	of  precision.
       The form	of a float constant is the same	as a C floating	point constant
       with an `f' or `F' appended.  For example the following are all accept-
       able float constants:
	      -2.0f
	      3.14159265358979f	  // will be truncated to less precision
	      1.f

       Floating	 point constants of type double	are appropriate	for represent-
       ing floating point data with about sixteen significant digits of	preci-
       sion.  The form of a double constant is the same	as a C floating	 point
       constant.   An  optional	 `d'  or `D' may be appended.  For example the
       following are all acceptable double constants:
	      -2.0
	      3.141592653589793
	      1.0e-20
	      1.d

AUTHOR
       Originally written by members of	the Unidata Program at the  University
       Corporation for Atmospheric Research.

       Modified	 by  Bert  Vincent  (bert@bic.mni.mcgill.ca) for use with both
       netCDF and HDF5 files.

COPYRIGHTS
       Copyright (C) University	Corporation for	Atmospheric Research

SEE ALSO
       ncdump(1), ncgen(1), netcdf(3)

BUGS
       The CDL syntax makes it easy to assign what  looks  like	 an  array  of
       variable-length	strings	 to a variable,	but the	strings	will simply be
       concatenated into a single array	of characters, since MINC cannot  rep-
       resent an array of variable-length strings in one MINC variable.

       MINC  and CDL do	not yet	support	a type corresponding to	a 64-bit inte-
       ger.

			 $Date:	2008-10-12 05:07:12 $		    MINCGEN(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mincgen&sektion=1&manpath=FreeBSD+Ports+15.0.quarterly>

home | help