rasdaman API
Typedefs | Enumerations | Functions | Variables
mddtypes.hh File Reference

Go to the source code of this file.

Typedefs

typedef unsigned int r_Bytes
 
typedef unsigned long r_Ptr
 
typedef uint64_t r_Area
 
typedef int r_Range
 
typedef unsigned int r_Dimension
 

Enumerations

enum  r_Data_Format {
  r_Array, r_TIFF, r_JPEG, r_HDF,
  r_NETCDF, r_CSV, r_PNG, r_ZLib,
  r_Auto_Compression, r_BMP, r_RLE, r_Wavelet_Haar,
  r_Wavelet_Daubechies, r_Sep_ZLib, r_Sep_RLE, r_Wavelet_Daub6,
  r_Wavelet_Daub8, r_Wavelet_Daub10, r_Wavelet_Daub12, r_Wavelet_Daub14,
  r_Wavelet_Daub16, r_Wavelet_Daub18, r_Wavelet_Daub20, r_Wavelet_Least8,
  r_Wavelet_Least10, r_Wavelet_Least12, r_Wavelet_Least14, r_Wavelet_Least16,
  r_Wavelet_Least18, r_Wavelet_Least20, r_Wavelet_Coiflet6, r_Wavelet_Coiflet12,
  r_Wavelet_Coiflet18, r_Wavelet_Coiflet24, r_Wavelet_Coiflet30, r_VFF,
  r_Wavelet_QHaar, r_PPM, r_TOR, r_DEM,
  r_Pack_Bits, r_ECW, r_TMC, r_NTF,
  r_Data_Format_NUMBER
}
 
enum  r_Scale_Function { r_SubSampling, r_BitAggregation, r_Scale_Function_NUMBER }
 
enum  r_Index_Type {
  r_Invalid_Index = -1, r_Auto_Index = 0, r_Directory_Index = 1, r_Reg_Directory_Index = 2,
  r_RPlus_Tree_Index = 3, r_Reg_RPlus_Tree_Index = 4, r_Tile_Container_Index = 5, r_Reg_Computed_Index = 6,
  r_Index_Type_NUMBER = 7
}
 
enum  r_Tiling_Scheme {
  r_NoTiling = 0, r_RegularTiling = 1, r_StatisticalTiling = 2, r_InterestTiling = 3,
  r_AlignedTiling = 4, r_DirectionalTiling = 5, r_SizeTiling = 6, r_Tiling_Scheme_NUMBER = 7
}
 
enum  r_Clustering_Scheme { r_Insertion_Order_Clustering = 1, r_Coords_Order_Clustering = 2, r_Index_Cluster_Clustering = 3, r_Based_Cluster_Stat_Clustering = 4 }
 

Functions

const char * get_name_from_data_format (r_Data_Format fmt)
 
r_Data_Format get_data_format_from_name (const char *name)
 
std::ostream & operator<< (std::ostream &s, const r_Data_Format &d)
 
std::ostream & operator<< (std::ostream &s, r_Data_Format &d)
 
const char * get_name_from_scale_function (r_Scale_Function func)
 
r_Scale_Function get_scale_function_from_name (const char *name)
 
std::ostream & operator<< (std::ostream &s, const r_Scale_Function &d)
 
std::ostream & operator<< (std::ostream &in, r_Index_Type type)
 
const char * get_name_from_index_type (r_Index_Type it)
 
r_Index_Type get_index_type_from_name (const char *name)
 
const char * get_name_from_tiling_scheme (r_Tiling_Scheme ts)
 
r_Tiling_Scheme get_tiling_scheme_from_name (const char *name)
 
std::ostream & operator<< (std::ostream &in, r_Tiling_Scheme type)
 
std::ostream & operator<< (std::ostream &in, r_Clustering_Scheme type)
 
int strcasecmp (const char *str1, const char *str2)
 

Variables

const char * format_name_array
 
const char * format_name_tiff
 
const char * format_name_jpeg
 
const char * format_name_hdf
 
const char * format_name_netcdf
 
const char * format_name_png
 
const char * format_name_zlib
 
const char * format_name_auto_compression
 
const char * format_name_bmp
 
const char * format_name_ppm
 
const char * format_name_rle
 
const char * format_name_wavelet_haar
 
const char * format_name_wavelet_daubechies
 
const char * format_name_sep_zlib
 
const char * format_name_sep_rle
 
const char * format_name_wavelet_daub6
 
const char * format_name_wavelet_daub8
 
const char * format_name_wavelet_daub10
 
const char * format_name_wavelet_daub12
 
const char * format_name_wavelet_daub14
 
const char * format_name_wavelet_daub16
 
const char * format_name_wavelet_daub18
 
const char * format_name_wavelet_daub20
 
const char * format_name_wavelet_least8
 
const char * format_name_wavelet_least10
 
const char * format_name_wavelet_least12
 
const char * format_name_wavelet_least14
 
const char * format_name_wavelet_least16
 
const char * format_name_wavelet_least18
 
const char * format_name_wavelet_least20
 
const char * format_name_wavelet_coiflet6
 
const char * format_name_wavelet_coiflet12
 
const char * format_name_wavelet_coiflet18
 
const char * format_name_wavelet_coiflet24
 
const char * format_name_wavelet_coiflet30
 
const char * format_name_vff
 
const char * format_name_tor
 
const char * format_name_dem
 
const char * format_name_pack_bits
 
const char * format_name_wavelet_qhaar
 
const char * format_name_tmc
 
const char * format_name_ntf
 
const char * all_data_format_names [r_Data_Format_NUMBER]
 
const char * scale_function_name_subsampling
 
const char * scale_function_name_bitaggregation
 
const char * all_scale_function_names [r_Scale_Function_NUMBER]
 
const char * index_name_auto
 
const char * index_name_directory
 
const char * index_name_regdirectory
 
const char * index_name_rplustree
 
const char * index_name_regrplustree
 
const char * index_name_tilecontainer
 
const char * index_name_regcomputed
 
const char * all_index_type_names [r_Index_Type_NUMBER]
 
const char * tiling_name_notiling
 
const char * tiling_name_regulartiling
 
const char * tiling_name_statisticaltiling
 
const char * tiling_name_interesttiling
 
const char * tiling_name_alignedtiling
 
const char * tiling_name_directionaltiling
 
const char * tiling_name_sizetiling
 
const char * all_tiling_scheme_names [r_Tiling_Scheme_NUMBER]
 

Typedef Documentation

typedef uint64_t r_Area

{ typedef unsigned long r_Ptr;}

The typedef {r_Ptr} was introduced to handle correctly convertions from pointers to integer variables on 64bit architectures.

typedef unsigned int r_Bytes
typedef unsigned int r_Dimension

{ typedef int r_Range;}

The typedef {r_Range} is used as type for the point set of one dimension of a spatial domain. This means that lower and upper bounds of {r_Sinterval}, the projection value, and the cooridnate values of {r_Point} are of this type.

typedef unsigned long r_Ptr

{ typedef unsigned int r_Bytes;}

The typedef {r_Bytes} is used as type for the number of bytes in an tile or mdd or type.

typedef int r_Range

{ typedef unsigned int r_Area;}

The typedef {r_Area} is used as type for the number of cells in an mdd object or tile.

Enumeration Type Documentation

Enumerator
r_Insertion_Order_Clustering 
r_Coords_Order_Clustering 
r_Index_Cluster_Clustering 
r_Based_Cluster_Stat_Clustering 

{ typedef unsigned int r_Dimension;}

This is used as type for the number of dimensions in {r_Point} and {r_Minterval}.

Enumerator
r_Array 
r_TIFF 
r_JPEG 
r_HDF 
r_NETCDF 
r_CSV 
r_PNG 
r_ZLib 
r_Auto_Compression 
r_BMP 
r_RLE 
r_Wavelet_Haar 
r_Wavelet_Daubechies 
r_Sep_ZLib 
r_Sep_RLE 
r_Wavelet_Daub6 
r_Wavelet_Daub8 
r_Wavelet_Daub10 
r_Wavelet_Daub12 
r_Wavelet_Daub14 
r_Wavelet_Daub16 
r_Wavelet_Daub18 
r_Wavelet_Daub20 
r_Wavelet_Least8 
r_Wavelet_Least10 
r_Wavelet_Least12 
r_Wavelet_Least14 
r_Wavelet_Least16 
r_Wavelet_Least18 
r_Wavelet_Least20 
r_Wavelet_Coiflet6 
r_Wavelet_Coiflet12 
r_Wavelet_Coiflet18 
r_Wavelet_Coiflet24 
r_Wavelet_Coiflet30 
r_VFF 
r_Wavelet_QHaar 
r_PPM 
r_TOR 
r_DEM 
r_Pack_Bits 
r_ECW 
r_TMC 
r_NTF 
r_Data_Format_NUMBER 
Enumerator
r_Invalid_Index 
r_Auto_Index 
r_Directory_Index 
r_Reg_Directory_Index 
r_RPlus_Tree_Index 
r_Reg_RPlus_Tree_Index 
r_Tile_Container_Index 
r_Reg_Computed_Index 
r_Index_Type_NUMBER 
Enumerator
r_SubSampling 
r_BitAggregation 
r_Scale_Function_NUMBER 
Enumerator
r_NoTiling 
r_RegularTiling 
r_StatisticalTiling 
r_InterestTiling 
r_AlignedTiling 
r_DirectionalTiling 
r_SizeTiling 
r_Tiling_Scheme_NUMBER 

Function Documentation

r_Data_Format get_data_format_from_name ( const char *  name)

Get a data format for a data format name

r_Index_Type get_index_type_from_name ( const char *  name)

Get a index type for a index type name

const char* get_name_from_data_format ( r_Data_Format  fmt)

Get a data format name for a data format

const char* get_name_from_index_type ( r_Index_Type  it)

Get a index type name for a index type

const char* get_name_from_scale_function ( r_Scale_Function  func)

Get a scale function name for a scale function

const char* get_name_from_tiling_scheme ( r_Tiling_Scheme  ts)

Get a tiling scheme name for a tiling scheme

r_Scale_Function get_scale_function_from_name ( const char *  name)

Get a scale function from a scale function name

r_Tiling_Scheme get_tiling_scheme_from_name ( const char *  name)

Get a tiling scheme for a tiling scheme name

std::ostream& operator<< ( std::ostream &  s,
const r_Data_Format d 
)

Output stream operator for objects of type { const} {r_Data_Format}.

std::ostream& operator<< ( std::ostream &  s,
r_Data_Format d 
)

Output stream operator for objects of type {r_Data_Format}.

std::ostream& operator<< ( std::ostream &  s,
const r_Scale_Function d 
)

Output stream operator for objects of type { const} {r_Scale_Function}.

std::ostream& operator<< ( std::ostream &  in,
r_Index_Type  type 
)
std::ostream& operator<< ( std::ostream &  in,
r_Tiling_Scheme  type 
)

Output stream operator for objects of type { const} {r_Tiling_Scheme}.

std::ostream& operator<< ( std::ostream &  in,
r_Clustering_Scheme  type 
)

Clustering of the Tiles according to:

{tabular}{lll} { InsertionOrder } && the order of insertion of the tiles \ CoordsOrder && the coordinates of the tiles \ IndexCluster && the index structure \ BasedClusterStat && statistics about access to the object {tabular}

There is the additional { PathCluster} mode, where clustering is done according to a path of access to areas of interest. The { PathCluster} mode is indicated by setting the { pathCluster} attribute and a non - null value of the { areasInterest}. This mode is not an alternative mode in { ClusteringScheme} because it is compatible with the other modes.

int strcasecmp ( const char *  str1,
const char *  str2 
)

Variable Documentation

const char* all_data_format_names[r_Data_Format_NUMBER]
const char* all_index_type_names[r_Index_Type_NUMBER]
const char* all_scale_function_names[r_Scale_Function_NUMBER]
const char* all_tiling_scheme_names[r_Tiling_Scheme_NUMBER]
const char* format_name_array

{ enum r_Data_Format}

{tabular}{lll} {} && no compression, row-major memory representation\

{} && TIFF format (see {r_Conv_TIFF})\ {} && JPEG format (see {r_Conv_JPEG})\ {} && HDF format (see {r_Conv_HDF})\ {} && PNG format (see {r_Conv_PNG})\ {} && BMP format (see {r_Conv_BMP})\ {} && VFF format (see {r_Conv_VFF})\ {} && PPM format (see {r_Conv_PPM})\ {} && TOR format (see {r_Conv_TOR})\ {} && DEM format (see {r_Conv_DEM})\ {} && ECW format (see {r_Conv_ECW})\ {} && NITF format (see {r_Conv_NTF})\ {} && NETCDF format (see {r_Conv_NETCDF})\

{} && automatic compression\ {} && ZLIB compresion (see {r_Tile_Comp_RLE})\ {} && Packbits rle compresion (see {r_Tile_Comp_Packbits})\ { RLE} && RLE compression (see {r_Tile_Comp_RLE})\ {} && Haar Wavelet compression (see {r_Haar_Wavelet_Compression})\ {} && Daubechies 4-tap Wavelet compression (see {r_Daubechies_Wavelet_Compression})\ {} && ZLIB compression, compress base types separately (see {r_Tile_Separate_ZLIB})\ {} && RLE compression, compress base types separately (see {r_Tile_Separate_RLE})\ {<n>} && Daubechies n-tap Wavelet compression, n=6,8,...,18,20 (see {r_Ortho_Wavelet_Factory})\ {<n>} && Least asymmetric n-tap Wavelet comp., n=8,10,...,18,20 (see {r_Ortho_Wavelet_Factory})\ {<n>} && Coiflet n-tap Wavelet compression, n=6,12,18,24,30 (see {r_Ortho_Wavelet_Factory})\ {} && Lossy Haar Wavelet compression (see {r_Haar_QWavelet_Compression})\

{tabular} The names of all data types, to avoid redundant storage and inconsistencies. The variable name convention is the prefix format_name_ followed by the name of the data format in lower case without the r_ prefix, i.e. for r_Wavelet_Haar format_name_wavelet_haar. In addition there's an array of names all_data_format_names where the data format can be used as index to get the name.

const char* format_name_auto_compression
const char* format_name_bmp
const char* format_name_dem
const char* format_name_hdf
const char* format_name_jpeg
const char* format_name_netcdf
const char* format_name_ntf
const char* format_name_pack_bits
const char* format_name_png
const char* format_name_ppm
const char* format_name_rle
const char* format_name_sep_rle
const char* format_name_sep_zlib
const char* format_name_tiff
const char* format_name_tmc
const char* format_name_tor
const char* format_name_vff
const char* format_name_wavelet_coiflet12
const char* format_name_wavelet_coiflet18
const char* format_name_wavelet_coiflet24
const char* format_name_wavelet_coiflet30
const char* format_name_wavelet_coiflet6
const char* format_name_wavelet_daub10
const char* format_name_wavelet_daub12
const char* format_name_wavelet_daub14
const char* format_name_wavelet_daub16
const char* format_name_wavelet_daub18
const char* format_name_wavelet_daub20
const char* format_name_wavelet_daub6
const char* format_name_wavelet_daub8
const char* format_name_wavelet_daubechies
const char* format_name_wavelet_haar
const char* format_name_wavelet_least10
const char* format_name_wavelet_least12
const char* format_name_wavelet_least14
const char* format_name_wavelet_least16
const char* format_name_wavelet_least18
const char* format_name_wavelet_least20
const char* format_name_wavelet_least8
const char* format_name_wavelet_qhaar
const char* format_name_zlib
const char* index_name_auto

The names of all index type, to avoid redundant storage and inconsistencies. The variable name convention is the prefix index_name_ followed by the name of the index type in lower case without the r_ prefix, i.e. for r_Auto_Index index_name_auto. In addition there's an array of names all_index_type_names where the index type can be used as index to get the name.

const char* index_name_directory
const char* index_name_regcomputed
const char* index_name_regdirectory
const char* index_name_regrplustree
const char* index_name_rplustree
const char* index_name_tilecontainer
const char* scale_function_name_bitaggregation
const char* scale_function_name_subsampling
const char* tiling_name_alignedtiling
const char* tiling_name_directionaltiling
const char* tiling_name_interesttiling
const char* tiling_name_notiling

Tiling of the object:

{tabular}{lll} NoTiling && no tiling is done unless the object is too big; in that case, tiling is done along the first direction only; for objects which are to be accessed always as a whole \ { Aligned} && aligned tiling, needs tileConfig \ LowVariationAreas && according to areas of low cell value variation \ BasedTilesStat && based on statistics regarding access to this MDD object {tabular}

In addition, it is possible to have a tiling according to areas of interest, { AreasInterest} mode. The { AreasInterest} mode is indicated by a non - null value of the { areasInterestPath} attribute. This mode is not an alternative mode in { TilingScheme} because it is compatible with the other modes. For instance, an aligned tiling may be adopted outside the areas of interest. The names of all tiling schems, to avoid redundant storage and inconsistencies. The variable name convention is the prefix tiling_name_ followed by the name of the tiling scheme in lower case without the r_ prefix, i.e. for r_SizeTiling tiling_name_sizetiling. In addition there's an array of names all_tiling_scheme_names where the tile scheme can be used as index to get the name.

const char* tiling_name_regulartiling
const char* tiling_name_sizetiling
const char* tiling_name_statisticaltiling