bool ossimImageUtil::isFiltered(const ossimFilename& file) const { bool result = false; if ( file.size() ) { // Strip full path to base name. std::string baseName = file.file().string(); if ( baseName.size() ) { std::vector<std::string>::const_iterator i = m_filteredImages.begin(); while ( i != m_filteredImages.end() ) { if ( baseName == (*i) ) { result = true; break; } ++i; } } } #if 0 /* Please leave for debug. (drb) */ if(traceDebug()) { ossimNotify(ossimNotifyLevel_DEBUG) << "ossimFileWalker::isFiltered file " << (result?"filtered: ":"not filtered: ") << file << "\n"; } #endif return result; }
//************************************************************************************************* //! Reads the TIL file for pertinent info. Returns TRUE if successful //************************************************************************************************* bool ossimQuickbirdRpcModel::parseTileData(const ossimFilename& image_file) { ossimFilename tileFile (image_file); tileFile.setExtension("TIL"); if (!findSupportFile(tileFile)) return false; ossimQuickbirdTile tileHdr; if(!tileHdr.open(tileFile)) return false; ossimQuickbirdTileInfo info; if(!tileHdr.getInfo(info, image_file.file())) return false; if((info.theUlXOffset != OSSIM_INT_NAN) && (info.theUlYOffset != OSSIM_INT_NAN) && (info.theLrXOffset != OSSIM_INT_NAN) && (info.theLrYOffset != OSSIM_INT_NAN) && (info.theLlXOffset != OSSIM_INT_NAN) && (info.theLlYOffset != OSSIM_INT_NAN) && (info.theUrXOffset != OSSIM_INT_NAN) && (info.theUrYOffset != OSSIM_INT_NAN)) { theImageClipRect = ossimIrect(ossimIpt(info.theUlXOffset, info.theUlYOffset), ossimIpt(info.theUrXOffset, info.theUrYOffset), ossimIpt(info.theLrXOffset, info.theLrYOffset), ossimIpt(info.theLlXOffset, info.theLlYOffset)); } else if ((info.theUlXOffset != OSSIM_INT_NAN) && (info.theUlYOffset != OSSIM_INT_NAN) && (theImageClipRect.width() != OSSIM_INT_NAN) && (theImageClipRect.height() != OSSIM_INT_NAN)) { theImageClipRect = ossimIrect(info.theUlXOffset, info.theUlYOffset, info.theUlXOffset+theImageClipRect.width()-1, info.theUlYOffset+theImageClipRect.height()-1); } return true; }
void ossimQtSingleImageWindow::displayImage(const ossimFilename& file) { ossimRefPtr<ossimImageHandler> ih = ossimImageHandlerRegistry::instance()->open(file); if (!ih) { QString caption = "Sorry:"; QString text = "Could not find the image handler for file:\n"; text += file.c_str(); QMessageBox::information( this, caption, text, QMessageBox::Ok ); return; } if (ih->getNumberOfDecimationLevels() == 1) { QString caption("Question:"); QString text = "Would you like to build reduced resolution data sets?\n"; text += "Note:\n"; text += "This can take some time depending on the size of your image."; text += "\nAlternatively use the command line application: \"img2rr\""; int answer = QMessageBox::question( this, caption, text, QMessageBox::Yes, QMessageBox::No); if (answer == QMessageBox::Yes) { //--- // We need to listen for the open overview signal to rebuild the // theResolutionLevelMenu. //--- ih->addListener(this); buildOverViews( ih.get() ); } } createImageChain( ih.get() ); // Build the resolution level menu. buildResolutionLevelMenu(); // Give it to the widget. theImageWidget->connectMyInputTo(theImageChain.get()); theImageWidget->refresh(); connectMyInputTo(theImageChain.get()); QString caption = "iview : "; caption += file.file().c_str(); setCaption(caption); }
//******************************************************************* // Private Method: //******************************************************************* bool ossimKeywordlist::parseFile(const ossimFilename& file, bool ignoreBinaryChars) { std::ifstream is; is.open(file.c_str(), std::ios::in | std::ios::binary); if ( !is.is_open() ) { // ESH 07/2008, Trac #234: OSSIM is case sensitive // when using worldfile templates during ingest // -- If first you don't succeed with the user-specified // filename, try again with the results of a case insensitive search. ossimDirectory directory(file.path()); ossimFilename filename(file.file()); std::vector<ossimFilename> result; bool bSuccess = directory.findCaseInsensitiveEquivalents( filename, result ); if ( bSuccess == true ) { int numResults = (int)result.size(); int i; for ( i=0; i<numResults && !is.is_open(); ++i ) { is.open( result[i].c_str(), std::ios::in | std::ios::binary ); } } if ( !is.is_open() ) { if ( traceDebug() ) { // report all errors that aren't existence problems. // we want to know about things like permissions, too many open files, etc. ossimNotify(ossimNotifyLevel_DEBUG) << "Error opening file: " << file.c_str() << std::endl; } return false; } } bool result = parseStream(is, ignoreBinaryChars); is.close(); return result; }
bool ossimSharedPluginRegistry::isLoaded(const ossimFilename& filename) const { ossimFilename fileOnly = filename.file(); bool result = false; ossim_uint32 count = getNumberOfPlugins(); for (ossim_uint32 i = 0; i < count; ++i) { const ossimPluginLibrary* pi = getPlugin(i); if (pi) { if (fileOnly == ossimFilename(pi->getName()).file()) { result = true; break; } } } return result; }
bool isIgnoredFile(const ossimFilename& file) { bool status = false; if (trace) { cout << "file: " << file << endl; } if ( file.size() ) { ossimFilename f = file.file(); ossimFilename e = file.ext(); if ( ( f == ".moc" ) || ( f == ".svn" ) || ( f == "CMakeCache.txt" ) || ( f == "CMakeFiles" ) || ( f == "cmake_install.cmake" ) || ( f == "cmake_uninstall.cmake" ) || ( f == "CVS" ) || ( f == "doc" ) || ( f == ".cvsignore" ) || ( f == "bin" ) || ( f == "build" ) || ( f == "builds" ) || ( f == "configure") || ( f == "config.log" ) || ( f == "config.status") || ( f == "lib" ) || ( f == "Makefile" ) || ( f == "Makefile.common" ) || ( f == "make.out" ) || ( f == "projects") || ( f == "wxmac.icns") || ( f == "xcode" ) || ( e == "d" ) || // dot d file ( e == "o" ) || // object file ( e == "obj" ) || ( e == "exe" ) || ( e == "tmp" ) ) { status = true; } else if ( file.contains("apps") || file.contains("test") ) { if ( file.isDir() ) // Go into apps and test dir. { status = false; } else if ( (e != "h") && (e != "cpp") ) { // Ignore binary files. Only diff headers and source files. status = true; } } if ( file[file.size()-1] == '~' ) { status = true; // xemacs } } // if ( file.size() ) else { status = true; // empty } if ( trace && (status == true) ) { cout << "ignoring file: " << file << endl; } return status; }
void ossimLandsatTileSource::openHeader(const ossimFilename& file) { //*** // Landsat file name example: l71024031_03119990929_hpn.fst // Three header header file type substrings: // HPN = Pan // HRF = VNIR/SWIR (visible near infrared/shortwave infrared) // HTM = Thermal //*** ossimFilename hdr = file.file(); hdr.downcase(); theFfHdr = 0; if ( hdr.contains("hpn") || hdr.contains("hrf") || hdr.contains("htm") ) { theFfHdr = new ossimFfL7(file.c_str()); } else if (hdr.contains("header.dat")) { theFfHdr = new ossimFfL5(file.c_str()); } else { theFfHdr = 0; return; } if (theFfHdr->getErrorStatus() != ossimErrorCodes::OSSIM_OK) { theFfHdr = 0; } return; // I had to force the open to go with a header since there are duplicate entries when scanning // landsat directories. // For now I am commenting this code out. // #if 0 //*** // User may have passed in an image file name in which case the header file // must be derived from it. //*** if (hdr.size() < 25) { // file name not long enough... if (traceDebug()) { ossimNotify(ossimNotifyLevel_DEBUG) << "ossimLandsatTileSource::openHeader DEBUG:" << "\nNot a standard landsat 7 file name: " << hdr << std::endl; return; } } char substr[4]; const char* f = hdr.c_str(); strncpy(substr, (f+22), 3); substr[3] = '\0'; ossimString s1 = substr; ossimString s2; s1.downcase(); if (s1 == "b80") { s2 = "hpn"; } else if (s1 == "b61" || s1 == "b62") { s2 = "htm"; } else if (s1 == "b10" || s1 == "b20" || s1 == "b30" || s1 == "b40" || s1 == "b50" || s1 == "b70") { s2 = "hrf"; } else { // Not of any format we know of... if (traceDebug()) { ossimNotify(ossimNotifyLevel_DEBUG) << "ossimLandsatTileSource::openHeader DEBUG:" << "\nCould not derive header name from: " << file << std::endl; } return; } // Set the case to be the same as the file passed in. if (substr[0] == 0x42) // ascii "B" { s1.upcase(); s2.upcase(); hdr.upcase(); // Header files alway start with "L71" hdr = hdr.substitute(ossimString("L72"), ossimString("L71")); } else { // Header files alway start with "l71" hdr = hdr.substitute(ossimString("l72"), ossimString("l71")); } // Make the hdr file name. hdr = hdr.substitute(s1, s2); ossimFilename f1 = file.drive(); f1 += file.path(); hdr = f1.dirCat(hdr); theFfHdr = new ossimFfL7(hdr.c_str()); if (theFfHdr->getErrorStatus() != ossimErrorCodes::OSSIM_OK) { delete theFfHdr; theFfHdr = NULL; } #endif }