rasdaman client API  10.6.3
The Array Analytics Engine: Datacubes at Your Fingertips
mddtypes.hh
Go to the documentation of this file.
1 /*
2 * This file is part of rasdaman community.
3 *
4 * Rasdaman community is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * Rasdaman community is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
16 *
17 * Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
18 rasdaman GmbH.
19 *
20 * For more information please see <http://www.rasdaman.org>
21 * or contact Peter Baumann via <baumann@rasdaman.com>.
22 */
23 /*
24  * INCLUDE: mddtypes.hh
25  *
26  * MODULE: raslib
27  *
28  * PURPOSE:
29  * The file cotains MDD type definitions.
30  *
31  * COMMENTS:
32  * - always append new data formats to remain compatible with earlier compiled code
33  *
34  */
35 
36 #ifndef _D_MDDTYPES_
37 #define _D_MDDTYPES_
38 
39 #include <iosfwd>
40 #include <cstdint>
41 
43 using r_Bytes = size_t;
44 
46 using r_Ptr = std::ptrdiff_t;
47 
49 using r_Area = std::uint64_t;
50 
53 using r_Range = std::int64_t;
54 
56 using r_Dimension = std::uint32_t;
57 
94 {
143 };
144 
145 //@ManMemo: Module: <b>raslib</b>
155 extern const char *format_name_array;
156 extern const char *format_name_tiff;
157 extern const char *format_name_jpeg;
158 extern const char *format_name_jp2;
159 extern const char *format_name_hdf;
160 extern const char *format_name_netcdf;
161 extern const char *format_name_csv;
162 extern const char *format_name_json;
163 extern const char *format_name_png;
164 extern const char *format_name_zlib;
165 extern const char *format_name_auto_compression;
166 extern const char *format_name_bmp;
167 extern const char *format_name_ppm;
168 extern const char *format_name_rle;
169 extern const char *format_name_wavelet_haar;
170 extern const char *format_name_wavelet_daubechies;
171 extern const char *format_name_sep_zlib;
172 extern const char *format_name_sep_rle;
173 extern const char *format_name_wavelet_daub6;
174 extern const char *format_name_wavelet_daub8;
175 extern const char *format_name_wavelet_daub10;
176 extern const char *format_name_wavelet_daub12;
177 extern const char *format_name_wavelet_daub14;
178 extern const char *format_name_wavelet_daub16;
179 extern const char *format_name_wavelet_daub18;
180 extern const char *format_name_wavelet_daub20;
181 extern const char *format_name_wavelet_least8;
182 extern const char *format_name_wavelet_least10;
183 extern const char *format_name_wavelet_least12;
184 extern const char *format_name_wavelet_least14;
185 extern const char *format_name_wavelet_least16;
186 extern const char *format_name_wavelet_least18;
187 extern const char *format_name_wavelet_least20;
188 extern const char *format_name_wavelet_coiflet6;
189 extern const char *format_name_wavelet_coiflet12;
190 extern const char *format_name_wavelet_coiflet18;
191 extern const char *format_name_wavelet_coiflet24;
192 extern const char *format_name_wavelet_coiflet30;
193 extern const char *format_name_dem;
194 extern const char *format_name_pack_bits;
195 extern const char *format_name_wavelet_qhaar;
196 extern const char *format_name_tmc;
197 extern const char *format_name_nitf;
198 extern const char *format_name_grib;
199 extern const char *format_name_gdal;
200 
201 extern const char *all_data_format_names[r_Data_Format_NUMBER];
202 
203 //@ManMemo: Module: <b>raslib</b>
208 
209 //@ManMemo: Module: <b>raslib</b>
213 r_Data_Format get_data_format_from_name(const char *name);
214 
215 //@ManMemo: Module: <b>raslib</b>
219 extern std::ostream &operator<<(std::ostream &s, const r_Data_Format &d);
220 
222 {
226 };
227 
228 extern const char *scale_function_name_subsampling;
229 extern const char *scale_function_name_bitaggregation;
230 
232 
233 //@ManMemo: Module: <b>raslib</b>
238 
239 //@ManMemo: Module: <b>raslib</b>
244 
245 //@ManMemo: Module: <b>raslib</b>
249 extern std::ostream &operator<<(std::ostream &s, const r_Scale_Function &d);
250 
252 {
262 };
263 
264 extern std::ostream &operator<<(std::ostream &in, r_Index_Type type);
265 
266 //@ManMemo: Module: <b>raslib</b>
276 extern const char *index_name_auto;
277 extern const char *index_name_directory;
278 extern const char *index_name_regdirectory;
279 extern const char *index_name_rplustree;
280 extern const char *index_name_regrplustree;
281 extern const char *index_name_tilecontainer;
282 extern const char *index_name_regcomputed;
283 
284 extern const char *all_index_type_names[r_Index_Type_NUMBER];
285 
286 //@ManMemo: Module: <b>raslib</b>
290 const char *get_name_from_index_type(r_Index_Type it);
291 
292 //@ManMemo: Module: <b>raslib</b>
296 r_Index_Type get_index_type_from_name(const char *name);
297 
317 {
326 };
327 
328 //@ManMemo: Module: <b>raslib</b>
338 extern const char *tiling_name_notiling;
339 extern const char *tiling_name_regulartiling;
340 extern const char *tiling_name_statisticaltiling;
341 extern const char *tiling_name_interesttiling;
342 extern const char *tiling_name_alignedtiling;
343 extern const char *tiling_name_directionaltiling;
344 extern const char *tiling_name_sizetiling;
345 
347 
348 //@ManMemo: Module: <b>raslib</b>
353 
354 //@ManMemo: Module: <b>raslib</b>
359 
360 //@ManMemo: Module: <b>raslib</b>
364 extern std::ostream &operator<<(std::ostream &in, r_Tiling_Scheme type);
365 
386 {
391 };
392 extern std::ostream &operator<<(std::ostream &in, r_Clustering_Scheme type);
393 
397 enum class r_Band_Linearization : std::int8_t
398 {
401  PixelInterleaved = 0,
405 };
406 extern std::ostream &operator<<(std::ostream &in, r_Band_Linearization type);
407 
412 enum class r_Cell_Linearization : std::int8_t
413 {
416  ColumnMajor = 0,
419  RowMajor = 1,
420 };
421 extern std::ostream &operator<<(std::ostream &in, r_Cell_Linearization type);
422 
427 {
428  r_Tile_Structure() noexcept {}
431 
435 };
436 
437 #endif
r_Wavelet_Least20
@ r_Wavelet_Least20
Definition: mddtypes.hh:126
format_name_ppm
const char * format_name_ppm
r_RLE
@ r_RLE
Definition: mddtypes.hh:107
r_Index_Type_NUMBER
@ r_Index_Type_NUMBER
Definition: mddtypes.hh:261
r_RegularTiling
@ r_RegularTiling
Definition: mddtypes.hh:319
format_name_rle
const char * format_name_rle
format_name_wavelet_least20
const char * format_name_wavelet_least20
r_Reg_RPlus_Tree_Index
@ r_Reg_RPlus_Tree_Index
Definition: mddtypes.hh:258
all_scale_function_names
const char * all_scale_function_names[r_Scale_Function_NUMBER]
index_name_tilecontainer
const char * index_name_tilecontainer
r_Dimension
std::uint32_t r_Dimension
number of dimensions in r_Point and r_Minterval.
Definition: mddtypes.hh:56
r_NITF
@ r_NITF
Definition: mddtypes.hh:138
format_name_wavelet_coiflet6
const char * format_name_wavelet_coiflet6
r_Tile_Structure::r_Tile_Structure
r_Tile_Structure() noexcept
Definition: mddtypes.hh:428
format_name_wavelet_daub16
const char * format_name_wavelet_daub16
r_Wavelet_Coiflet30
@ r_Wavelet_Coiflet30
Definition: mddtypes.hh:131
r_NoTiling
@ r_NoTiling
Definition: mddtypes.hh:318
get_index_type_from_name
r_Index_Type get_index_type_from_name(const char *name)
Get a index type for a index type name.
format_name_json
const char * format_name_json
r_CSV
@ r_CSV
Definition: mddtypes.hh:101
tiling_name_directionaltiling
const char * tiling_name_directionaltiling
index_name_regdirectory
const char * index_name_regdirectory
r_Band_Linearization::ChannelInterleaved
@ ChannelInterleaved
First the first band of each pixel is layed out continuously, then the second component,...
format_name_wavelet_coiflet18
const char * format_name_wavelet_coiflet18
r_Cell_Linearization::RowMajor
@ RowMajor
Linearize cells of first row, then second row, and so on.
format_name_jp2
const char * format_name_jp2
r_BMP
@ r_BMP
Definition: mddtypes.hh:106
format_name_dem
const char * format_name_dem
index_name_auto
const char * index_name_auto
The names of all index type, to avoid redundant storage and inconsistencies.
get_name_from_tiling_scheme
const char * get_name_from_tiling_scheme(r_Tiling_Scheme ts)
Get a tiling scheme name for a tiling scheme.
r_Reg_Directory_Index
@ r_Reg_Directory_Index
Definition: mddtypes.hh:256
r_BitAggregation
@ r_BitAggregation
Definition: mddtypes.hh:224
r_Scale_Function_NUMBER
@ r_Scale_Function_NUMBER
Definition: mddtypes.hh:225
format_name_nitf
const char * format_name_nitf
r_Wavelet_Least10
@ r_Wavelet_Least10
Definition: mddtypes.hh:121
r_Pack_Bits
@ r_Pack_Bits
Definition: mddtypes.hh:135
r_RPlus_Tree_Index
@ r_RPlus_Tree_Index
Definition: mddtypes.hh:257
format_name_grib
const char * format_name_grib
tiling_name_regulartiling
const char * tiling_name_regulartiling
r_Sep_ZLib
@ r_Sep_ZLib
Definition: mddtypes.hh:110
r_Reg_Computed_Index
@ r_Reg_Computed_Index
Definition: mddtypes.hh:260
r_Tiling_Scheme
r_Tiling_Scheme
Tiling of the object:
Definition: mddtypes.hh:316
r_Wavelet_Least18
@ r_Wavelet_Least18
Definition: mddtypes.hh:125
format_name_zlib
const char * format_name_zlib
r_Tile_Structure::dataFormat
r_Data_Format dataFormat
Definition: mddtypes.hh:432
r_Ptr
std::ptrdiff_t r_Ptr
for conversion from pointers to integer variables on 64bit arch.
Definition: mddtypes.hh:46
format_name_wavelet_least8
const char * format_name_wavelet_least8
r_TMC
@ r_TMC
Definition: mddtypes.hh:137
r_HDF
@ r_HDF
Definition: mddtypes.hh:99
r_Clustering_Scheme
r_Clustering_Scheme
Clustering of the tiles according to:
Definition: mddtypes.hh:385
r_TIFF
@ r_TIFF
Definition: mddtypes.hh:96
r_PPM
@ r_PPM
Definition: mddtypes.hh:133
r_StatisticalTiling
@ r_StatisticalTiling
Definition: mddtypes.hh:320
format_name_wavelet_daubechies
const char * format_name_wavelet_daubechies
r_Tile_Structure::cellLinearization
r_Cell_Linearization cellLinearization
Definition: mddtypes.hh:434
format_name_hdf
const char * format_name_hdf
r_Sep_RLE
@ r_Sep_RLE
Definition: mddtypes.hh:111
r_Index_Type
r_Index_Type
Definition: mddtypes.hh:251
r_Bytes
size_t r_Bytes
number of bytes in an tile or mdd or type.
Definition: mddtypes.hh:43
r_Wavelet_QHaar
@ r_Wavelet_QHaar
Definition: mddtypes.hh:132
format_name_wavelet_daub18
const char * format_name_wavelet_daub18
r_Based_Cluster_Stat_Clustering
@ r_Based_Cluster_Stat_Clustering
Definition: mddtypes.hh:390
r_Wavelet_Coiflet24
@ r_Wavelet_Coiflet24
Definition: mddtypes.hh:130
r_Data_Format
r_Data_Format
\begin{tabular}{ll} <tt>r_Array</tt> && no compression, row-major memory representation\...
Definition: mddtypes.hh:93
r_Wavelet_Least14
@ r_Wavelet_Least14
Definition: mddtypes.hh:123
get_name_from_data_format
const char * get_name_from_data_format(r_Data_Format fmt)
Get a data format name for a data format.
format_name_wavelet_coiflet24
const char * format_name_wavelet_coiflet24
tiling_name_notiling
const char * tiling_name_notiling
The names of all tiling schems, to avoid redundant storage and inconsistencies.
format_name_auto_compression
const char * format_name_auto_compression
r_DirectionalTiling
@ r_DirectionalTiling
Definition: mddtypes.hh:323
tiling_name_interesttiling
const char * tiling_name_interesttiling
format_name_array
const char * format_name_array
The names of all data types, to avoid redundant storage and inconsistencies.
format_name_wavelet_least14
const char * format_name_wavelet_least14
r_Wavelet_Daub12
@ r_Wavelet_Daub12
Definition: mddtypes.hh:115
r_NETCDF
@ r_NETCDF
Definition: mddtypes.hh:100
r_ECW
@ r_ECW
Definition: mddtypes.hh:136
r_Wavelet_Daub10
@ r_Wavelet_Daub10
Definition: mddtypes.hh:114
r_GRIB
@ r_GRIB
Definition: mddtypes.hh:139
all_data_format_names
const char * all_data_format_names[r_Data_Format_NUMBER]
tiling_name_alignedtiling
const char * tiling_name_alignedtiling
r_Array
@ r_Array
Definition: mddtypes.hh:95
format_name_wavelet_least12
const char * format_name_wavelet_least12
get_data_format_from_name
r_Data_Format get_data_format_from_name(const char *name)
Get a data format for a data format name.
tiling_name_statisticaltiling
const char * tiling_name_statisticaltiling
r_Auto_Index
@ r_Auto_Index
Definition: mddtypes.hh:254
r_Range
std::int64_t r_Range
for axis indexing, e.g.
Definition: mddtypes.hh:53
format_name_wavelet_haar
const char * format_name_wavelet_haar
r_Tile_Container_Index
@ r_Tile_Container_Index
Definition: mddtypes.hh:259
r_Wavelet_Coiflet6
@ r_Wavelet_Coiflet6
Definition: mddtypes.hh:127
format_name_wavelet_daub14
const char * format_name_wavelet_daub14
format_name_bmp
const char * format_name_bmp
r_Data_Format_NUMBER
@ r_Data_Format_NUMBER
Definition: mddtypes.hh:142
r_Wavelet_Coiflet18
@ r_Wavelet_Coiflet18
Definition: mddtypes.hh:129
operator<<
std::ostream & operator<<(std::ostream &s, const r_Data_Format &d)
Output stream operator for objects of type const r_Data_Format.
r_Coords_Order_Clustering
@ r_Coords_Order_Clustering
Definition: mddtypes.hh:388
format_name_wavelet_least18
const char * format_name_wavelet_least18
index_name_regrplustree
const char * index_name_regrplustree
format_name_tiff
const char * format_name_tiff
r_Auto_Compression
@ r_Auto_Compression
Definition: mddtypes.hh:105
r_Wavelet_Daub8
@ r_Wavelet_Daub8
Definition: mddtypes.hh:113
format_name_csv
const char * format_name_csv
r_Wavelet_Daub16
@ r_Wavelet_Daub16
Definition: mddtypes.hh:117
r_JPEG
@ r_JPEG
Definition: mddtypes.hh:97
r_Wavelet_Daub20
@ r_Wavelet_Daub20
Definition: mddtypes.hh:119
index_name_regcomputed
const char * index_name_regcomputed
r_Wavelet_Daub14
@ r_Wavelet_Daub14
Definition: mddtypes.hh:116
scale_function_name_bitaggregation
const char * scale_function_name_bitaggregation
format_name_wavelet_daub10
const char * format_name_wavelet_daub10
r_Wavelet_Least8
@ r_Wavelet_Least8
Definition: mddtypes.hh:120
r_Band_Linearization::PixelInterleaved
@ PixelInterleaved
The components of each pixel are layed out one after another, e.g.
get_scale_function_from_name
r_Scale_Function get_scale_function_from_name(const char *name)
Get a scale function from a scale function name.
format_name_wavelet_qhaar
const char * format_name_wavelet_qhaar
r_JP2
@ r_JP2
Definition: mddtypes.hh:98
r_GDAL_OGR
@ r_GDAL_OGR
Definition: mddtypes.hh:141
r_InterestTiling
@ r_InterestTiling
Definition: mddtypes.hh:321
r_SizeTiling
@ r_SizeTiling
Definition: mddtypes.hh:324
get_tiling_scheme_from_name
r_Tiling_Scheme get_tiling_scheme_from_name(const char *name)
Get a tiling scheme for a tiling scheme name.
format_name_wavelet_daub8
const char * format_name_wavelet_daub8
r_JSON
@ r_JSON
Definition: mddtypes.hh:102
get_name_from_index_type
const char * get_name_from_index_type(r_Index_Type it)
Get a index type name for a index type.
r_Directory_Index
@ r_Directory_Index
Definition: mddtypes.hh:255
format_name_wavelet_daub12
const char * format_name_wavelet_daub12
r_GDAL
@ r_GDAL
Definition: mddtypes.hh:140
r_Cell_Linearization::ColumnMajor
@ ColumnMajor
Linearize cells of first column, then second column, and so on.
format_name_wavelet_daub20
const char * format_name_wavelet_daub20
r_Insertion_Order_Clustering
@ r_Insertion_Order_Clustering
Definition: mddtypes.hh:387
format_name_sep_rle
const char * format_name_sep_rle
r_Wavelet_Coiflet12
@ r_Wavelet_Coiflet12
Definition: mddtypes.hh:128
format_name_pack_bits
const char * format_name_pack_bits
get_name_from_scale_function
const char * get_name_from_scale_function(r_Scale_Function func)
Get a scale function name for a scale function.
format_name_tmc
const char * format_name_tmc
r_ZLib
@ r_ZLib
Definition: mddtypes.hh:104
r_Wavelet_Daubechies
@ r_Wavelet_Daubechies
Definition: mddtypes.hh:109
r_Wavelet_Least16
@ r_Wavelet_Least16
Definition: mddtypes.hh:124
index_name_directory
const char * index_name_directory
index_name_rplustree
const char * index_name_rplustree
r_Tiling_Scheme_NUMBER
@ r_Tiling_Scheme_NUMBER
Definition: mddtypes.hh:325
format_name_wavelet_daub6
const char * format_name_wavelet_daub6
r_DEM
@ r_DEM
Definition: mddtypes.hh:134
r_Band_Linearization
r_Band_Linearization
Indicate how multiband data is linearized in 1D space.
Definition: mddtypes.hh:397
format_name_wavelet_least10
const char * format_name_wavelet_least10
r_Wavelet_Daub6
@ r_Wavelet_Daub6
Definition: mddtypes.hh:112
r_Tile_Structure
Physical raw tile properties in one place.
Definition: mddtypes.hh:426
format_name_jpeg
const char * format_name_jpeg
r_Tile_Structure::r_Tile_Structure
r_Tile_Structure(r_Data_Format f, r_Band_Linearization b, r_Cell_Linearization c)
Definition: mddtypes.hh:429
tiling_name_sizetiling
const char * tiling_name_sizetiling
r_PNG
@ r_PNG
Definition: mddtypes.hh:103
r_Area
std::uint64_t r_Area
number of cells in an mdd object or tile.
Definition: mddtypes.hh:49
all_index_type_names
const char * all_index_type_names[r_Index_Type_NUMBER]
r_Cell_Linearization
r_Cell_Linearization
Linearization of cells from nD to 1D space.
Definition: mddtypes.hh:412
format_name_png
const char * format_name_png
r_Wavelet_Least12
@ r_Wavelet_Least12
Definition: mddtypes.hh:122
r_Wavelet_Daub18
@ r_Wavelet_Daub18
Definition: mddtypes.hh:118
all_tiling_scheme_names
const char * all_tiling_scheme_names[r_Tiling_Scheme_NUMBER]
r_Wavelet_Haar
@ r_Wavelet_Haar
Definition: mddtypes.hh:108
r_SubSampling
@ r_SubSampling
Definition: mddtypes.hh:223
format_name_netcdf
const char * format_name_netcdf
r_Index_Cluster_Clustering
@ r_Index_Cluster_Clustering
Definition: mddtypes.hh:389
r_Invalid_Index
@ r_Invalid_Index
Definition: mddtypes.hh:253
format_name_sep_zlib
const char * format_name_sep_zlib
r_AlignedTiling
@ r_AlignedTiling
Definition: mddtypes.hh:322
r_Scale_Function
r_Scale_Function
Definition: mddtypes.hh:221
r_Tile_Structure::bandLinearization
r_Band_Linearization bandLinearization
Definition: mddtypes.hh:433
format_name_wavelet_coiflet12
const char * format_name_wavelet_coiflet12
scale_function_name_subsampling
const char * scale_function_name_subsampling
format_name_wavelet_least16
const char * format_name_wavelet_least16
format_name_wavelet_coiflet30
const char * format_name_wavelet_coiflet30
format_name_gdal
const char * format_name_gdal