Brief description of class still missing. More...
#include <AbstractSummary.h>
Public Slots | |
virtual void | setLimits () |
Public Member Functions | |
AbstractSummary (QWidget *parent=0) | |
virtual void | addActions () |
virtual void | setStations (const QList< AbstractStation * > &stations) |
virtual void | setWindowTitle (QString subPoolName)=0 |
~AbstractSummary () | |
Public Attributes | |
QMenu * | menuTools |
Protected Member Functions | |
LineLayer * | averageLayer () const |
XYValuePlot * | bubbleLayer () const |
NameLineLayer * | bubbleNameLayer () const |
void | createAverageGraph (QString yAxisTitle, double x, double y) |
void | createBubbleGraph (double x, double y) |
virtual void | createGraphs (bool multiStations)=0 |
void | createGridCrossSectionGraph (double x, double y) |
void | createSpectrumGridGraph (double x, double y) |
void | createStackedGraph (QString yAxisTitle, double x, double y) |
QMap< double, StationResults * > | distance2Station () |
LineLayer * | gridCrossSectionLayer () const |
void | setAverageValues () |
void | setBubbleValues () |
void | setSpectrumGridValues (const QMap< double, StationResults * > *dist2stat) |
void | setStackedValues () |
virtual void | setValues (const QMap< double, StationResults * > *dist2stat=0)=0 |
IrregularGrid2DPlot * | spectrumGridLayer () const |
GridMaxFollower * | spectrumGridMaxLayer () const |
LineLayer * | stackedLayer () const |
Brief description of class still missing.
Full description of class still missing
MonoStation::AbstractSummary::AbstractSummary | ( | QWidget * | parent = 0 | ) |
Description of constructor still missing
References MonoStation::StationResults::PeakFrequency, MonoStation::StationLine::PeakNumber, MonoStation::StationLine::StationName, and TRACE.
: GraphicSheetMenu(parent) { TRACE; _stackedLayer=0; _averageLayer=0; _spectrumGridLayer=0; _spectrumGridMaxLayer=0; _gridCrossSectionLayer=0; _bubbleLayer=0; _bubbleNameLayer=0; _bubblePalette=0; _mapLabels=StationLine::StationName; _mapPeakSelection=StationLine::PeakNumber; _mapPeakValue=StationResults::PeakFrequency; _mapPeakIndex=0; _mapShowBubbles=true; _mapPeakValueDecimals=2; _mapOptions=0; setGeometry(5, 80, 500, 500); }
void MonoStation::AbstractSummary::addActions | ( | ) | [virtual] |
Reimplemented from SciFigs::GraphicSheetMenu.
References SciFigs::GraphicSheetMenu::addMenu(), menuTools, QGpCoreTools::tr(), and TRACE.
{ TRACE; QAction * a; menuTools=addMenu(tr( "&Tools" )); a=new QAction(tr( "&Pick maxima" ), this); a->setStatusTip(tr( "Switch grid plot to pick mode" )); a->setCheckable(true); connect(a, SIGNAL(toggled(bool)), this, SLOT(pickGridMaxima(bool)) ); menuTools->addAction(a); a=new QAction(tr( "&Auto pick maximum" ), this); a->setStatusTip(tr( "Automatically pick the maximum of grid" )); connect(a, SIGNAL(triggered()), this, SLOT(autoPickGridMaximum()) ); menuTools->addAction(a); a=new QAction(tr( "&Cross section" ), this); a->setStatusTip(tr( "Extract a cross section in the grid for each picked curve" )); connect(a, SIGNAL(triggered()), this, SLOT(gridCrossSection()) ); menuTools->addAction(a); a=new QAction(tr( "&Map options" ), this); a->setStatusTip(tr( "Set options for frequency map" )); connect(a, SIGNAL(triggered()), this, SLOT(mapOptions()) ); menuTools->addAction(a); }
LineLayer* MonoStation::AbstractSummary::averageLayer | ( | ) | const [inline, protected] |
{return _averageLayer;}
XYValuePlot* MonoStation::AbstractSummary::bubbleLayer | ( | ) | const [inline, protected] |
{return _bubbleLayer;}
NameLineLayer* MonoStation::AbstractSummary::bubbleNameLayer | ( | ) | const [inline, protected] |
{return _bubbleNameLayer;}
void MonoStation::AbstractSummary::createAverageGraph | ( | QString | yAxisTitle, |
double | x, | ||
double | y | ||
) | [protected] |
References SciFigs::GraphicSheetMenu::addGraph(), SciFigs::GraphicSheetMenu::setFrequencyTitles(), SciFigs::GraphicSheetMenu::setGraphGeometry(), SciFigs::AbstractLine::setPen(), SciFigs::LineLayer::setReferenceLine(), SciFigs::AbstractLine::setSymbol(), TRACE, and w.
Referenced by HVSummary::createGraphs(), and SpectrumSummary::createGraphs().
{ TRACE; ASSERT(!_averageLayer); AxisWindow * w=addGraph(); setGraphGeometry(w, x, 8.0, y+0.5, 8.0); setFrequencyTitles(w, yAxisTitle, "", Number::Fixed); _averagePeakLayer=new ParallelBands(w); // Frequency bands _averagePeakLayer->setObjectName("Average f0"); _averageLayer=new LineLayer(w); _averageLayer->setObjectName("Average"); PlotLine2D * line; line=new PlotLine2D; line->setPen(Pen(Qt::black, 0.6, Qt::SolidLine)); line->setSymbol(Symbol(Symbol::NoSymbol)); _averageLayer->setReferenceLine(line); }
void MonoStation::AbstractSummary::createBubbleGraph | ( | double | x, |
double | y | ||
) | [protected] |
Map with X,Y coordinates of stations, frequency ploted with colored circles
References SciFigs::GraphicSheetMenu::_sheet, SciFigs::GraphicSheetMenu::addGraph(), SciFigs::GraphicSheet::addObject(), SciFigs::ColorPaletteWidget::defaultHSVColors(), SciFigs::ColorPaletteWidget::palette(), SciFigs::XYPlot::setDotDiameter(), SciFigs::LineLayer::setErrorBar(), SciFigs::GraphicSheetMenu::setGraphGeometry(), SciFigs::ColorPaletteWidget::setNumberPrecision(), SciFigs::GraphicObject::setObjectName(), SciFigs::ColorPaletteWidget::setOrientation(), SciFigs::XYValuePlot::setPalette(), SciFigs::AbstractLine::setPen(), SciFigs::GraphicObject::setPrintHeight(), SciFigs::GraphicObject::setPrintWidth(), SciFigs::GraphicObject::setPrintXAnchor(), SciFigs::GraphicObject::setPrintYAnchor(), SciFigs::LineLayer::setReferenceLine(), SciFigs::Axis::setSizeType(), TRACE, w, SciFigs::AxisWindow::xAxis(), and SciFigs::AxisWindow::yAxis().
Referenced by HVSummary::createGraphs().
{ TRACE; ASSERT(!_bubbleLayer); AxisWindow * w=addGraph(); setGraphGeometry(w, x, 16.0, y+0.5, 16.0); _bubblePalette=new ColorPaletteWidget(0); _bubblePalette->setObjectName("BubblePalette"); _bubblePalette->defaultHSVColors(255, 230, 128); _bubblePalette->setNumberPrecision(2); _bubblePalette->setOrientation(Axis::West); _bubblePalette->setPrintXAnchor(x+16.5); _bubblePalette->setPrintYAnchor(y+1.0); _bubblePalette->setPrintWidth(1.3); _bubblePalette->setPrintHeight(6.0); _sheet.addObject(_bubblePalette); w->xAxis()->setSizeType(Axis::Scaled); w->yAxis()->setSizeType(Axis::Scaled); ImageLayer * bg=new ImageLayer(w); bg->setObjectName("Background"); _bubbleLayer=new XYValuePlot (w); _bubbleLayer->setObjectName("Peaks"); _bubbleLayer->setDotDiameter(0.25); _bubbleLayer->setPalette(_bubblePalette->palette()); connect(_bubblePalette, SIGNAL(changed(ColorPalette)), _bubbleLayer, SLOT(setPalette(const ColorPalette&))); connect(_bubbleLayer, SIGNAL(paletteChanged(ColorPalette)), _bubblePalette, SLOT(setPalette(const ColorPalette &))); _bubbleNameLayer=new NameLineLayer (w); _bubbleNameLayer->setObjectName("Stations"); _bubbleNameLayer->setErrorBar(NameLineLayer::NoBar); StationLine * line; line=new StationLine; line->setPen(Pen(Qt::NoPen)); _bubbleNameLayer->setReferenceLine(line); }
virtual void MonoStation::AbstractSummary::createGraphs | ( | bool | multiStations | ) | [protected, pure virtual] |
Implemented in HVSummary, and SpectrumSummary.
Referenced by setStations().
void MonoStation::AbstractSummary::createGridCrossSectionGraph | ( | double | x, |
double | y | ||
) | [protected] |
References SciFigs::GraphicSheetMenu::addGraph(), SciFigs::GraphContentLayer::graph(), SciFigs::GraphicSheetMenu::setGraphGeometry(), SciFigs::AbstractLine::setPen(), SciFigs::LineLayer::setReferenceLine(), SciFigs::AbstractLine::setSymbol(), SciFigs::Axis::setTitle(), SciFigs::Axis::title, TRACE, w, SciFigs::AxisWindow::xAxis(), and SciFigs::AxisWindow::yAxis().
{ TRACE; ASSERT(!_gridCrossSectionLayer); ASSERT(_stackedLayer); ASSERT(_spectrumGridLayer); AxisWindow * w=addGraph(); setGraphGeometry(w, x, 16.0, y+0.5, 6.0); w->xAxis()->setTitle(_spectrumGridLayer->graph()->yAxis()->title()); w->yAxis()->setTitle(_stackedLayer->graph()->yAxis()->title()); _gridCrossSectionLayer=new LineLayer(w); _gridCrossSectionLayer->setObjectName( "CrossSections" ); PlotLine2D * line; line=new PlotLine2D; line->setPen(Pen( Qt::black, 0.6) ); line->setSymbol(Symbol( Symbol::Circle, 1.2, Pen(Qt::black, 0.6), Brush(Qt::black, Qt::SolidPattern) )); _gridCrossSectionLayer->setReferenceLine(line); }
void MonoStation::AbstractSummary::createSpectrumGridGraph | ( | double | x, |
double | y | ||
) | [protected] |
References SciFigs::GraphicSheetMenu::_sheet, SciFigs::GraphicSheetMenu::addGraph(), SciFigs::GraphicSheet::addObject(), SciFigs::GraphContentLayer::addTrackingAction(), SciFigs::ColorPaletteWidget::defaultHSVColors(), SciFigs::GraphContentLayer::graph(), SciFigs::ColorPaletteWidget::palette(), SciFigs::GraphicSheetMenu::setFrequencyTitles(), SciFigs::GraphicSheetMenu::setGraphGeometry(), SciFigs::ColorPaletteWidget::setNumberPrecision(), SciFigs::GraphicObject::setObjectName(), SciFigs::ColorPaletteWidget::setOrientation(), SciFigs::GridPlot::setPalette(), SciFigs::GraphicObject::setPrintHeight(), SciFigs::GraphicObject::setPrintWidth(), SciFigs::GraphicObject::setPrintXAnchor(), SciFigs::GraphicObject::setPrintYAnchor(), SciFigs::ColorPaletteWidget::setTitle(), SciFigs::Axis::title, QGpCoreTools::tr(), TRACE, w, QGpCoreTools::YAxis, and SciFigs::AxisWindow::yAxis().
Referenced by HVSummary::createGraphs(), and SpectrumSummary::createGraphs().
{ TRACE; ASSERT(!_spectrumGridLayer); ASSERT(_stackedLayer); AxisWindow * w=addGraph(); setGraphGeometry(w, x, 16.0, y+0.5, 8.0); ColorPaletteWidget * pal=new ColorPaletteWidget(0); pal->setObjectName( "SpectrumPalette" ); pal->defaultHSVColors(255, 230, 128); pal->setNumberPrecision(2); pal->setOrientation(Axis::West); pal->setTitle(_stackedLayer->graph()->yAxis()->title()); pal->setPrintXAnchor(x+16.5); pal->setPrintYAnchor(y+1.0); pal->setPrintWidth(1.3); pal->setPrintHeight(6.0); _sheet.addObject(pal); setFrequencyTitles(w, tr( "Distance along profile" ), tr( "1/Distance along profile" ), Number::Fixed); _spectrumGridLayer=new IrregularGrid2DPlot (w); _spectrumGridLayer->setPalette(pal->palette()); connect(pal, SIGNAL(changed(ColorPalette)), _spectrumGridLayer, SLOT(setPalette(const ColorPalette&))); connect(_spectrumGridLayer, SIGNAL(paletteChanged(ColorPalette)), pal, SLOT(setPalette(const ColorPalette &))); _spectrumGridLayer->setObjectName( "SpectrumGrid" ); _spectrumGridMaxLayer=new GridMaxFollower(_spectrumGridLayer, YAxis); _spectrumGridMaxLayer->setObjectName( "MaxCurves" ); _spectrumGridMaxLayer->addTrackingAction(tr("&Pick maximum"), GridMaxFollower::Pick, tr("Pick a new maximum.")); _spectrumGridMaxLayer->addTrackingAction(tr("&Edit"), GridMaxFollower::Edit, tr("Edit points of an existing line.")); }
void MonoStation::AbstractSummary::createStackedGraph | ( | QString | yAxisTitle, |
double | x, | ||
double | y | ||
) | [protected] |
References SciFigs::GraphicSheetMenu::addGraph(), SciFigs::GraphicSheetMenu::setFrequencyTitles(), SciFigs::GraphicSheetMenu::setGraphGeometry(), SciFigs::AbstractLine::setPen(), SciFigs::LineLayer::setReferenceLine(), SciFigs::AbstractLine::setSymbol(), TRACE, and w.
Referenced by HVSummary::createGraphs(), and SpectrumSummary::createGraphs().
{ TRACE; ASSERT(!_stackedLayer); AxisWindow * w=addGraph(); setGraphGeometry(w, x, 8.0, y+0.5, 8.0); setFrequencyTitles(w, yAxisTitle, "", Number::Fixed); _stackedLayer=new LineLayer(w); _stackedLayer->setObjectName( "Curves" ); PlotLine2D * line; line=new PlotLine2D; line->setPen(Pen( Qt::SolidLine) ); line->setSymbol(Symbol( Symbol::NoSymbol) ); _stackedLayer->setReferenceLine(line); }
QMap< double, StationResults * > MonoStation::AbstractSummary::distance2Station | ( | ) | [protected] |
References QGpCoreTools::Curve< pointType >::append(), and QGpCoreTools::Curve< pointType >::project().
Referenced by setStations().
{ // Calculate the best fitting cross section Curve<Point> statList; for(QList<StationResults *>::const_iterator it=_stations.begin();it!=_stations.end();++it) { statList.append((*it)->coordinates()); } // For each station I get its projection on the line (listed in the same order) QVector<double> distances=statList.project(); // Create a map to sort distances QMap<double, StationResults *> dist2stat; for(int i=_stations.count() - 1;i >= 0;i-- ) { dist2stat.insert(distances[ i ], _stations.at(i) ); } return dist2stat; }
LineLayer* MonoStation::AbstractSummary::gridCrossSectionLayer | ( | ) | const [inline, protected] |
{return _gridCrossSectionLayer;}
void MonoStation::AbstractSummary::setAverageValues | ( | ) | [protected] |
Geometrical average for amplitudes and arithmetic average for frequencies.
References SciFigs::ParallelBands::addBand(), SciFigs::LineLayer::addLine(), MonoStation::StationResults::averageCurve(), SciFigs::ParallelBands::band(), SciFigs::ParallelBands::clear(), SciFigs::LineLayer::clear(), MonoStation::StationResults::peak(), MonoStation::StationResults::peakCount(), MonoStation::StationResults::PeakFrequency, SciFigs::PlotLine2D::setCurve(), SciFigs::ParallelBand::setMaximum(), SciFigs::ParallelBand::setMinimum(), SciFigs::AbstractLine::setPen(), QGpCoreTools::sqrt(), TRACE, QGpCoreTools::Curve< pointType >::yExp10(), QGpCoreTools::Curve< pointType >::yInverse(), QGpCoreTools::Curve< pointType >::yLog10(), QGpCoreTools::Curve< pointType >::yMultiply(), QGpCoreTools::Curve< pointType >::ySetMinimumValue(), QGpCoreTools::Curve< pointType >::ySetValue(), QGpCoreTools::Curve< pointType >::ySqrt(), QGpCoreTools::Curve< pointType >::ySquare(), and QGpCoreTools::Curve< pointType >::ySum().
Referenced by HVSummary::setValues(), and SpectrumSummary::setValues().
{ TRACE; if(!_averageLayer) return; // Add the curve to the curve plot _averageLayer->clear(); Curve<Point2D> sum, sum2, curve; double peakSum=0.0, peakSum2=0.0; int n=0, peakn=0; for(QList<StationResults *>::const_iterator it=_stations.begin(); it!=_stations.end(); ++it) { const StationResults& res=**it; curve=res.averageCurve(); curve.yLog10(); sum.ySum(curve); curve.ySquare(); sum2.ySum(curve); n++; if(res.peakCount()>0) { double peak=res.peak(0, StationResults::PeakFrequency); peakSum+=peak; peakSum2+=peak*peak; peakn++; } } if(n>0) { // Average layer sum.yMultiply(1.0/(double)n); curve=sum; curve.ySquare(); curve.yMultiply(-n); sum2.ySum(curve); if(n<2) { sum2.ySetValue(0.0); } else { sum2.yMultiply(1.0/(double)(n-1)); sum2.ySetMinimumValue(0.0); sum2.ySqrt(); } sum.yExp10(); sum2.yExp10(); Curve<Point2D> max=sum; max.yMultiply(sum2); Curve<Point2D> min=sum; sum2.yInverse(); min.yMultiply(sum2); PlotLine2D * l; l=static_cast<PlotLine2D *>(_averageLayer->addLine()); l->setPen(Pen(Qt::black, 0.6, Qt::DashLine)); l->setCurve(min); l=static_cast<PlotLine2D *>(_averageLayer->addLine()); l->setPen(Pen(Qt::black, 0.6, Qt::DashLine)); l->setCurve(max); l=static_cast<PlotLine2D *>(_averageLayer->addLine()); l->setCurve(sum); } _averagePeakLayer->clear(); if(peakn>0) { // Average peak layer peakSum/=(double)peakn; if(peakn<2) { peakSum2=0.0; } else { peakSum2=(peakSum2-peakn*peakSum*peakSum)/(double)(peakn-1); if(peakSum2<0.0) { peakSum2=0.0; } peakSum2=sqrt(peakSum2); } double f0=peakSum; double df0=peakSum2; _averagePeakLayer->addBand(QColor(Qt::lightGray)); _averagePeakLayer->addBand(QColor(Qt::gray)); ParallelBand& b1=_averagePeakLayer->band(0); b1.setMinimum(f0-df0); b1.setMaximum(f0); ParallelBand& b2=_averagePeakLayer->band(1); b2.setMinimum(f0); b2.setMaximum(f0+df0); } }
void MonoStation::AbstractSummary::setBubbleValues | ( | ) | [protected] |
References SciFigs::NameLineLayer::addLine(), MonoStation::StationResults::category(), MonoStation::StationResults::coordinates(), SciFigs::LineLayer::count(), SciFigs::GraphContentLayer::graph(), SciFigs::Legend::indexOf(), QGpCoreTools::Value< numberType >::isValid(), SciFigs::NameLineLayer::line(), MonoStation::StationResults::PeakAmplitude, MonoStation::StationResults::PeakFrequency, MonoStation::StationLine::setLabel(), MonoStation::StationLine::setLabelPrecision(), SciFigs::XYValuePlot::setLogPalette(), MonoStation::StationLine::setStation(), SciFigs::AbstractLine::setSymbol(), SciFigs::AbstractNameLine::setTextColor(), SciFigs::ColorPaletteWidget::setTitle(), MonoStation::StationLine::setValue(), SciFigs::XYValuePlot::setValues(), SciFigs::XYPlot::setXData(), SciFigs::XYPlot::setYData(), SciFigs::Legend::symbol(), SciFigs::Legend::textColor(), SciFigs::Axis::title, QGpCoreTools::tr(), TRACE, QGpCoreTools::Value< numberType >::value(), MonoStation::StationLine::value(), SciFigs::XYValuePlot::valueRange(), w, QGpCoreTools::Point2D::x(), QGpCoreTools::Point2D::y(), and SciFigs::AxisWindow::yAxis().
Referenced by HVSummary::setValues().
{ TRACE; if(!_bubbleLayer) return; ASSERT(_stackedLayer); AxisWindow * w=_stackedLayer->graph(); switch(_mapPeakValue) { case StationResults::PeakFrequency: _bubblePalette->setTitle(tr("%1 peak frequency (Hz)").arg(w->yAxis()->title())); break; case StationResults::PeakAmplitude: _bubblePalette->setTitle(tr("%1 peak amplitude").arg(w->yAxis()->title())); break; } QVector<double> * xBubble=new QVector<double>; QVector<double> * yBubble=new QVector<double>; QVector<double> * valBubble=new QVector<double>; int n=_stations.count(); for(int i=0; i<n; i++) { StationResults * res=_stations.at(i); // Adjust the number of stations, TODO: when old result plot will be ok, revise this part if(i==_bubbleNameLayer->count()) { StationLine * l =static_cast<StationLine *>(_bubbleNameLayer->addLine()); l->setStation(res); } Point rec=res->coordinates(); StationLine * l=static_cast<StationLine *>(_bubbleNameLayer->line(i)); l->setValue(_mapPeakSelection, _mapPeakValue, _mapPeakIndex); if(l->value().isValid() && _mapShowBubbles) { xBubble->append(rec.x()); yBubble->append(rec.y()); valBubble->append(l->value().value()); } // Adjust category of station point int categoryIndex=_categories.indexOf(res->category()); ASSERT(categoryIndex>-1); l->setLabel(_mapLabels); l->setLabelPrecision(_mapPeakValueDecimals); l->setSymbol(_categories.symbol(categoryIndex)); l->setTextColor(_categories.textColor(categoryIndex)); } _bubbleLayer->setXData(xBubble); _bubbleLayer->setYData(yBubble); _bubbleLayer->setValues(valBubble); double min=1e99, max=-1e99; _bubbleLayer->valueRange(min, max); _bubbleLayer->setLogPalette(min, max); }
void MonoStation::AbstractSummary::setLimits | ( | ) | [virtual, slot] |
References SciFigs::IrregularGrid2DPlot::boundingRect(), SciFigs::LineLayer::boundingRect(), QGpCoreTools::Rect::enlarge(), SciFigs::GraphContentLayer::graph(), QGpCoreTools::LinearScale, SciFigs::IrregularGrid2DPlot::setLinearPalette(), SciFigs::AxisWindow::setMapScale(), SciFigs::GraphicObject::setPrintHeight(), SciFigs::GraphicObject::setPrintWidth(), SciFigs::Axis::setRange(), TRACE, w, QGpCoreTools::Rect::x1(), QGpCoreTools::Rect::x2(), SciFigs::AxisWindow::xAxis(), QGpCoreTools::Rect::y1(), QGpCoreTools::Rect::y2(), and SciFigs::AxisWindow::yAxis().
Referenced by setStations().
{ TRACE; Rect r; if(_stackedLayer) { r=_stackedLayer->boundingRect(); AxisWindow * w=_stackedLayer->graph(); w->xAxis() ->setRange(r.x1(), r.x2()); w->yAxis() ->setRange(0, r.y2()); } if(_averageLayer) { r=_averageLayer->boundingRect(); AxisWindow * w=_averageLayer->graph(); w->xAxis() ->setRange(r.x1(), r.x2()); w->yAxis() ->setRange(0, r.y2()); } if(_spectrumGridLayer) { // stacked is always there if spectrum is available // r.y2() comes from stacked _spectrumGridLayer->setLinearPalette(0, r.y2()); r=_spectrumGridLayer->boundingRect(); AxisWindow * w=_spectrumGridLayer->graph(); w->xAxis() ->setRange(r.x1(), r.x2()); w->yAxis() ->setRange(r.y1(), r.y2()); if(_gridCrossSectionLayer) { _gridCrossSectionLayer->graph()->xAxis() ->setRange(r.y1(), r.y2()); } } if(_bubbleLayer) { r=_bubbleNameLayer->boundingRect(); r.enlarge(0.2, LinearScale, LinearScale); // init to default size AxisWindow * w=_bubbleLayer->graph(); w->setPrintWidth(8.0); w->setPrintHeight(8.0); w->setMapScale(r.x1(), r.y1(), r.x2(), r.y2()); } }
void MonoStation::AbstractSummary::setSpectrumGridValues | ( | const QMap< double, StationResults * > * | dist2stat | ) | [protected] |
References MonoStation::StationResults::averageCurve(), QGpCoreTools::Curve< pointType >::count(), SciFigs::IrregularGrid2DPlot::setGrid(), QGpCoreTools::IrregularGrid2D::setX(), QGpCoreTools::IrregularGrid2D::setY(), TRACE, QGpCoreTools::IrregularGrid2D::valuePointer(), and MonoStation::StationResults::windowCount().
Referenced by HVSummary::setValues(), and SpectrumSummary::setValues().
{ TRACE; if( !_spectrumGridLayer || !dist2stat) return; // Grab general info from the first station with non null average curve const StationResults * res=0; QMap<double, StationResults *>::const_iterator it=dist2stat->begin(); for(it=dist2stat->begin();it!=dist2stat->end();it++) { res=it.value(); if(res->averageCurve().count()>0) break; res=0; } if(!res) return; // Init the colored grid const Curve<Point2D>& f=res->averageCurve(); int nFreqSamp=f.count(); int nDist=dist2stat->count(); IrregularGrid2D grid(nFreqSamp, nDist); // Set the sampling of the grid for(int i=0;i < nFreqSamp;i++ ) { grid.setX(i, f[i].x()); } // Get the minimum to shift all from 0 to ... int i=0; double minDist=dist2stat->begin().key(); for(it=dist2stat->begin();it!=dist2stat->end();it++, i++) { grid.setY(i, it.key() - minDist); } // Fill in the grid with the spectra i=0; for(it=dist2stat->begin();it!=dist2stat->end();it++, i++) { const StationResults * res=it.value(); double * gval=grid.valuePointer(0, i); if(res->windowCount()>0) { const Curve<Point2D>& c=res->averageCurve(); for(int j=0;j < nFreqSamp;j++ ) { gval[ j ]=c[ j ].y(); } } else { for(int j=0;j < nFreqSamp;j++ ) { gval[ j ]=0.0; } } } _spectrumGridLayer->setGrid(grid); }
void MonoStation::AbstractSummary::setStackedValues | ( | ) | [protected] |
References SciFigs::LineLayer::addLine(), MonoStation::StationResults::averageCurve(), SciFigs::LineLayer::clear(), and TRACE.
Referenced by HVSummary::setValues(), and SpectrumSummary::setValues().
{ TRACE; if( !_stackedLayer) return; // Add the curve to the curve plot _stackedLayer->clear(); for(QList<StationResults *>::const_iterator it=_stations.begin();it!=_stations.end();++it) { const StationResults& res=**it; static_cast<PlotLine2D *>(_stackedLayer->addLine())->setCurve(res.averageCurve()); } }
void MonoStation::AbstractSummary::setStations | ( | const QList< AbstractStation * > & | stations | ) | [virtual] |
References createGraphs(), SciFigs::GraphicSheet::deepUpdate(), distance2Station(), geopsyGui, setLimits(), SciFigs::GraphicSheet::setStatusBar(), SciFigs::Legend::setTexts(), setValues(), SciFigs::GraphicSheetMenu::sheet(), TRACE, and QGpCoreTools::unique().
{ TRACE; _stations.clear(); for(QList<AbstractStation *>::const_iterator it=stations.begin();it!=stations.end();++it) { _stations.append((*it)->results(0)); } // Adjust the list of categories keeping format for exiting ones QStringList cats; for(QList<StationResults *>::const_iterator it=_stations.begin();it!=_stations.end();++it) { cats.append((*it)->category()); } qSort(cats); unique(cats); static const Pen defaultPen(Qt::black, 0, Qt::NoPen); static const Symbol defaultSymbol(Symbol::Circle, 2.5, Pen(Qt::black), Brush(Qt::NoBrush) ); _categories.setTexts(cats, defaultPen, defaultSymbol); QMap<double, StationResults *> dist2stat=distance2Station(); if(_stackedLayer==0) { // Initialize graphs according to the availability of coordinates sheet()->setStatusBar(geopsyGui->statusBar()); createGraphs(dist2stat.count() > 1); } setValues(&dist2stat); sheet()->deepUpdate(); setLimits(); }
virtual void MonoStation::AbstractSummary::setValues | ( | const QMap< double, StationResults * > * | dist2stat = 0 | ) | [protected, pure virtual] |
Implemented in HVSummary, and SpectrumSummary.
Referenced by setStations().
virtual void MonoStation::AbstractSummary::setWindowTitle | ( | QString | subPoolName | ) | [pure virtual] |
Implemented in HVSummary, and SpectrumSummary.
IrregularGrid2DPlot* MonoStation::AbstractSummary::spectrumGridLayer | ( | ) | const [inline, protected] |
Referenced by HVSummary::setValues(), and SpectrumSummary::setValues().
{return _spectrumGridLayer;}
GridMaxFollower* MonoStation::AbstractSummary::spectrumGridMaxLayer | ( | ) | const [inline, protected] |
{return _spectrumGridMaxLayer;}
LineLayer* MonoStation::AbstractSummary::stackedLayer | ( | ) | const [inline, protected] |
{return _stackedLayer;}
Referenced by addActions().