def _processGaugeData(self, bundle, trackway, data): pesCount = bundle.leftPes.count + bundle.rightPes.count record = {'name':trackway.name, 'count':pesCount} gaugeData = data['gauges'] try: value = NumericUtils.getWeightedMeanAndDeviation(gaugeData.abs) record['abs'] = value.value record['absUnc'] = value.uncertainty self._trackwayGauges.abs.append((pesCount, value)) except ZeroDivisionError: return widthValue = NumericUtils.getWeightedMeanAndDeviation(gaugeData.width) record['width'] = widthValue.value record['widthUnc'] = widthValue.uncertainty self._trackwayGauges.width.append((pesCount, widthValue)) if gaugeData.pace: value = NumericUtils.getWeightedMeanAndDeviation(gaugeData.pace) record['pace'] = value.value record['paceUnc'] = value.uncertainty self._trackwayGauges.pace.append((pesCount, value)) else: record['pace'] = '' record['paceUnc'] = '' if gaugeData.stride: value = NumericUtils.getWeightedMeanAndDeviation(gaugeData.stride) record['stride'] = value.value record['strideUnc'] = value.uncertainty self._trackwayGauges.stride.append((pesCount, value)) else: record['stride'] = '' record['strideUnc'] = '' self._trackwayCsv.addRow(record) plot = ScatterPlot( data=data['points'], title='%s Width-Normalized Gauges (%s)' % (trackway.name, widthValue.label), xLabel='Track Position (m)', yLabel='Gauge (AU)') self._paths.append(plot.save(self.getTempFilePath(extension='pdf'))) analysisTrackway = trackway.getAnalysisPair(self.analysisSession) analysisTrackway.simpleGauge = widthValue.raw analysisTrackway.simpleGaugeUnc = widthValue.rawUncertainty
def _analyzeTrackway(self, trackway, sitemap): entries = [] data = {'entries':entries} self.trackwaysData[trackway.uid] = data super(TrackHeadingStage, self)._analyzeTrackway(trackway, sitemap) if len(entries) < 2: del self.trackwaysData[trackway.uid] return d = [item.deviation for item in entries] significantDeviations = [] for deviation in d: if deviation >= 1.0: significantDeviations.append(deviation) devs = { 'global':d[-1], 'max':max(*d), 'fraction':len(significantDeviations)/len(d) } data['deviations'] = devs color = 'blue' if devs['global'] >= 1.0: color = 'red' elif devs['max'] >= 1.0: color ='green' d = [item.point for item in entries] plot = ScatterPlot( data=d, color=color, title='%s Track Headings' % trackway.name, yLabel='Angle (Degrees)', xLabel='Trackway Curve Position (m)') self._paths.append(plot.save(self.getTempFilePath(extension='pdf')))
def _plotTracks(self, tracks, trackway): """_plotTracks doc...""" points = [] labels = [] for t in tracks: at = t.getAnalysisPair(self.analysisSession) if t.pes: signal = 1 if t.left else 2 else: signal = 3 if t.left else 4 p = PositionValue2D(x=at.curvePosition, y=signal) points.append(p) labels.append(t.shortFingerprint) plot = ScatterPlot( data=points, title='%s Trackway Ordering' % trackway.name, xLabel='Trackway Curve Position (m)', yLabel='Classification', yLimits=[0, 5], yTickFunc=self._plotLabelChannelsFunc) self._paths.append(plot.save(self.getTempFilePath(extension='pdf')))