本文整理汇总了C++中ossimFilename::path方法的典型用法代码示例。如果您正苦于以下问题:C++ ossimFilename::path方法的具体用法?C++ ossimFilename::path怎么用?C++ ossimFilename::path使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ossimFilename
的用法示例。
在下文中一共展示了ossimFilename::path方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: landsat_optimization
void landsat_optimization(ossimFilename gcpFile, ossimFilename headerFile, ossimFilename elevationpath)
{
ossimFilename workfold = headerFile.path();
ossimFilename sourcefile = workfold + "\\header.dat";
ossimFilename gcpfile = gcpFile;
ossimFilename reportfile = workfold + "\\report.txt";
ossimKeywordlist MapProjection;
MyProject prj;
prj.m_CtrlGptSet = new ossimTieGptSet;
prj.m_ChkGptSet = new ossimTieGptSet;
//vector < ossimTieLine > tieLineList;
vector<ossimDFeature> imageFeatureList;
vector<ossimGFeature> groundFeatureList;
prj.ReadGcpAndProjection(ossimFilename(gcpfile));
prj.theMgr = ossimElevManager::instance();
//prj.theMgr->loadElevationPath(ossimFilename(elevationpath));//
prj.m_DemPath=ossimFilename(elevationpath);
prj.GetElevations(prj.m_CtrlGptSet);
prj.GetElevations(prj.m_ChkGptSet);
ossimMapProjection *MapPar = prj.m_MapPar;
MapProjection = prj.m_MapProjection;
prj.m_ImgFileNameUnc = sourcefile;
prj.InitiateSensorModel(sourcefile);
prj.UpdateSensorModel(*prj.m_CtrlGptSet, prj.m_sensorModel, prj.geom);
prj.m_sensorModel->loadState(prj.geom);
prj.OutputReport(reportfile, prj.m_sensorModel, prj.m_CtrlGptSet, prj.m_ChkGptSet);
}
示例2: findCoarseGrid
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
}
}
示例3: parseFile
//*******************************************************************
// 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;
}
示例4: LandsatRpc
void LandsatRpc(ossimFilename gcpFile, ossimFilename headerFile, ossimFilename elevationpath)
{
ossimFilename workfold = headerFile.path();
ossimFilename sourcefile = workfold + "\\header.dat";
ossimFilename gcpfile = gcpFile;
ossimFilename reportfile = workfold + "\\report.txt";
ossimKeywordlist MapProjection;
MyProject prj;
prj.m_CtrlGptSet = new ossimTieGptSet;
prj.m_ChkGptSet = new ossimTieGptSet;
//vector < ossimTieLine > tieLineList;
vector<ossimDFeature> imageFeatureList;
vector<ossimGFeature> groundFeatureList;
prj.ReadGcpAndProjection(ossimFilename(gcpfile));
prj.theMgr = ossimElevManager::instance();
//prj.theMgr->loadElevationPath(ossimFilename(elevationpath));//
prj.m_DemPath=ossimFilename(elevationpath);
prj.GetElevations(prj.m_CtrlGptSet);
prj.GetElevations(prj.m_ChkGptSet);
ossimMapProjection *MapPar = prj.m_MapPar;
MapProjection = prj.m_MapProjection;
prj.m_ImgFileNameUnc = sourcefile;
prj.m_OutBandList.clear();
prj.m_OutBandList.push_back(6);
prj.m_OutBandList.push_back(3);
prj.m_OutBandList.push_back(1);
prj.InitiateSensorModel(sourcefile);
int num = static_cast<int>(prj.m_CtrlGptSet->getTiePoints().size());
ossimRpcSolver *solver = new ossimRpcSolver(true, false);
vector < ossimDpt > imagePoints(num);
vector < ossimGpt > groundControlPoints(num);
ossimGpt gpt;
for(int i = 0;i < num;i++)
{
groundControlPoints[i] = prj.m_CtrlGptSet->getTiePoints()[i]->getGroundPoint();
ossimGpt gpt = prj.m_MapPar->inverse(ossimDpt(groundControlPoints[i].lat, groundControlPoints[i].lon));
gpt.hgt = groundControlPoints[i].hgt;
groundControlPoints[i] = gpt;
imagePoints[i] = prj.m_CtrlGptSet->getTiePoints()[i]->getImagePoint();
}
solver->solveCoefficients(imagePoints, groundControlPoints);
ossimImageGeometry *imageGeom = solver->createRpcModel();
ossimKeywordlist geom;
imageGeom->saveState(geom);
ossimRpcModel* rpcModel = new ossimRpcModel();
rpcModel->loadState(geom, "projection.");
prj.m_sensorModel = rpcModel;
prj.m_sensorModel->m_proj = prj.m_MapPar;
//// 使用RPC模型
//ossimImageHandler *handler = ossimImageHandlerRegistry::instance()->open(sourcefile);
//if(!handler) return; //应该弹出警告对话框
//prj.m_sensorModel = createRpcModelFromProjection(handler->getImageRectangle(), *prj.m_sensorModel);
//prj.m_sensorModel->m_proj = prj.m_MapPar;
//handler->close();
//delete handler;fstream rpcStruct;
fstream rpcStruct;
prj.m_sensorModel = rpcModel;
prj.m_sensorModel->m_proj = prj.m_MapPar;
prj.m_sensorModel->saveState(prj.geom);
rpcModel->loadState(prj.geom);
rpcStruct.open((workfold+"\\rpcStruct0.txt").c_str(), ios_base::out);
rpcModel->saveRpcModelStruct(rpcStruct);
rpcStruct.close();
//prj.OutputReport(reportfile, prj.m_sensorModel, prj.m_CtrlGptSet, prj.m_ChkGptSet, false);
//return;
//double tmp;
//for(int i = 0;i < num;i++)
//{
// groundControlPoints.push_back(prj.m_CtrlGptSet->getTiePoints()[i]->getGroundPoint());
// imagePoints.push_back(prj.m_CtrlGptSet->getTiePoints()[i]->getImagePoint());
//}
//prj.m_sensorModel->optimizeFit(*prj.m_CtrlGptSet, &tmp); //用优化控制点进行模型优化
//prj.m_sensorModel->updateModel();
//prj.m_sensorModel->saveState(prj.geom);
//prj.OutputReport(reportfileall, prj.m_sensorModel, prj.m_CtrlGptSet, prj.m_ChkGptSet);
//for(int i = 0;i < static_cast<int>(prj.m_CtrlGptSet->getTiePoints().size());i++)
//{
// ossimDpt dpt = prj.m_MapPar->forward(*prj.m_CtrlGptSet->getTiePoints()[i]);
// ossimGpt gpt(dpt.x,dpt.y);
// prj.m_CtrlGptSet->refTiePoints()[i]->setGroundPoint(ossimGpt(dpt.x,dpt.y,prj.m_CtrlGptSet->getTiePoints()[i]->hgt));
//}
//// 全参数优化
//prj.UpdateSensorModel(*prj.m_CtrlGptSet, prj.m_sensorModel, prj.geom);
//prj.m_sensorModel->saveState(prj.geom);
//rpcModel->loadState(prj.geom);
// 像方仿射变换
prj.m_sensorModel = rpcModel;
prj.m_sensorModel->m_proj = prj.m_MapPar;
prj.UpdateSensorModel(*prj.m_CtrlGptSet, prj.m_sensorModel, prj.geom);
prj.OutputReport(reportfile, prj.m_sensorModel, prj.m_CtrlGptSet, prj.m_ChkGptSet, false);
return;
//.........这里部分代码省略.........
示例5: openHeader
//.........这里部分代码省略.........
{
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
}