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().