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 /
18rasdaman 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
43using r_Bytes = size_t;
44
46using r_Ptr = std::ptrdiff_t;
47
49using r_Area = std::uint64_t;
50
53using r_Range = std::int64_t;
54
56using r_Dimension = std::uint32_t;
57
144
145//@ManMemo: Module: <b>raslib</b>
155extern const char *format_name_array;
156extern const char *format_name_tiff;
157extern const char *format_name_jpeg;
158extern const char *format_name_jp2;
159extern const char *format_name_hdf;
160extern const char *format_name_netcdf;
161extern const char *format_name_csv;
162extern const char *format_name_json;
163extern const char *format_name_png;
164extern const char *format_name_zlib;
165extern const char *format_name_auto_compression;
166extern const char *format_name_bmp;
167extern const char *format_name_ppm;
168extern const char *format_name_rle;
169extern const char *format_name_wavelet_haar;
170extern const char *format_name_wavelet_daubechies;
171extern const char *format_name_sep_zlib;
172extern const char *format_name_sep_rle;
173extern const char *format_name_wavelet_daub6;
174extern const char *format_name_wavelet_daub8;
175extern const char *format_name_wavelet_daub10;
176extern const char *format_name_wavelet_daub12;
177extern const char *format_name_wavelet_daub14;
178extern const char *format_name_wavelet_daub16;
179extern const char *format_name_wavelet_daub18;
180extern const char *format_name_wavelet_daub20;
181extern const char *format_name_wavelet_least8;
182extern const char *format_name_wavelet_least10;
183extern const char *format_name_wavelet_least12;
184extern const char *format_name_wavelet_least14;
185extern const char *format_name_wavelet_least16;
186extern const char *format_name_wavelet_least18;
187extern const char *format_name_wavelet_least20;
188extern const char *format_name_wavelet_coiflet6;
189extern const char *format_name_wavelet_coiflet12;
190extern const char *format_name_wavelet_coiflet18;
191extern const char *format_name_wavelet_coiflet24;
192extern const char *format_name_wavelet_coiflet30;
193extern const char *format_name_dem;
194extern const char *format_name_pack_bits;
195extern const char *format_name_wavelet_qhaar;
196extern const char *format_name_tmc;
197extern const char *format_name_nitf;
198extern const char *format_name_grib;
199extern const char *format_name_gdal;
200
202
203//@ManMemo: Module: <b>raslib</b>
208
209//@ManMemo: Module: <b>raslib</b>
214
215//@ManMemo: Module: <b>raslib</b>
219extern std::ostream &operator<<(std::ostream &s, const r_Data_Format &d);
220
227
228extern const char *scale_function_name_subsampling;
229extern 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>
249extern std::ostream &operator<<(std::ostream &s, const r_Scale_Function &d);
250
263
264extern std::ostream &operator<<(std::ostream &in, r_Index_Type type);
265
266//@ManMemo: Module: <b>raslib</b>
276extern const char *index_name_auto;
277extern const char *index_name_directory;
278extern const char *index_name_regdirectory;
279extern const char *index_name_rplustree;
280extern const char *index_name_regrplustree;
281extern const char *index_name_tilecontainer;
282extern const char *index_name_regcomputed;
283
284extern const char *all_index_type_names[r_Index_Type_NUMBER];
285
286//@ManMemo: Module: <b>raslib</b>
291
292//@ManMemo: Module: <b>raslib</b>
297
327
328//@ManMemo: Module: <b>raslib</b>
338extern const char *tiling_name_notiling;
339extern const char *tiling_name_regulartiling;
340extern const char *tiling_name_statisticaltiling;
341extern const char *tiling_name_interesttiling;
342extern const char *tiling_name_alignedtiling;
343extern const char *tiling_name_directionaltiling;
344extern 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>
364extern std::ostream &operator<<(std::ostream &in, r_Tiling_Scheme type);
365
392extern std::ostream &operator<<(std::ostream &in, r_Clustering_Scheme type);
393
397enum class r_Band_Linearization : std::int8_t
398{
405};
406extern std::ostream &operator<<(std::ostream &in, r_Band_Linearization type);
407
412enum class r_Cell_Linearization : std::int8_t
413{
416 ColumnMajor = 0,
419 RowMajor = 1,
420};
421extern std::ostream &operator<<(std::ostream &in, r_Cell_Linearization type);
422
436
437#endif
const char * tiling_name_sizetiling
const char * tiling_name_notiling
The names of all tiling schems, to avoid redundant storage and inconsistencies.
const char * format_name_sep_rle
const char * index_name_regcomputed
const char * index_name_regdirectory
const char * format_name_wavelet_least16
const char * all_index_type_names[r_Index_Type_NUMBER]
std::int64_t r_Range
for axis indexing, e.g.
Definition mddtypes.hh:53
const char * format_name_wavelet_daubechies
const char * format_name_wavelet_qhaar
const char * all_tiling_scheme_names[r_Tiling_Scheme_NUMBER]
const char * format_name_zlib
const char * format_name_wavelet_haar
const char * all_scale_function_names[r_Scale_Function_NUMBER]
const char * index_name_rplustree
const char * format_name_wavelet_coiflet18
const char * format_name_pack_bits
const char * format_name_jp2
const char * format_name_netcdf
const char * format_name_rle
const char * tiling_name_directionaltiling
const char * get_name_from_data_format(r_Data_Format fmt)
Get a data format name for a data format.
const char * format_name_jpeg
std::uint32_t r_Dimension
number of dimensions in r_Point and r_Minterval.
Definition mddtypes.hh:56
const char * get_name_from_index_type(r_Index_Type it)
Get a index type name for a index type.
const char * index_name_tilecontainer
r_Band_Linearization
Indicate how multiband data is linearized in 1D space.
Definition mddtypes.hh:398
@ PixelInterleaved
The components of each pixel are layed out one after another, e.g.
@ ChannelInterleaved
First the first band of each pixel is layed out continuously, then the second component,...
const char * format_name_bmp
const char * format_name_auto_compression
const char * format_name_gdal
const char * format_name_wavelet_least10
std::ptrdiff_t r_Ptr
for conversion from pointers to integer variables on 64bit arch.
Definition mddtypes.hh:46
const char * get_name_from_tiling_scheme(r_Tiling_Scheme ts)
Get a tiling scheme name for a tiling scheme.
const char * format_name_wavelet_least8
r_Scale_Function
Definition mddtypes.hh:222
@ r_SubSampling
Definition mddtypes.hh:223
@ r_BitAggregation
Definition mddtypes.hh:224
@ r_Scale_Function_NUMBER
Definition mddtypes.hh:225
r_Index_Type
Definition mddtypes.hh:252
@ r_Reg_Computed_Index
Definition mddtypes.hh:260
@ r_Tile_Container_Index
Definition mddtypes.hh:259
@ r_Reg_RPlus_Tree_Index
Definition mddtypes.hh:258
@ r_Directory_Index
Definition mddtypes.hh:255
@ r_Auto_Index
Definition mddtypes.hh:254
@ r_Index_Type_NUMBER
Definition mddtypes.hh:261
@ r_Reg_Directory_Index
Definition mddtypes.hh:256
@ r_RPlus_Tree_Index
Definition mddtypes.hh:257
@ r_Invalid_Index
Definition mddtypes.hh:253
size_t r_Bytes
number of bytes in an tile or mdd or type.
Definition mddtypes.hh:43
const char * format_name_wavelet_daub8
r_Data_Format get_data_format_from_name(const char *name)
Get a data format for a data format name.
const char * format_name_wavelet_daub20
const char * format_name_tmc
const char * format_name_csv
r_Index_Type get_index_type_from_name(const char *name)
Get a index type for a index type name.
const char * tiling_name_statisticaltiling
const char * format_name_sep_zlib
const char * tiling_name_interesttiling
const char * format_name_wavelet_coiflet12
r_Tiling_Scheme get_tiling_scheme_from_name(const char *name)
Get a tiling scheme for a tiling scheme name.
const char * format_name_wavelet_coiflet6
std::uint64_t r_Area
number of cells in an mdd object or tile.
Definition mddtypes.hh:49
const char * format_name_wavelet_least14
const char * format_name_wavelet_least18
r_Tiling_Scheme
Tiling of the object:
Definition mddtypes.hh:317
@ r_Tiling_Scheme_NUMBER
Definition mddtypes.hh:325
@ r_DirectionalTiling
Definition mddtypes.hh:323
@ r_RegularTiling
Definition mddtypes.hh:319
@ r_NoTiling
Definition mddtypes.hh:318
@ r_InterestTiling
Definition mddtypes.hh:321
@ r_SizeTiling
Definition mddtypes.hh:324
@ r_StatisticalTiling
Definition mddtypes.hh:320
@ r_AlignedTiling
Definition mddtypes.hh:322
const char * all_data_format_names[r_Data_Format_NUMBER]
const char * format_name_png
const char * format_name_tiff
const char * format_name_wavelet_coiflet30
const char * format_name_wavelet_daub10
const char * format_name_wavelet_daub16
const char * get_name_from_scale_function(r_Scale_Function func)
Get a scale function name for a scale function.
std::ostream & operator<<(std::ostream &s, const r_Data_Format &d)
Output stream operator for objects of type const r_Data_Format.
const char * format_name_array
The names of all data types, to avoid redundant storage and inconsistencies.
const char * index_name_auto
The names of all index type, to avoid redundant storage and inconsistencies.
const char * index_name_regrplustree
const char * format_name_json
r_Scale_Function get_scale_function_from_name(const char *name)
Get a scale function from a scale function name.
const char * format_name_grib
const char * format_name_hdf
const char * scale_function_name_bitaggregation
const char * format_name_nitf
const char * tiling_name_alignedtiling
r_Data_Format
\begin{tabular}{ll} <tt>r_Array</tt> && no compression, row-major memory representation\...
Definition mddtypes.hh:94
@ r_JP2
Definition mddtypes.hh:98
@ r_Sep_ZLib
Definition mddtypes.hh:110
@ r_CSV
Definition mddtypes.hh:101
@ r_Wavelet_Least10
Definition mddtypes.hh:121
@ r_Wavelet_Daub12
Definition mddtypes.hh:115
@ r_Wavelet_Coiflet30
Definition mddtypes.hh:131
@ r_Wavelet_Coiflet18
Definition mddtypes.hh:129
@ r_DEM
Definition mddtypes.hh:134
@ r_BMP
Definition mddtypes.hh:106
@ r_Wavelet_Daubechies
Definition mddtypes.hh:109
@ r_JPEG
Definition mddtypes.hh:97
@ r_Wavelet_Least20
Definition mddtypes.hh:126
@ r_RLE
Definition mddtypes.hh:107
@ r_Wavelet_Daub16
Definition mddtypes.hh:117
@ r_JSON
Definition mddtypes.hh:102
@ r_PPM
Definition mddtypes.hh:133
@ r_Auto_Compression
Definition mddtypes.hh:105
@ r_TIFF
Definition mddtypes.hh:96
@ r_Wavelet_Coiflet24
Definition mddtypes.hh:130
@ r_Wavelet_QHaar
Definition mddtypes.hh:132
@ r_HDF
Definition mddtypes.hh:99
@ r_Wavelet_Daub18
Definition mddtypes.hh:118
@ r_Wavelet_Least12
Definition mddtypes.hh:122
@ r_Wavelet_Least14
Definition mddtypes.hh:123
@ r_Pack_Bits
Definition mddtypes.hh:135
@ r_Wavelet_Daub20
Definition mddtypes.hh:119
@ r_ZLib
Definition mddtypes.hh:104
@ r_NITF
Definition mddtypes.hh:138
@ r_NETCDF
Definition mddtypes.hh:100
@ r_GRIB
Definition mddtypes.hh:139
@ r_Data_Format_NUMBER
Definition mddtypes.hh:142
@ r_GDAL
Definition mddtypes.hh:140
@ r_TMC
Definition mddtypes.hh:137
@ r_Wavelet_Coiflet6
Definition mddtypes.hh:127
@ r_ECW
Definition mddtypes.hh:136
@ r_Sep_RLE
Definition mddtypes.hh:111
@ r_Wavelet_Least16
Definition mddtypes.hh:124
@ r_Wavelet_Least8
Definition mddtypes.hh:120
@ r_PNG
Definition mddtypes.hh:103
@ r_Wavelet_Coiflet12
Definition mddtypes.hh:128
@ r_Wavelet_Haar
Definition mddtypes.hh:108
@ r_Wavelet_Daub6
Definition mddtypes.hh:112
@ r_Wavelet_Daub10
Definition mddtypes.hh:114
@ r_Array
Definition mddtypes.hh:95
@ r_GDAL_OGR
Definition mddtypes.hh:141
@ r_Wavelet_Daub8
Definition mddtypes.hh:113
@ r_Wavelet_Daub14
Definition mddtypes.hh:116
@ r_Wavelet_Least18
Definition mddtypes.hh:125
const char * format_name_wavelet_daub12
r_Cell_Linearization
Linearization of cells from nD to 1D space.
Definition mddtypes.hh:413
@ RowMajor
Linearize cells of first row, then second row, and so on.
@ ColumnMajor
Linearize cells of first column, then second column, and so on.
const char * format_name_wavelet_daub6
const char * format_name_wavelet_daub18
const char * format_name_wavelet_daub14
const char * format_name_wavelet_least20
r_Clustering_Scheme
Clustering of the tiles according to:
Definition mddtypes.hh:386
@ r_Index_Cluster_Clustering
Definition mddtypes.hh:389
@ r_Based_Cluster_Stat_Clustering
Definition mddtypes.hh:390
@ r_Coords_Order_Clustering
Definition mddtypes.hh:388
@ r_Insertion_Order_Clustering
Definition mddtypes.hh:387
const char * format_name_wavelet_least12
const char * format_name_ppm
const char * format_name_dem
const char * format_name_wavelet_coiflet24
const char * scale_function_name_subsampling
const char * index_name_directory
const char * tiling_name_regulartiling
Physical raw tile properties in one place.
Definition mddtypes.hh:427
r_Data_Format dataFormat
Definition mddtypes.hh:432
r_Band_Linearization bandLinearization
Definition mddtypes.hh:433
r_Tile_Structure() noexcept
Definition mddtypes.hh:428
r_Cell_Linearization cellLinearization
Definition mddtypes.hh:434
r_Tile_Structure(r_Data_Format f, r_Band_Linearization b, r_Cell_Linearization c)
Definition mddtypes.hh:429