bool rspfGeneralRasterTileSource::open() { static const char MODULE[] = "rspfGeneralRasterTileSource::open"; if (traceDebug()) CLOG << " Entered..." << std::endl; bool result = false; if(isOpen()) { close(); } //--- // Find the header file: // // We need lines, samples, bands, scalar and interleave at a minimum: // // A general raster image requires a keyword list to get essential image // information or meta data as its sometimes called. The meta data file // can have four types of extensions: ".omd", ".hdr", ".kwl" and xml. // Look for them in that order. // Note that the ".omd" extension is for "Ossim Meta Data" and was made // up to avoid conflicting with other software packages ".hdr" files. //--- if ( m_rasterInfo.open( theImageFile ) ) { theMetaData = m_rasterInfo.getImageMetaData(); result = initializeHandler(); if ( result ) { completeOpen(); if ( isBandSelector() && m_outputBandList.size() && ( isIdentityBandList( m_outputBandList ) == false ) ) { // This does range checking and will pass to overview if open. setOutputBandList( m_outputBandList ); } } } if ( traceDebug() ) { rspfNotify(rspfNotifyLevel_DEBUG) << MODULE << " Exit status: " << (result?"true":"false") << std::endl; } return result; }
bool ossimGeneralRasterTileSource::setOutputBandList(const std::vector<ossim_uint32>& band_list) { bool result = false; if ( isBandSelector() ) { // Making a copy as passed in list could be our m_outputBandList. std::vector<ossim_uint32> inputList = band_list; result = ossimImageHandler::setOutputBandList( inputList, m_outputBandList ); if ( result && m_tile.valid() ) { if ( m_tile->getNumberOfBands() != m_outputBandList.size() ) { m_tile = 0; // Force a reinitialize on next getTile. } } } return result; }