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; }