def write(self, cycle=None, time=None): """ Routine to invoke the datafile genration. :param cycle: int cycle :param time: float time """ # TODO: iterate through fields and check if the process needs todo io! filename = self.__prefix+self.__identifier if cycle is None and time is not None: cycle = self.__cycle self.__cycle += 1 if cycle is not None: filename += "_%07d" % cycle base = None if hasattr(context, 'comm'): if not self.__local_only: base = h5.File(filename+'.vsh5', 'w', driver='mpio', comm=context.comm) else: if not self.__omit: base = h5.File(filename+'.vsh5', 'w', driver='sec2') else: base = h5.File(filename+'.vsh5', 'w') base_name = '/' if not self.__omit: write_time(base, cycle, time) write_provenance_data(base) for writer in self.__writer: writer.write(base, base_name) base.close() del base if not hasattr(context, 'comm') or self.__local_only or context.rank is 0: kv.finalize(filename)
# -*- coding: utf-8 -*- import kv import h5py as h5 base = h5.File("file"+'.vsh5', 'w', driver='sec2') a_group = h5.Group.create_group(base, "time") kv.set_attrs(a_group.name, "aa", str.encode("utf8")) kv.set_attrs(a_group.name, "vsType1", str.encode("utf8")) a_group = h5.Group.create_group(base, "time1") kv.set_attrs(a_group.name, "vsType", str.encode("utf8")) kv.set_attrs(a_group.name, "vsType1", str.encode("utf8")) a_group = h5.Group.create_group(base, "abc") kv.set_attrs(a_group.name, "vsType1", str.encode("utf8")) a_group = h5.Group.create_group(base, "qabc") kv.set_attrs(a_group.name, "vsType1", str.encode("utf8")) base.close kv.finalize("file")