61 if ( value.
downcase() ==
"nanometers" )
71 std::vector<ossimString> list;
78 std::vector<ossimString>::const_iterator i = list.begin();
82 while ( i != list.end() )
84 wavelength = (*i).toFloat64();
85 m_map.insert( std::make_pair( wavelength, band ) );
104 WavelengthMap::const_iterator result = m_map.lower_bound( requestedWavelength );
105 if ( result != m_map.end() )
107 if ( result != m_map.begin() )
110 WavelengthMap::const_iterator lower = result;
113 ossim_float64 t = (requestedWavelength - lower->first) / (result->first -lower->first);
125 if ( result != m_map.end() )
128 if ( std::fabs( result->first - requestedWavelength) > thresholdFromCenter )
130 result = m_map.end();
143 WavelengthMap::const_iterator i =
144 findClosestIterator( requestedWavelength, thresholdFromCenter );
145 if ( i != m_map.end() )
147 result = (*i).second;
175 WavelengthMap::const_iterator r =
176 findClosestIterator( RED_WAVELENGTH, RED_THRESHOLD_FROM_CENTER );
177 WavelengthMap::const_iterator g =
178 findClosestIterator( GREEN_WAVELENGTH, GREEN_THRESHOLD_FROM_CENTER );
179 WavelengthMap::const_iterator b =
180 findClosestIterator( BLUE_WAVELENGTH, BLUE_THRESHOLD_FROM_CENTER );
182 if ( (r != m_map.end()) && (g != m_map.end()) && (b != m_map.end()) )
185 bands[0] = (*r).second;
186 bands[1] = (*g).second;
187 bands[2] = (*b).second;
WavelengthMap::const_iterator end() const
WavelengthMap::const_iterator findClosestIterator(const ossim_float64 &requestedWavelength, const ossim_float64 &thresholdFromCenter) const
Finds iterator closest to wavelength.
const ossimWavelength::WavelengthMap & getMap() const
void split(std::vector< ossimString > &result, const ossimString &separatorList, bool skipBlankFields=false) const
Splits this string into a vector of strings (fields) using the delimiter list specified.
bool getRgbBands(std::vector< ossim_uint32 > &bands) const
Gets rgb bands if "wavelength" keyword is present.
std::string::size_type size() const
unsigned int ossim_uint32
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
static ossimString downcase(const ossimString &aString)
~ossimWavelength()
virtual destructor
ossimWavelength()
default constructor
const ossimWavelength & operator=(const ossimWavelength &rhs)
assignment operator=
ossim_int32 findClosestIndex(const ossim_float64 &requestedWavelength, const ossim_float64 &thresholdFromCenter) const
Finds index closest to wavelength.
std::map< ossim_float64, ossim_uint32 > WavelengthMap
bool initialize(const ossimEnviHeader &hdr)
Initializes map from ENVI header class.