def execute(self): src_translation, src_data_dict = self.src_stack.read_data_dict( self.bcube, mip=self.mip, translation_adjuster=None, stack_name="src") if self.blackout_masks: mask_layers = self.dst_stack.get_layers_of_type(["mask"]) mask = helpers.read_mask_list(mask_layers, self.bcube, self.mip) else: mask = None if self.copy_masks: write_layers = self.dst_stack.get_layers_of_type(["img", "mask"]) else: write_layers = self.dst_stack.get_layers_of_type("img") for l in write_layers: src = src_data_dict[f"src_{l.name}"] if mask is not None: src[mask] = 0 l.write(src, bcube=self.bcube, mip=self.mip) # copy fields write_layers = self.dst_stack.get_layers_of_type("field") for l in write_layers: src = src_data_dict[f"src_{l.name}"] l.write(src, bcube=self.bcube, mip=self.mip)
def execute(self): src_data = self.src_layer.read(bcube=self.bcube, mip=self.mip) mask_data = helpers.read_mask_list(mask_list=self.mask_layers, bcube=self.bcube, mip=self.mip) if mask_data is not None: src_data = src_data[mask_data == 0] src_data = src_data[src_data != 0] src_data = src_data[src_data == src_data] if self.mean_layer is not None: if len(src_data) == 0: mean = torch.FloatTensor([0], device=src_data.device) else: mean = src_data.float().mean() self.mean_layer.write(mean, bcube=self.bcube, mip=self.mip, channel_start=self.write_channel, channel_end=self.write_channel + 1) if self.var_layer is not None: if len(src_data) == 0: var = torch.FloatTensor([0], device=src_data.device) else: var = src_data.float().var() self.var_layer.write(var, bcube=self.bcube, mip=self.mip, channel_start=self.write_channel, channel_end=self.write_channel + 1)
def execute(self): src_data = self.src_layer.read(bcube=self.bcube, mip=self.mip) mask_data = helpers.read_mask_list(mask_list=self.mask_layers, bcube=self.bcube, mip=self.mip) if mask_data is not None: src_data = src_data[mask_data == 0] if self.mean_layer is not None: mean = src_data[src_data != 0].float().mean() self.mean_layer.write(mean, bcube=self.bcube, mip=self.mip, channel_start=self.write_channel, channel_end=self.write_channel + 1) if self.var_layer is not None: var = src_data[src_data != 0].float().var() self.var_layer.write(var, bcube=self.bcube, mip=self.mip, channel_start=self.write_channel, channel_end=self.write_channel + 1)
def execute(self): corgie_logger.info( f"Normalizing {self.src_layer} at MIP{self.mip}, region: {self.bcube}" ) mean_data = self.mean_layer.read(self.bcube, mip=self.stats_mip) var_data = self.var_layer.read(self.bcube, mip=self.stats_mip) src_data = self.src_layer.read(self.bcube, mip=self.mip) mask_data = helpers.read_mask_list(mask_list=self.mask_layers, bcube=self.bcube, mip=self.mip) dst_data = (src_data - mean_data) / var_data.sqrt() if mask_data is not None: dst_data[mask_data] = self.mask_value self.dst_layer.write(dst_data, self.bcube, mip=self.mip)
def execute(self): padded_bcube = self.bcube.uncrop(self.pad, self.mip) for f in self.additional_fields: self.src_stack.add_layer(f) src_translation, src_data_dict = self.src_stack.read_data_dict( padded_bcube, mip=self.mip, stack_name='src') agg_field = src_data_dict[f"src_agg_field"] if self.blackout_masks: mask_layers = self.dst_stack.get_layers_of_type(["img", "mask"]) mask = helpers.read_mask_list(mask_layers, self.bcube, self.mip) else: mask = None if self.render_masks: write_layers = self.dst_stack.get_layers_of_type(["img", "mask"]) else: write_layers = self.dst_stack.get_layers_of_type("img") for l in write_layers: src = src_data_dict[f"src_{l.name}"] if agg_field is not None: warped_src = residuals.res_warp_img(src.float(), agg_field) else: warped_src = src if mask is not None: warped_src[mask] = 0.0 cropped_out = helpers.crop(warped_src, self.pad) l.write(cropped_out, bcube=self.bcube, mip=self.mip) for f in self.additional_fields: self.src_stack.remove_layer(f.name)