class OpTiledVolumeReader(Operator): """ An operator to retrieve volumes from a remote server that provides volumes via image tiles. The operator requires a LOCAL json config file that describes the remote dataset and interface. (See tiledVolume.py) """ DescriptionFilePath = InputSlot(stype="filestring") Output = OutputSlot() def __init__(self, *args, **kwargs): super(OpTiledVolumeReader, self).__init__(*args, **kwargs) self.tiled_volume = None def setupOutputs(self): if self.tiled_volume: self.tiled_volume.close() # Create a TiledVolume object to read the description file and do the downloads. self.tiled_volume = TiledVolume(self.DescriptionFilePath.value) self.Output.meta.shape = tuple(self.tiled_volume.output_shape) self.Output.meta.dtype = self.tiled_volume.description.dtype self.Output.meta.axistags = vigra.defaultAxistags(self.tiled_volume.description.output_axes) self.Output.meta.prefer_2d = True self.Output.meta.nickname = self.tiled_volume.description.name def execute(self, slot, subindex, roi, result): self.tiled_volume.read((roi.start, roi.stop), result) return result def propagateDirty(self, slot, subindex, roi): assert slot == self.DescriptionFilePath, "Unknown input slot." self.Output.setDirty(slice(None)) def cleanUp(self): if self.tiled_volume: self.tiled_volume.close() super(OpTiledVolumeReader, self).cleanUp()
class OpTiledVolumeReader(Operator): """ An operator to retrieve volumes from a remote server that provides volumes via image tiles. The operator requires a LOCAL json config file that describes the remote dataset and interface. (See tiledVolume.py) """ DescriptionFilePath = InputSlot(stype='filestring') Output = OutputSlot() def __init__(self, *args, **kwargs): super(OpTiledVolumeReader, self).__init__(*args, **kwargs) self.tiled_volume = None def setupOutputs(self): if self.tiled_volume: self.tiled_volume.close() # Create a TiledVolume object to read the description file and do the downloads. self.tiled_volume = TiledVolume(self.DescriptionFilePath.value) self.Output.meta.shape = tuple(self.tiled_volume.output_shape) self.Output.meta.dtype = self.tiled_volume.description.dtype self.Output.meta.axistags = vigra.defaultAxistags( self.tiled_volume.description.output_axes) self.Output.meta.prefer_2d = True self.Output.meta.nickname = self.tiled_volume.description.name def execute(self, slot, subindex, roi, result): self.tiled_volume.read((roi.start, roi.stop), result) return result def propagateDirty(self, slot, subindex, roi): assert slot == self.DescriptionFilePath, "Unknown input slot." self.Output.setDirty(slice(None)) def cleanUp(self): if self.tiled_volume: self.tiled_volume.close() super(OpTiledVolumeReader, self).cleanUp()