Brief description of class still missing. More...
#include <TargetAdd.h>
Public Member Functions | |
| virtual int | execute () |
| virtual bool | setOptions (int &argc, char **argv) |
| TargetAdd () | |
| ~TargetAdd () | |
Brief description of class still missing.
Full description of class still missing
{
_type=Undefined;
_position=0;
_weight=1.0;
_minimumMisfit=0.0;
}
{
delete _position;
}
| int TargetAdd::execute | ( | ) | [virtual] |
Description still missing
Implements AbstractTarget.
References DinverDCCore::ModalCurveTarget::curves(), DinverDCCore::MagnetoTelluricTarget::curves(), DinverDCCore::TargetList::dispersionTarget(), QGpCoreTools::endl(), AbstractTarget::fileName(), DinverDCCore::TargetList::magnetoTelluricTarget(), DinverDCCore::ModalCurveTarget::setCurves(), DinverDCCore::MagnetoTelluricTarget::setCurves(), DinverDCCore::Target::setMinimumMisfit(), DinverDCCore::Target::setMisfitWeight(), DinverDCCore::TargetList::setPosition(), QGpCoreTools::tr(), QGpCoreTools::XMLHeader::xml_restoreFile(), and QGpCoreTools::XMLHeader::xml_saveFile().
{
TargetList tl;
QFileInfo fi(fileName());
if(fi.exists()) {
XMLVirtualPlugin plugin(&tl, "DispersionCurve");
XMLDinverHeader hdr(&plugin);
if(hdr.xml_restoreFile(fileName())!=XMLClass::NoError) {
App::stream() << tr("gptarget: error reading file %1").arg(fileName()) << endl;
return 2;
}
}
if(_position) {
tl.setPosition(*_position);
}
switch(_type) {
case Dispersion: {
QList<ModalCurve> curves=tl.dispersionTarget().curves();
tl.dispersionTarget().setMisfitWeight(_weight);
tl.dispersionTarget().setMinimumMisfit(_minimumMisfit);
QTextStream sIn(stdin);
readCurves(curves, sIn);
tl.dispersionTarget().setCurves(curves);
XMLVirtualPlugin plugin(&tl, "DispersionCurve");
XMLDinverHeader hdr(&plugin);
if(hdr.xml_saveFile(fileName())!=XMLClass::NoError) {
App::stream() << tr("gptarget: error writing to file %1").arg(fileName()) << endl;
return 2;
}
}
break;
case MagnetoTelluric: {
QList<MagnetoTelluricCurve> curves=tl.magnetoTelluricTarget().curves();
tl.magnetoTelluricTarget().setMisfitWeight(_weight);
tl.magnetoTelluricTarget().setMinimumMisfit(_minimumMisfit);
QTextStream sIn(stdin);
readCurves(curves, sIn);
tl.magnetoTelluricTarget().setCurves(curves);
XMLVirtualPlugin plugin(&tl, "DispersionCurve");
XMLDinverHeader hdr(&plugin);
if(hdr.xml_saveFile(fileName())!=XMLClass::NoError) {
App::stream() << tr("gptarget: error writing to file %1").arg(fileName()) << endl;
return 2;
}
}
break;
default:
App::stream() << tr("Not yet implemented for this kind of curve") << endl;
return 2;
}
return 0;
}
| bool TargetAdd::setOptions | ( | int & | argc, |
| char ** | argv | ||
| ) | [virtual] |
Description still missing
Implements AbstractTarget.
References QGpCoreTools::endl(), QGpCoreTools::Point::fromString(), AbstractTarget::setFileName(), QGpCoreWave::Mode::setIndex(), QGpCoreWave::Mode::setPolarisation(), QGpCoreWave::Mode::setSlowness(), and QGpCoreTools::tr().
{
int j=1;
for(int i=1; i<argc; i++) {
QByteArray arg=argv[i];
if(arg[0]=='-') {
if(arg=="-dispersion-rayleigh") {
_mode.setPolarisation(Mode::Rayleigh);
CoreApplication::checkOptionArg(i, argc, argv);
_mode.setIndex(atoi(argv[i]));
_type=Dispersion;
} else if(arg=="-dispersion-love") {
_mode.setPolarisation(Mode::Love);
CoreApplication::checkOptionArg(i, argc, argv);
_mode.setIndex(atoi(argv[i]));
_type=Dispersion;
} else if(arg=="-group") {
_mode.setSlowness(Mode::Group);
} else if(arg=="-mt") {
_type=MagnetoTelluric;
} else if(arg=="-p") {
CoreApplication::checkOptionArg(i, argc, argv);
if(!_position) {
_position=new Point;
}
if(!_position->fromString(QString(argv[i]))) {
App::stream() << tr("gptarget: error setting position from \"%1\"").arg(argv[i]) << endl;
return false;
}
} else if(arg=="-weight") {
CoreApplication::checkOptionArg(i, argc, argv);
_weight=atof(argv[i]);
} else if(arg=="-min-misfit") {
CoreApplication::checkOptionArg(i, argc, argv);
_minimumMisfit=atof(argv[i]);
} else {
App::stream() << tr("gptarget: bad option %1, see -help").arg(argv[i]) << endl;
return false;
}
} else {
argv[j++]=argv[i];
}
}
if(j < argc) {
argv[j]=0;
argc=j;
}
if(argc!=2) {
App::stream() << tr("gptarget: missing target file, see -help") << endl;
return false;
}
setFileName(argv[1]);
return true;
}