00001 #ifndef EPR_DDDB_H_INCL
00002 #define EPR_DDDB_H_INCL
00003
00004 #include "epr_api.h"
00005
00006 #ifdef __cplusplus
00007 extern "C"
00008 {
00009 #endif
00010
00011
00012 struct RecordDescriptor {
00013 const char* id;
00014 const EPR_EDataTypeId type;
00015 const char* unit;
00016 const int elem_size;
00017 const char* num_elem;
00018 const char* description;
00019 };
00020
00021 struct DatasetDescriptor {
00022 const char* id;
00023 const char* ds_name;
00024 const struct RecordDescriptor* rec_descriptor;
00025 const char* description;
00026 };
00027
00028 struct BandDescriptor {
00029 const char* id;
00030 const char* rec_name;
00031 const EPR_ESampleModel sample_offset;
00032 const EPR_EDataTypeId type;
00033 const int spectral_index;
00034 const EPR_EScalingMethod scale_method;
00035 const char* scale_offset;
00036 const char* scale_factor;
00037 const char* bitmask_expr;
00038 const char* flag_coding_name;
00039 const char* unit;
00040 const char* description;
00041 };
00042
00043 struct FlagDescriptor {
00044 const char* id;
00045 const int num_indices;
00046 const int bit_indices[2];
00047 const char* description;
00048 };
00049
00050 struct DatasetDescriptorTable {
00051 const char* name;
00052 const char* description;
00053 int num_descriptors;
00054 const struct DatasetDescriptor* descriptors;
00055 };
00056
00057 struct BandDescriptorTable {
00058 const char* name;
00059 const char* description;
00060 int num_descriptors;
00061 const struct BandDescriptor* descriptors;
00062 };
00063
00064 struct FlagDescriptorTable {
00065 const char* name;
00066 const char* description;
00067 int num_descriptors;
00068 const struct FlagDescriptor* descriptors;
00069 };
00070
00071 struct RecordDescriptorTable {
00072 const char* name;
00073 const char* description;
00074 int num_descriptors;
00075 const struct RecordDescriptor* descriptors;
00076 };
00077
00078 extern const struct DatasetDescriptorTable dddb_product_tables[31];
00079 extern const struct BandDescriptorTable dddb_band_tables[25];
00080 extern const struct FlagDescriptorTable dddb_flag_coding_tables[6];
00081 extern const struct RecordDescriptorTable dddb_meris_rec_tables[23];
00082 extern const struct RecordDescriptorTable dddb_aatsr_rec_tables[20];
00083 extern const struct RecordDescriptorTable dddb_asar_rec_tables[20];
00084
00085 #define EPR_NUM_PRODUCT_TABLES 31
00086 #define EPR_NUM_BAND_TABLES 25
00087 #define EPR_NUM_FLAG_CODING_TABLES 6
00088 #define EPR_NUM_MERIS_REC_TABLES 23
00089 #define EPR_NUM_AATSR_REC_TABLES 20
00090 #define EPR_NUM_ASAR_REC_TABLES 20
00091
00092
00093
00094 #ifdef __cplusplus
00095 }
00096 #endif
00097 #endif