本文整理汇总了C++中ossimFilename::expand方法的典型用法代码示例。如果您正苦于以下问题:C++ ossimFilename::expand方法的具体用法?C++ ossimFilename::expand怎么用?C++ ossimFilename::expand使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ossimFilename
的用法示例。
在下文中一共展示了ossimFilename::expand方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: writeDotRpfFiles
// Note: throws ossimException on error.
void ossimRpfUtil::writeDotRpfFiles( const ossimFilename& aDotTocFile,
const ossimFilename& outputDir )
{
static const char MODULE[] = "ossimRpfUtil::writeDotRpfFiles";
if ( traceDebug() )
{
ossimNotify(ossimNotifyLevel_DEBUG)
<< MODULE << " entered..."
<< "\na.toc file: " << aDotTocFile
<< "\noutput directory: " << outputDir
<< "\n";
}
// Parse the a.toc file:
ossimRefPtr<ossimRpfToc> toc = new ossimRpfToc();
if ( toc->parseFile(aDotTocFile) != ossimErrorCodes::OSSIM_OK )
{
std::string e = MODULE;
e += " ERROR:\nCould not open: ";
e+= aDotTocFile.string();
throw ossimException(e);
}
if ( outputDir.expand().exists() == false )
{
if ( !outputDir.createDirectory(true, 0775) )
{
std::string e = MODULE;
e += " ERROR:\nCould not create directory: ";
e+= outputDir.c_str();
throw ossimException(e);
}
}
//---
// Go through the entries...
//---
ossim_uint32 entries = toc->getNumberOfEntries();
for (ossim_uint32 entry = 0; entry < entries; ++entry)
{
const ossimRpfTocEntry* tocEntry = toc->getTocEntry(entry);
if (tocEntry)
{
if ( tocEntry->isEmpty() == false )
{
writeDotRpfFile(toc.get(), tocEntry, outputDir, entry);
}
}
else
{
std::string e = MODULE;
e += " ERROR: Null entry: ";
e += ossimString::toString(entry).string();
throw ossimException(e);
}
}
} // End: ossimRpfUtil::writeDotRpfFiles
示例2: ossimNotify
bool ossimplugins::ossimRadarSat2TiffReader::open(const ossimFilename& file)
{
static const char MODULE[] = "ossimplugins::ossimRadarSat2TiffReader::open";
if (traceDebug())
{
ossimNotify(ossimNotifyLevel_DEBUG)
<< MODULE << " entered...\n"
<< "file: " << file << "\n";
}
bool result = false;
if ( isOpen() )
{
close();
}
// Check extension to see if it's xml.
if ( file.ext().downcase() == "xml" )
{
ossimXmlDocument* xdoc = new ossimXmlDocument();
if ( xdoc->openFile(file) )
{
// See if it's a TerraSAR-X product xml file.
if ( isRadarSat2ProductFile(xdoc) )
{
ossimString s;
ossimRadarSat2ProductDoc helper;
if ( helper.getImageFile(xdoc, s) )
{
ossimFilename imageFile = file.expand().path();
imageFile = imageFile.dirCat(s);
setFilename(imageFile);
result = ossimTiffTileSource::open();
if (result)
{
theProductXmlFile = file;
completeOpen();
}
}
}
}
delete xdoc;
xdoc = 0;
} // matches: if ( file.ext().downcase() == "xml" )
if (traceDebug())
{
ossimNotify(ossimNotifyLevel_DEBUG)
<< MODULE << " exit status = " << (result?"true":"false\n")
<< std::endl;
}
return result;
}
示例3: writeDotRpfFile
//---
// Writer a dot rpf file for entry to output directory.
//
// NOTES:
//
// 1) All coordinate written out in AREA or edge to edge format.
// 2) Throws ossimException on error.
//---
void ossimRpfUtil::writeDotRpfFile( const ossimRpfToc* toc,
const ossimRpfTocEntry* tocEntry,
const ossimFilename& outputDir,
ossim_uint32 entry)
{
static const char MODULE[] = "ossimRpfUtil::writeDotRpfFile";
if ( traceDebug() )
{
ossimNotify(ossimNotifyLevel_DEBUG)
<< MODULE << " entered..."
<< "\noutput directory: " << outputDir
<< "\nentry: " << entry << "\n";
}
if ( !toc )
{
std::string errMsg = MODULE;
errMsg += " ERROR toc pointer null!";
throw ossimException(errMsg);
}
if ( !tocEntry )
{
std::string errMsg = MODULE;
errMsg += " ERROR toc entry pointer null!";
throw ossimException(errMsg);
}
// Get the file name.
ossimFilename outFile;
if ( outputDir.expand().isDir() )
{
getDotRfpFilenameForEntry(outputDir, entry, outFile);
}
else
{
outFile = outputDir;
}
// Open the file to write.
std::ofstream os;
os.open(outFile.c_str(), ios::out);
if ( os.good() == false )
{
std::string errMsg = MODULE;
errMsg += "ERROR could not open: ";
errMsg += outFile.string();
throw ossimException(errMsg);
}
// Set up the output stream fix with full precision for ground points.
os << setiosflags(std::ios_base::fixed) << setprecision(15);
//---
// Overall TOC entry bounds:
//
// Write the first line which is the bounding box of the entry in the form of:
// "89.9850464205332, 23.9892538162654|90.5085823882692, 24.5002602501599|1"
// lr-lon lr-lat ul-lon ul-lat
//---
ossimRefPtr<ossimImageGeometry> geom = tocEntry->getImageGeometry();
if( geom.valid() == false)
{
std::string errMsg = "ERROR could not get geometry.";
errMsg += outFile.string();
throw ossimException(errMsg);
}
// Rectangle in image space.
ossimIrect outputRect;
tocEntry->getBoundingRect(outputRect);
// bands:
ossim_uint32 bands = tocEntry->getNumberOfBands();
// scale:
ossimDpt scale;
tocEntry->getDecimalDegreesPerPixel(scale);
ossimDpt halfPix = scale / 2.0;
ossimGpt llg;
ossimGpt urg;
geom->localToWorld(outputRect.ur(), urg);
geom->localToWorld(outputRect.ll(), llg);
if ( traceDebug() )
{
ossimNotify(ossimNotifyLevel_DEBUG)
<< "outputRect: " << outputRect
<< "\nbands: " << bands
<< "\nscale: " << scale
<< "\nllg: " << llg
//.........这里部分代码省略.........
示例4: open
bool ossimGeneralRasterInfo::open( const ossimFilename& imageFile )
{
static const char MODULE[] = "ossimGeneralRasterInfo::open";
if ( traceDebug() )
{
ossimNotify(ossimNotifyLevel_DEBUG)
<< MODULE << " entered..." << "\nimageFile: " << imageFile << std::endl;
}
bool result = false;
// Wipe any previous state slick.
clear();
ossimFilename copyFile = imageFile;
if ( !imageFile.exists() )
{
copyFile = imageFile.expand();
}
// Look for the headrer of omd file as they are written out by img2rr.
ossimFilename hdr = copyFile;
hdr.setExtension("hdr"); // image.hdr
if ( !hdr.exists() )
{
hdr = imageFile;
hdr.string() += ".hdr"; // image.ras.hdr
if ( ! hdr.exists() )
{
hdr = imageFile;
hdr.setExtension("xml"); // image.xml
}
}
if ( hdr.exists() )
{
if ( traceDebug() )
{
ossimNotify(ossimNotifyLevel_DEBUG) << "header file: " << hdr << std::endl;
}
ossimString ext = hdr.ext().downcase();
if ( ext == "hdr" )
{
if ( ossimEnviHeader::isEnviHeader( hdr ) )
{
result = initializeFromEnviHdr( hdr );
}
else
{
result = initializeFromHdr( imageFile, hdr );
}
if ( !result )
{
// Could be an ossim meta data file:
ossimKeywordlist kwl( hdr );
result = loadState( kwl, 0 );
}
}
else if ( ext == "xml" )
{
result = initializeFromXml( imageFile, hdr );
}
}
//---
// Set the file name. Needed for ossimGeneralRasterTileSource::open.
// Note set here above loadState call to stop loadState from returning
// false if no image file found.
//---
if ( theImageFileList.empty() )
{
setImageFile( imageFile );
}
ossimFilename omd = imageFile;
omd.setExtension("omd"); // image.omd
if ( !omd.exists() )
{
omd.setExtension("kwl"); // image.kwl
}
if ( omd.exists() )
{
if ( traceDebug() )
{
ossimNotify(ossimNotifyLevel_DEBUG) << "omd file: " << omd << std::endl;
}
ossimKeywordlist kwl( omd );
if ( result && theMetaData.getNumberOfBands() )
{
//---
// Just update the band info in case it has min/max values from
// a compute min/max scan.
//---
theMetaData.updateMetaData( kwl, std::string("") );
//.........这里部分代码省略.........
示例5: createTocAndCopyFrames
void ossimRpfToc::createTocAndCopyFrames( const ossimFilename& dotRpfFile,
const ossimFilename& outputDir )
{
static const char MODULE[] = "ossimRpfToc::createTocAndCopyFrames";
if ( traceDebug() )
{
ossimNotify(ossimNotifyLevel_DEBUG)
<< MODULE << " entered..."
<< "\ndot rpf file: " << dotRpfFile
<< "\noutput directory: " << outputDir
<< "\n";
}
if ( outputDir.expand().exists() == false )
{
if ( !outputDir.createDirectory(true, 0775) )
{
std::string e = MODULE;
e += " ERROR:\nCould not create directory: ";
e+= outputDir.c_str();
throw ossimException(e);
}
}
// Open the dot rpf file.
std::ifstream* dotRpfStr = new std::ifstream;
dotRpfStr->open(dotRpfFile, ios_base::in);
if ( !dotRpfStr->good() )
{
delete dotRpfStr;
dotRpfStr = 0;
std::string e = MODULE;
e += " ERROR:\nCould not open: ";
e += dotRpfFile.c_str();
throw ossimException(e);
}
ossimFilename sourceADotTocFile = getSourceTocFile(*dotRpfStr);
if ( sourceADotTocFile.empty() )
{
delete dotRpfStr;
dotRpfStr = 0;
std::string e = MODULE;
e += " ERROR:\nCould not deduce source a.toc file!";
throw ossimException(e);
}
// Open the source a.toc file. Note the true flag is to keep the file header.
ossimRefPtr<ossimRpfToc> sourceADotToc = new ossimRpfToc;
if ( sourceADotToc->parseFile(sourceADotTocFile, true) != ossimErrorCodes::OSSIM_OK )
{
delete dotRpfStr;
dotRpfStr = 0;
std::string e = MODULE;
e += " ERROR:\nCould not open: ";
e += sourceADotTocFile.c_str();
throw ossimException(e);
}
ossimRefPtr<const ossimNitfFileHeader> sourceNitfFileHdr = sourceADotToc->getNitfFileHeader();
if ( !sourceNitfFileHdr.valid() )
{
delete dotRpfStr;
dotRpfStr = 0;
std::string e = MODULE;
e += " ERROR:\nCould not get nitf file header from: ";
e += sourceADotTocFile.c_str();
throw ossimException(e);
}
ossimRefPtr<const ossimRpfHeader> sourceRpfHdr = sourceADotToc->getRpfHeader();
if ( !sourceRpfHdr.valid() )
{
delete dotRpfStr;
dotRpfStr = 0;
std::string e = MODULE;
e += " ERROR:\nCould not get rpf header from: ";
e += sourceADotTocFile.c_str();
throw ossimException(e);
}
// Get the boundary rect sub header from the source a.toc.
ossimRefPtr<ossimRpfBoundaryRectSectionSubheader> boundaryRectSectionSubheader =
sourceRpfHdr->getNewBoundaryRectSectSubheader(sourceADotTocFile);
if ( !boundaryRectSectionSubheader.valid() )
{
delete dotRpfStr;
dotRpfStr = 0;
std::string e = MODULE;
e += " ERROR:\nCould not pull boundary rect sub header from source file: ";
e += sourceADotTocFile.c_str();
throw ossimException(e);
}
//.........这里部分代码省略.........