00001 /* 00002 * The information in this file is 00003 * Copyright(c) 2007 Ball Aerospace & Technologies Corporation 00004 * and is subject to the terms and conditions of the 00005 * GNU Lesser General Public License Version 2.1 00006 * The license text is available from 00007 * http://www.gnu.org/licenses/lgpl.html 00008 */ 00009 00010 #ifndef SPECIALMETADATA_H 00011 #define SPECIALMETADATA_H 00012 00013 #include <string> 00014 00015 /** 00016 * Placeholder name for the end of DynamicObject::getAttributeByPath() and 00017 * DynamicObject::setAttributeByPath(). 00018 */ 00019 #define END_METADATA_NAME (std::string("END_METADATA_NAME")) 00020 00021 /** 00022 * The key for a DynamicObject which contains all metadata that is treated specially. 00023 * 00024 * @see \ref specialmetadata 00025 */ 00026 #define SPECIAL_METADATA_NAME (std::string("Special")) 00027 00028 /** 00029 * The key for a DynamicObject used to contain row-oriented metadata. 00030 * 00031 * %Any items contained within this dynamic object will be chipped when the 00032 * RasterElement is chipped. For more details see RasterUtilities::chipMetadata(). %Any 00033 * vectors contained in this item, should be indexed using DimensionDescriptor::getActiveNumber(). 00034 */ 00035 #define ROW_METADATA_NAME (std::string("Row")) 00036 00037 /** 00038 * The key for a DynamicObject used to contain column-oriented metadata. 00039 * 00040 * %Any items contained within this dynamic object will be chipped when the 00041 * RasterElement is chipped. For more details see RasterUtilities::chipMetadata(). %Any 00042 * vectors contained in this item, should be indexed using DimensionDescriptor::getActiveNumber(). 00043 */ 00044 #define COLUMN_METADATA_NAME (std::string("Column")) 00045 00046 /** 00047 * The key for a DynamicObject used to contain band-oriented metadata. 00048 * 00049 * %Any items contained within this dynamic object will be chipped when the 00050 * RasterElement is chipped. For more details see RasterUtilities::chipMetadata(). %Any 00051 * vectors contained in this item, should be indexed using DimensionDescriptor::getActiveNumber(). 00052 */ 00053 #define BAND_METADATA_NAME (std::string("Band")) 00054 00055 /** 00056 * The key for a vector<double> which contains the center wavelengths of the associated 00057 * RasterElement's bands. The wavelengths should be in microns. 00058 * 00059 * This vector should always be the size of RasterDataDescriptor::getBandCount(). An importer 00060 * should specifically populate this vector with RasterFileDescriptor::getBandCount() number 00061 * of items. The center wavelengths should be populated with the center spectral wavelength for 00062 * the given band represented by DimensionDescriptor::getActiveNumber(). 00063 */ 00064 #define CENTER_WAVELENGTHS_METADATA_NAME (std::string("CenterWavelengths")) 00065 00066 /** 00067 * The complete path for a vector<double> which contains the center wavelengths of the associated 00068 * RasterElement's bands. The wavelengths should be in microns. 00069 * 00070 * @see CENTER_WAVELENGTHS_METADATA_NAME 00071 */ 00072 #define CENTER_WAVELENGTHS_METADATA_PATH (SPECIAL_METADATA_NAME + "/" + BAND_METADATA_NAME + "/" + CENTER_WAVELENGTHS_METADATA_NAME) 00073 00074 /** 00075 * The key for a vector<double> which contains the start wavelengths of the associated 00076 * RasterElement's bands. The wavelengths should be in microns. 00077 * 00078 * This vector should always be the size of RasterDataDescriptor::getBandCount(). An importer 00079 * should specifically populate this vector with RasterFileDescriptor::getBandCount() number 00080 * of items. The start wavelengths should be populated with the starting point of the spectral wavelength for 00081 * the given band represented by DimensionDescriptor::getActiveNumber(). 00082 */ 00083 #define START_WAVELENGTHS_METADATA_NAME (std::string("StartWavelengths")) 00084 00085 /** 00086 * The complete path for a vector<double> which contains the start wavelengths of the associated 00087 * RasterElement's bands. The wavelengths should be in microns. 00088 * 00089 * @see START_WAVELENGTHS_METADATA_NAME 00090 */ 00091 #define START_WAVELENGTHS_METADATA_PATH (SPECIAL_METADATA_NAME + "/" + BAND_METADATA_NAME + "/" + START_WAVELENGTHS_METADATA_NAME) 00092 00093 /** 00094 * The key for a vector<double> which contains the end wavelengths of the associated 00095 * RasterElement's bands. The wavelengths should be in microns. 00096 * 00097 * This vector should always be the size of RasterDataDescriptor::getBandCount(). An importer 00098 * should specifically populate this vector with RasterFileDescriptor::getBandCount() number 00099 * of items. The end wavelengths should be populated with the stopping point of the spectral wavelength for 00100 * the given band represented by DimensionDescriptor::getActiveNumber(). 00101 */ 00102 #define END_WAVELENGTHS_METADATA_NAME (std::string("EndWavelengths")) 00103 00104 /** 00105 * The complete path for a vector<double> which contains the end wavelengths of the associated 00106 * RasterElement's bands. The wavelengths should be in microns. 00107 * 00108 * @see END_WAVELENGTHS_METADATA_NAME 00109 */ 00110 #define END_WAVELENGTHS_METADATA_PATH (SPECIAL_METADATA_NAME + "/" + BAND_METADATA_NAME + "/" + END_WAVELENGTHS_METADATA_NAME) 00111 00112 /** 00113 * The key for an attribute of type #WavelengthUnitsType that contains the 00114 * wavelength units that should be displayed to the user. 00115 * 00116 * @see WAVELENGTH_DISPLAY_UNITS_METADATA_PATH 00117 */ 00118 #define WAVELENGTH_DISPLAY_UNITS_METADATA_NAME (std::string("WavelengthDisplayUnits")) 00119 00120 /** 00121 * The complete path for an attribute of type #WavelengthUnitsType that 00122 * contains the wavelength units that should be displayed to the user. 00123 * 00124 * @see WAVELENGTH_DISPLAY_UNITS_METADATA_NAME 00125 */ 00126 #define WAVELENGTH_DISPLAY_UNITS_METADATA_PATH (SPECIAL_METADATA_NAME + "/" + BAND_METADATA_NAME + "/" + WAVELENGTH_DISPLAY_UNITS_METADATA_NAME) 00127 00128 /** 00129 * The key for a vector<string> which contains the names of the associated 00130 * RasterElement's bands. 00131 * 00132 * This vector should always be the size of RasterDataDescriptor::getBandCount(). An importer 00133 * should specifically populate this vector with RasterFileDescriptor::getBandCount() number 00134 * of items. The band names should be populated with the names of the band that should 00135 * be displayed to the user. If this value is present, 00136 * SPECIAL_METADATA_NAME / BAND_NAME_PREFIX_METADATA_NAME will be ignored. 00137 */ 00138 #define NAMES_METADATA_NAME (std::string("Names")) 00139 00140 /** 00141 * The key for a string which contains a common prefix for the names of the associated 00142 * RasterElement's bands. 00143 * 00144 * If provided, this text will be prepended to the DimensionDescriptor::getOriginalNumber() 00145 * of a given band before displaying it to the user. This value will not be used if 00146 * SPECIAL_METADATA_NAME / NAMES_METADATA_NAME has been populated. 00147 */ 00148 #define BAND_NAME_PREFIX_METADATA_NAME (std::string("BandNamePrefix")) 00149 00150 /** 00151 * The key for a DateTime which specifies when the associated DataElement was 00152 * captured. 00153 * 00154 * This key should not be used when there is no clear single 00155 * date/time associated with the DataElement. 00156 */ 00157 #define COLLECTION_DATE_TIME_METADATA_NAME (std::string("CollectionDateTime")) 00158 00159 /** 00160 * The full path for a DateTime which specifies when the associated DataElement was 00161 * captured. 00162 * 00163 * @see COLLECTION_DATE_TIME_METADATA_NAME 00164 */ 00165 #define COLLECTION_DATE_TIME_METADATA_PATH (SPECIAL_METADATA_NAME + "/" + COLLECTION_DATE_TIME_METADATA_NAME) 00166 00167 /** 00168 * The key for a double which specifies the altitude of the sensor when the associated DataElement was 00169 * captured. 00170 */ 00171 #define SENSOR_ALTITUDE_METADATA_NAME (std::string("SensorAltitude")) 00172 00173 /** 00174 * The full path for a double which specifies the altitude of the sensor when the associated DataElement was 00175 * captured. 00176 * 00177 * @see SENSOR_ALTITUDE_METADATA_NAME 00178 */ 00179 #define SENSOR_ALTITUDE_METADATA_PATH (SPECIAL_METADATA_NAME + "/" + SENSOR_ALTITUDE_METADATA_NAME) 00180 00181 /** 00182 * The key for a double which specifies how many degrees a DataElement must be rotated counterclockwise 00183 * such that the sensor flight line is pointing at the top of the screen. 00184 */ 00185 #define SENSOR_UP_ANGLE_METADATA_NAME (std::string("SensorUpAngle")) 00186 00187 /** 00188 * The full path for a double which specifies how many degrees a DataElement must be rotated counterclockwise 00189 * such that the sensor flight line is pointing at the top of the screen. 00190 * 00191 * @see SENSOR_UP_ANGLE_METADATA_NAME 00192 */ 00193 #define SENSOR_UP_ANGLE_METADATA_PATH (SPECIAL_METADATA_NAME + "/" + SENSOR_UP_ANGLE_METADATA_NAME) 00194 00195 /** 00196 * The key for a double which specifies the altitude of the target when the associated DataElement was 00197 * captured. 00198 */ 00199 #define TARGET_ALTITUDE_METADATA_NAME (std::string("TargetAltitude")) 00200 00201 /** 00202 * The full path for a double which specifies the altitude of the target when the associated DataElement was 00203 * captured. 00204 * 00205 * @see TARGET_ALTITUDE_METADATA_NAME 00206 */ 00207 #define TARGET_ALTITUDE_METADATA_PATH (SPECIAL_METADATA_NAME + "/" + TARGET_ALTITUDE_METADATA_NAME) 00208 00209 /** 00210 * The key for a double which specifies the off-nadir angle of the sensor when the associated DataElement was 00211 * captured. 00212 */ 00213 #define OFF_NADIR_ANGLE_METADATA_NAME (std::string("OffNadirAngle")) 00214 00215 /** 00216 * The full path for a double which specifies the off-nadir angle of the sensor when the associated DataElement was 00217 * captured. 00218 * 00219 * @see OFF_NADIR_ANGLE_METADATA_NAME 00220 */ 00221 #define OFF_NADIR_ANGLE_METADATA_PATH (SPECIAL_METADATA_NAME + "/" + OFF_NADIR_ANGLE_METADATA_NAME) 00222 00223 #endif