Brief description of class still missing. More...
#include <Model2ParamReader.h>
Public Member Functions | |
| Model2ParamReader () | |
| bool | setOptions (int &argc, char **argv) |
Protected Member Functions | |
| virtual bool | parse (QTextStream &s) |
Brief description of class still missing.
Full description of class still missing
Description of constructor still missing
References TRACE.
: ArgumentStdinReader() { TRACE; _outputParam="out.param"; _vsRelativeRange=0.0; }
| bool Model2ParamReader::parse | ( | QTextStream & | s | ) | [protected, virtual] |
Implements QGpCoreTools::ArgumentStdinReader.
References QGpCoreTools::endl(), DinverDCCore::ParamGroundModel::find(), QGpCoreWave::Seismic1DModel::fromStream(), DinverDCCore::ParamProfile::layer(), QGpCoreWave::Seismic1DModel::layerCount(), DinverDCCore::ParamProfile::nLayers(), DinverDCCore::ParamLayer::setTopMaximumValue(), DinverDCCore::ParamLayer::setTopMinimumValue(), sOut(), DinverDCCore::ParamLayer::topMinimumValue(), QGpCoreTools::tr(), TRACE, and QGpCoreTools::XMLHeader::xml_saveFile().
{
TRACE;
QTextStream sOut(stdout);
Seismic1DModel m;
QString comments;
if(!m.fromStream(s, &comments)) {
return false;
}
if(m.layerCount()>0) {
QFileInfo fi(_outputParam);
if(fi.exists()) {
App::stream() << tr("File %1 already exists.").arg(_outputParam) << endl;
return false;
}
ParamGroundModel gm(&m);
if(_vsRelativeRange>0.0) {
ParamProfile * vs=gm.find("Vs");
for(int i=vs->nLayers()-1; i>=0; i++) {
ParamLayer * l=vs->layer(i);
double v=l->topMinimumValue();
l->setTopMinimumValue(v*(1.0-_vsRelativeRange));
l->setTopMaximumValue(v*(1.0+_vsRelativeRange));
}
}
XMLVirtualPlugin plugin(&gm, "DispersionCurve");
XMLDinverHeader hdr(&plugin);
hdr.xml_saveFile(_outputParam);
}
return true;
}
| bool Model2ParamReader::setOptions | ( | int & | argc, |
| char ** | argv | ||
| ) |
References QGpCoreTools::endl(), QGpCoreTools::tr(), and TRACE.
Referenced by main().
{
TRACE;
// Check arguments
int i, j=1;
for(i=1; i<argc; i++) {
QByteArray arg=argv[i];
if(arg[0]=='-') {
if(arg=="-o") {
CoreApplication::checkOptionArg(i, argc, argv);
_outputParam=argv[i];
} else if (arg=="-vs-relative-range") {
CoreApplication::checkOptionArg(i, argc, argv);
_vsRelativeRange=atof(argv[i]);
} else {
App::stream() << tr("gpmodel2param: bad option %1, see -help").arg(argv[i]) << endl;
return false;
}
} else {
argv[j++]=argv[i];
}
}
if(j < argc) {
argv[j]=0;
argc=j;
}
return true;
}