def _processSparsenessResults(self, key): """_processSparsenessResults doc...""" index = 0 means = [] totals = [] twValues = [] tsValues = [] lows = dict(x=[], y=[], error=[], color='#666666') mids = dict(x=[], y=[], error=[], color='#33CC33') highs = dict(x=[], y=[], error=[], color='#CC3333') for uid, entry in DictUtils.iter(self.data): # For each test list in track ratings process the data and filter it into the correct # segments for plotting. data = (entry['pes'] + entry['manus']) if not key else entry[key] data = ListUtils.sortObjectList(data, 'value') index += 1 if len(data) < 2: continue average = NumericUtils.weightedAverage(*data[1:]) means.append(average) totals.extend(data[1:]) twValues.append(average.value) maxVal = data[0] for v in data[1:]: if v.value > maxVal.value: maxVal = v if maxVal.value < 15.0: target = lows elif maxVal.value < 50.0: target = mids else: target = highs for v in data[1:]: tsValues.append(v.value) target['x'].append(index) target['y'].append(v.value) target['error'].append(v.uncertainty) return lows, mids, highs, tsValues, twValues, totals
def _calculateSparseness(cls, spacings, reference): """ Calculates the relative sparseness from the series spacings list and the reference spacing. """ out = [] for data in spacings: # For each entry in the tests, normalize that value to the most complete (highest # track count) series to create a relative sparseness rating diff = data.value - reference.value absDiff = abs(diff) dVal = reference.value sign = 0.0 if absDiff == 0.0 else diff/absDiff unc = abs(data.uncertainty/dVal) + abs(dVal*sign - absDiff)/(dVal*dVal) out.append(NumericUtils.toValueUncertainty( value=100.0*absDiff/dVal, uncertainty=100.0*unc)) return ListUtils.sortObjectList(out, 'value')
def _plotTrackwayGauges(self, points, color, unit, heading): histData = [] for p in points: histData.append(p.yValue.value) plot = Histogram( data=histData, title='%s Trackway Gauges' % heading, xLabel='Averaged Trackway Gauge (%s)' % unit, yLabel='Frequency', color=color) self._paths.insert(0, plot.save(self.getTempFilePath(extension='pdf'))) plot = ScatterPlot( data=ListUtils.sortObjectList(points, 'y', inPlace=True), title='%s Trackway Gauges' % heading, xLabel='Trackway Pes Count (#)', yLabel='Averaged Trackway Gauge (%s)' % unit, color=color) self._paths.insert(0, plot.save(self.getTempFilePath(extension='pdf')))