示例#1
0
    def create_entries(self, data, key, current_and_next):
        expInfo = self.exp.meta_data
        group_name = expInfo.get_meta_data(["group_name", key])
        data.data_info.set_meta_data('group_name', group_name)
        try:
            group_name = group_name + '_' + data.name
        except AttributeError:
            pass

        group = data.backing_file.create_group(group_name)
        group.attrs[NX_CLASS] = 'NXdata'
        group.attrs['signal'] = 'data'

        logging.info("create_entries: 1")
        self.exp.barrier()

        if data.get_variable_flag() is True:
            dt = h5py.special_dtype(vlen=data.dtype)
            data.data = group.create_dataset('data', data.get_shape()[:-1], dt)
        else:
            shape = data.get_shape()
            if current_and_next is 0:
                data.data = group.create_dataset("data", shape, data.dtype)
            else:
                logging.info("create_entries: 2")
                self.exp.barrier()

                chunking = Chunking(self.exp, current_and_next)
                chunks = chunking.calculate_chunking(shape, data.dtype)
                logging.info("create_entries: 3")
                self.exp.barrier()
                # print "chunks = ", chunks
                data.data = group.create_dataset("data", shape, data.dtype,
                                                 chunks=chunks)
                logging.info("create_entries: 4")
                self.exp.barrier()

        return group_name, group