MINC-specific convenience functions

miget_datatype : Get the type and sign information for an image variable. Signed data is indicated by setting is_signed to TRUE; unsigned by FALSE.

public int miget_datatype(int cdfid, int imgid,
                          nc_type *datatype, int *is_signed);

miget_default_range : Returns the default range for a specified type and sign.

public int miget_default_range(nc_type datatype, int is_signed,
                               double default_range[]);

miget_valid_range : Gets the valid range information for an image variable. This function handles potential type differences between the valid_range attribute and the image data. These differences (particularly float images with double valid_range) could otherwise lead to problems in properly identifying invalid data.

public int miget_valid_range(int cdfid, int imgid, double valid_range[]);

miset_valid_range : Sets the valid range information for an image variable. This function follows the NetCDF convention of having both variable data and valid_range attribute with the same type.

public int miset_valid_range(int cdfid, int imgid, double valid_range[]);

miget_image_range : Gets the maximum real range of the image data based on the image-min and image-max variables.

public int miget_image_range(int cdfid, double image_range[]);

mivar_exists : Tests for the existence of a variable. Returns true if the variable exists.

public int mivar_exists(int cdfid, char *varname);

miattput_pointer : Create an attribute name in the variable varid that points to the variable ptrvarid.

public int miattput_pointer(int cdfid, int varid, char *name, int ptrvarid);

miattget_pointer : Returns the variable id pointed to by attribute name of variable varid.

public int miattget_pointer(int cdfid, int varid, char *name);

miadd_child : Add the name of variable child_varid to the MIchildren attribute of variable parent_varid and set the MIparent attribute of variable child_varid to the name of variable parent_varid. If the attributes do not exist, they are created. The names in the attribute MIchildren are separated by newlines.

public int miadd_child(int cdfid, int parent_varid, int child_varid);

micreate_std_variable : Create any of the standard MINC variables and set some attributes. Called in the manner of ncvardef. The id of the newly created variable is returned. For all variables, attributes MIvarid, MIvartype and MIversion are all set. For dimension and dimension width variables, MIspacing is set to MI_REGULAR if the number of dimensions is zero and MI_IRREGULAR otherwise. For dimension variables, MIalignment is set to MI_CENTRE unless the variable is MItime, then it is set to MI_START. As well, MIcomments is set to a string describing the direction of the world coordinates of spatial dimensions. For dimension width variables, MIfiltertype is set to MI_SQUARE. For MIimage and for MIimagemax and MIimagemin, dimensions are checked to ensure that the last two do not vary over image dimensions and attribute pointers from MIimage are created to point to the other two.

public int micreate_std_variable(int cdfid, char *name, nc_type datatype, 
                                 int ndims, int dim[]);

micreate_group_variable : Like micreate_std_variable, but ndims is always set to zero and the datatype is NC_INT. The id of the newly created variable is returned.

public int micreate_group_variable(int cdfid, char *name);