void ossimSensorModelFactory::findCoarseGrid(ossimFilename& result, const ossimFilename& geomFile)const { result = geomFile; result.setFile(result.fileNoExtension()+"_ocg"); result.setExtension("dat"); if(!result.exists()) { result = geomFile; result.setExtension("dat"); } // let's find a .dat file in the current directory // if(!result.exists()) { result = ""; ossimDirectory directoryList(geomFile.path()); ossimFilename file; if(directoryList.getFirst(file, ossimDirectory::OSSIM_DIR_FILES)) { ossimString testString = "OSSIM_DBL_GRID"; char tempBuf[14]; do { if(file.ext().downcase() == "dat") { std::ifstream in(file.c_str()); if(in) { in.read((char*)tempBuf, 14); in.close(); if(ossimString(tempBuf, tempBuf+14) == testString) { result = file; } } } }while((directoryList.getNext(file))&&(result == "")); } // try to find it } }
void ossimSrtmElevationDatabase::createRelativePath(ossimFilename& file, const ossimGpt& gpt)const { int ilat = static_cast<int>(floor(gpt.latd())); if (ilat < 0) { file = "S"; } else { file = "N"; } ilat = abs(ilat); std::ostringstream os1; os1 << std::setfill('0') << std::setw(2) <<ilat; file += os1.str().c_str(); int ilon = static_cast<int>(floor(gpt.lond())); if (ilon < 0) { file += "W"; } else { file += "E"; } ilon = abs(ilon); std::ostringstream os2; os2 << std::setfill('0') << std::setw(3) << ilon; file += os2.str().c_str(); file.setExtension("hgt"); }