def create_datasets(self, hdf5_file: h5py.File, stats_name: str, histo_name: str, num_samples: int, extra_info: dict): self.expected_num_samples = num_samples stats_shape = (num_samples, len(list(StatField))) self.stats_file = hdf5_file.require_dataset(stats_name, stats_shape, dtype='f', exact=True) self.stats_file.attrs['NumFields'] = len(list(StatField)) for field in list(StatField): self.stats_file.attrs['Field%d' % field.value] = field.name for key, value in extra_info.items(): self.stats_file.attrs[key] = value self.stats_index = 0 histo_shape = (NUM_BINS, len(list(HistoField))) self.histo_file = hdf5_file.require_dataset(histo_name, histo_shape, dtype='f', exact=True) self.histo_file.attrs['NumFields'] = len(list(HistoField)) for field in list(HistoField): self.histo_file.attrs['Field%d' % field.value] = field.name for key, value in extra_info.items(): self.histo_file.attrs[key] = value
def write_parameter_map(f: h5py.File, mapping_matrix: np.array, override_matrix: np.array, num_model_parameters: int, compression=None) -> None: """Write parameter mapping""" f.require_dataset( name='/parameters/parameterOverrides', chunks=(num_model_parameters, 1), dtype='f8', fillvalue=np.nan, compression=compression, shape=override_matrix.shape, data=override_matrix) f.require_dataset( name='/parameters/optimizationSimulationMapping', chunks=(num_model_parameters, 1), dtype='<i4', fillvalue=-1, compression=compression, shape=mapping_matrix.shape, data=mapping_matrix)