def createEmptyMetricBundle(): """Create an empty metric bundle. Returns ------- MetricBundle An empty metric bundle, configured with just the :class:`BaseMetric` and :class:`BaseSlicer`. """ return MetricBundle(metrics.BaseMetric(), slicers.BaseSlicer(), '')
def read(self, filename): """Read metricValues and associated metadata from disk. Overwrites any data currently in metricbundle. Parameters ---------- filename : str The file from which to read the metric bundle data. """ if not os.path.isfile(filename): raise IOError('%s not found' % filename) self._resetMetricBundle() # Set up a base slicer to read data (we don't know type yet). baseslicer = slicers.BaseSlicer() # Use baseslicer to read file. metricValues, slicer, header = baseslicer.readData(filename) self.slicer = slicer self.metricValues = metricValues self.metricValues.fill_value = slicer.badval # It's difficult to reinstantiate the metric object, as we don't # know what it is necessarily -- the metricName can be changed. self.metric = metrics.BaseMetric() # But, for plot label building, we do need to try to recreate the # metric name and units. self.metric.name = header['metricName'] if 'plotDict' in header: if 'units' in header['plotDict']: self.metric.units = header['plotDict']['units'] else: self.metric.units = '' self.runName = header['simDataName'] try: self.constraint = header['constraint'] except KeyError: self.constraint = header['sqlconstraint'] self.metadata = header['metadata'] if self.metadata is None: self._buildMetadata() if 'plotDict' in header: self.setPlotDict(header['plotDict']) if 'displayDict' in header: self.setDisplayDict(header['displayDict']) path, head = os.path.split(filename) self.fileRoot = head.replace('.npz', '') self.setPlotFuncs(None)
def setUp(self): self.filenames = [] self.baseslicer = slicers.BaseSlicer()