Brief description of class still missing. More...
#include <MagnetoTelluricViewer.h>
Public Member Functions | |
| MagnetoTelluricViewer (QWidget *parent=0) | |
| ~MagnetoTelluricViewer () | |
Protected Member Functions | |
| virtual bool | hasCurves (DCReportBlock &dcBlock) |
| virtual void | report2plot (DCReportBlock &dcBlock, Point2D **points, const DCModelInfo &info) |
| virtual void | setLimits (int i, const Rect &r) |
| virtual void | setSampleCount (DCModelInfo *info, DCReportBlock &dcBlock) |
| virtual void | setTarget (TargetList *tl) |
| virtual void | setTitles (int i) |
| virtual AbstractLine * | targetReferenceLine () const |
Brief description of class still missing.
Full description of class still missing
| DinverDCGui::MagnetoTelluricViewer::MagnetoTelluricViewer | ( | QWidget * | parent = 0 | ) |
Description of constructor still missing
References DinverDCGui::DCModelViewer::addMenu(), DinverDCGui::DCModelViewer::showTarget(), QGpCoreTools::tr(), and TRACE.
: DCModelViewer(parent) { TRACE; Settings::getSize(this, "MagnetoTelluricViewer" ); setWindowTitle(tr("Magneto-telluric curves:")); // Tools menu QMenu * m; QAction * a; m=addMenu(tr( "&Tools" )); a=new QAction(tr( "Current target" ), this); a->setCheckable(true); a->setChecked(true); a->setStatusTip(tr( "Show/hide the current target onto the inverted magneto-telluric curves" )); connect(a, SIGNAL(toggled(bool)), this, SLOT(showTarget(bool)) ); m->addAction(a); }
| bool DinverDCGui::MagnetoTelluricViewer::hasCurves | ( | DCReportBlock & | dcBlock | ) | [protected, virtual] |
Implements DinverDCGui::DCModelViewer.
References DinverDCCore::DCReportBlock::magnetoTelluric(), and TRACE.
{
TRACE;
return dcBlock.magnetoTelluric();
}
| void DinverDCGui::MagnetoTelluricViewer::report2plot | ( | DCReportBlock & | dcBlock, |
| Point2D ** | points, | ||
| const DCModelInfo & | info | ||
| ) | [protected, virtual] |
Implements DinverDCGui::DCModelViewer.
References DinverDCGui::DCModelViewer::_nGraphs, QGpCoreWave::MagnetoTelluricFactory::angularFrequencies(), QGpCoreWave::MagnetoTelluricFactory::impedanceXY(), DinverDCCore::DCModelInfo::offset(), QGpCoreWave::MagnetoTelluricFactory::readReport(), QGpCoreWave::MagnetoTelluricPointOptions::setMode(), QGpCoreTools::Point2D::setX(), QGpCoreTools::Point2D::setY(), DinverDCCore::DCReportBlock::stream(), QGpCoreWave::MagnetoTelluricPointOptions::toDouble(), TRACE, QGpCoreTools::Value< numberType >::value(), and QGpCoreTools::Point2D::x().
{
TRACE;
MagnetoTelluricFactory f;
f.readReport(dcBlock.stream());
const QVector<double>& x=f.angularFrequencies();
int nFrequencies=x.count();
const ComplexValue * values=f.impedanceXY();
MagnetoTelluricPointOptions options;
double frequencyFactor=1.0/(2.0*M_PI);
for(int ig=0; ig < _nGraphs; ig++ ) {
switch(ig) {
default:
options.setMode(MagnetoTelluricPointOptions::ApparentResistivity);
break;
case 1:
options.setMode(MagnetoTelluricPointOptions::PhaseDegrees);
break;
}
Point2D * gPoints=points[ig]+info.offset(ig);
for(int is=0; is < nFrequencies; is++ ) {
Point2D& p=gPoints[is];
p.setX(frequencyFactor*x.at(is));
p.setY(options.toDouble(p.x(), values[is].value()));
}
}
}
| void DinverDCGui::MagnetoTelluricViewer::setLimits | ( | int | i, |
| const Rect & | r | ||
| ) | [protected, virtual] |
| void DinverDCGui::MagnetoTelluricViewer::setSampleCount | ( | DCModelInfo * | info, |
| DCReportBlock & | dcBlock | ||
| ) | [protected, virtual] |
Implements DinverDCGui::DCModelViewer.
References DinverDCGui::DCModelViewer::_nGraphs, DinverDCCore::DCModelInfo::setSampleCount(), DinverDCCore::DCReportBlock::stream(), and TRACE.
{
TRACE;
// Read number of sources and receivers
int nFrequencies;
dcBlock.stream() >> nFrequencies;
int i;
for(i=0;i<_nGraphs;i++) {
info->setSampleCount(i,nFrequencies);
}
}
| void DinverDCGui::MagnetoTelluricViewer::setTarget | ( | TargetList * | tl | ) | [protected, virtual] |
Reimplemented from DinverDCGui::DCModelViewer.
References DinverDCGui::DCModelViewer::_nGraphs, DinverDCGui::DCModelViewer::_targetLayers, SciFigs::LineLayer::addLine(), DinverDCCore::MagnetoTelluricTarget::curves(), DinverDCCore::TargetList::magnetoTelluricTarget(), SciFigs::LineLayer::setPointOptions(), and TRACE.
{
TRACE;
const QList<MagnetoTelluricCurve>& curves=tl->magnetoTelluricTarget().curves();
for(int ig=0;ig<_nGraphs;ig++) {
for(QList<MagnetoTelluricCurve>::const_iterator it=curves.begin();it!=curves.end(); it++) {
static_cast<MagnetoTelluricLine *>(_targetLayers[ig]->addLine())->setCurve(*it);
}
MagnetoTelluricPointOptions::OutputMode m;
switch(ig) {
default:
m=MagnetoTelluricPointOptions::ApparentResistivity;
break;
case 1:
m=MagnetoTelluricPointOptions::PhaseDegrees;
break;
}
_targetLayers[ig]->setPointOptions(new MagnetoTelluricPointOptions(m));
}
delete tl;
}
| void DinverDCGui::MagnetoTelluricViewer::setTitles | ( | int | i | ) | [protected, virtual] |
Implements DinverDCGui::DCModelViewer.
References DinverDCGui::DCModelViewer::_graphs, SciFigs::Axis::setAutoTicks(), SciFigs::Axis::setMajorTicks(), SciFigs::Axis::setMinorTicks(), SciFigs::GraphicObject::setObjectName(), SciFigs::Axis::setReversedScale(), SciFigs::Axis::setScaleType(), SciFigs::Axis::setTitle(), SciFigs::Axis::setTitleInversedScale(), SciFigs::Axis::setUnitFactor(), QGpCoreTools::tr(), TRACE, w, SciFigs::AxisWindow::xAxis(), and SciFigs::AxisWindow::yAxis().
{
TRACE;
AxisWindow * w=_graphs[i];
w->xAxis()->setTitle( "Frequency (kHz)" );
w->xAxis()->setTitleInversedScale( "Period (ms)" );
w->xAxis()->setScaleType(Scale::Log);
w->xAxis()->setReversedScale(true);
w->xAxis()->setAutoTicks(false);
w->xAxis()->setMajorTicks(5.0);
w->xAxis()->setMinorTicks(1.0);
w->xAxis()->setUnitFactor(1e-3);
w->setObjectName(QString("res_%1").arg(i));
switch(i) {
default:
w->yAxis()->setTitle(tr("Apparent resistivity (ohm m)"));
w->yAxis()->setTitleInversedScale(tr("Apparent conductivity (S/m)"));
break;
case 1:
w->yAxis()->setTitle(tr("Phase (degrees)"));
w->yAxis()->setTitleInversedScale(tr("1/Phase (1/degrees)"));
break;
}
}
| AbstractLine * DinverDCGui::MagnetoTelluricViewer::targetReferenceLine | ( | ) | const [protected, virtual] |
Implements DinverDCGui::DCModelViewer.
References SciFigs::AbstractLine::setPen(), SciFigs::AbstractLine::setSymbol(), and TRACE.
{
TRACE;
MagnetoTelluricLine * line=new MagnetoTelluricLine;
line->setPen(Pen( Qt::black, 0.6) );
line->setSymbol(Symbol( Symbol::Circle, 1.2, Pen(Qt::black, 0.0),
Brush(Qt::black, Qt::SolidPattern) ));
return line;
}