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