Beispiel #1
0
    def setDataSource(self, dataSource):
        """
		Sets a DataSource for this CombinedDataUnit
		Parameters: dataSource	A DataSource to manage actual
								image data located on disk
		"""
        DataUnit.setDataSource(self, dataSource)
	def setDataSource(self, dataSource):
		"""
		Sets a DataSource for this CombinedDataUnit
		Parameters: dataSource	A DataSource to manage actual
								image data located on disk
		"""
		DataUnit.setDataSource(self, dataSource)
	def loadFromFile(self, filename):
		"""
		Loads the specified .oif-file and imports data from it.
		Parameters:   filename  The .oif-file to be loaded
		"""
		dataunit = DataUnit()
		datasource = InterfileDataSource(filename)
		dataunit.setDataSource(datasource)
		return [dataunit]
	def loadFromFile(self, filename):
		"""
		Loads image from MRC-file and generates own DataSource
		@param filename Path to MRC-file
		@return List of tuples of datasets in file (only one)
		"""
		self.filename = filename
		dataUnits = []
		imageName = self.getShortName()
		dataSource = MRCDataSource(filename)
		dataUnit = DataUnit()
		dataUnit.setDataSource(dataSource)
		dataUnits.append((imageName,dataUnit))

		return dataUnits
Beispiel #5
0
    def loadFromFile(self, filename):
        """
		Loads image from MRC-file and generates own DataSource
		@param filename Path to MRC-file
		@return List of tuples of datasets in file (only one)
		"""
        self.filename = filename
        dataUnits = []
        imageName = self.getShortName()
        dataSource = MRCDataSource(filename)
        dataUnit = DataUnit()
        dataUnit.setDataSource(dataSource)
        dataUnits.append((imageName, dataUnit))

        return dataUnits
	def loadFromFile(self, filename):
		"""
		Loads a directory of slices
		"""
		self.filename = filename
		filebase, ext = os.path.splitext(filename)
		directoryname = os.path.abspath(os.path.dirname(filename))
		
		ext = ext[1:]
		files = glob.glob(os.path.join(directoryname, "*.%s"%ext))
		print "Loading files", files
		
		datasource = FileListDataSource.FileListDataSource()
		datasource.setSlicesPerTimepoint(len(files))
		datasource.setFilenames(files)
		dataunit = DataUnit()
		dataunit.setDataSource(datasource)
		settings = dataunit.getSettings()

		dims = datasource.getDimensions()
		settings.set("Dimensions", dims)
		settings.set("Name", os.path.basename(os.path.dirname(filename)))
		
		return [dataunit]
Beispiel #7
0
    def loadFromFile(self, filename):
        """
		Loads a directory of slices
		"""
        self.filename = filename
        filebase, ext = os.path.splitext(filename)
        directoryname = os.path.abspath(os.path.dirname(filename))

        ext = ext[1:]
        files = glob.glob(os.path.join(directoryname, "*.%s" % ext))
        print "Loading files", files

        datasource = FileListDataSource.FileListDataSource()
        datasource.setSlicesPerTimepoint(len(files))
        datasource.setFilenames(files)
        dataunit = DataUnit()
        dataunit.setDataSource(datasource)
        settings = dataunit.getSettings()

        dims = datasource.getDimensions()
        settings.set("Dimensions", dims)
        settings.set("Name", os.path.basename(os.path.dirname(filename)))

        return [dataunit]
		self.reader.SetFileName(self.convertFileName(filename))

		#self.reader.Update()
		self.reader.UpdateInformation()

		dataunits = []
		channelNum = self.reader.GetNumberOfChannels()
		self.timepointAmnt = channelNum
		Logging.info("There are %d channels" % channelNum, kw = "lsmreader")
		for i in range(channelNum):
			# We create a datasource with specific channel number that
			#  we can associate with the dataunit
			datasource = LsmDataSource(filename, i)
			datasource.setPath(filename)
			dataunit = DataUnit()
			dataunit.setDataSource(datasource)
			dataunits.append(dataunit)
			
		return dataunits


	def getColorTransferFunction(self):
		"""
		Returns the ctf of the dataset series which this datasource
					 operates on
		"""
		if not self.ctf:
			Logging.info("Using ctf based on LSM Color", kw = "lsmreader")
			ctf = vtk.vtkColorTransferFunction()
			r = self.reader.GetChannelColorComponent(self.channelNum, 0)
			g = self.reader.GetChannelColorComponent(self.channelNum, 1)
Beispiel #9
0
	def loadFromFile(self, filename):
		"""
		Loads the specified .bxc-file and imports data from it.
					 Also returns a DataUnit of the type stored in the loaded
					 .bxc-file or None if something goes wrong. The dataunit is
					 returned in a list with one item for interoperability with
					 LSM data source
		"""
		if not self.baseFilename:
			self.baseFilename = filename
		self.shortname = os.path.basename(filename)
		dataUnitFormat = self.loadBxdFile(filename)
		Logging.info("format of unit = ", dataUnitFormat, kw = "datasource")

		if (not dataUnitFormat) or (not self.parser):
			Logging.info("No dataUnitFormat or parser: %s and %s"%(dataUnitFormat, self.parser), kw = "datasource")
			return None

		# Then, the number of datasets/timepoints that belong to this dataset
		# series
		try:
			count = self.parser.get("ImageData", "numberOfFiles")
		except ConfigParser.NoOptionError:
			count = self.parser.get("ImageData", "numberoffiles")
		Logging.info("format = ", dataUnitFormat, "count = ", count, kw = "datasource")

		# Then read the .vti-filenames and store them in the dataSets-list:
		filedir = os.path.dirname(filename)
		
		hasPolydata = self.parser.has_section("PolyData")
		for i in range(int(count)):
			currentFile = "file_%d"%i
			filename = self.parser.get("ImageData", currentFile)
			
			if hasPolydata:
				print "GOT polydata"
				polyFileName = self.parser.get("PolyData", currentFile)
				self.polyDataFiles.append(polyFileName)
				
			reader = vtk.vtkXMLImageDataReader()
			filepath = os.path.join(filedir, filename)
			if not reader.CanReadFile(filepath):
				Logging.error("Cannot read file",
				"Cannot read source XML Image Data File %s"%filename)
				return

			self.dataSets.append(filename)

		# If everything went well, we create a new DataUnit-instance of the
		# correct subclass, so that the DataUnit-instance can take over and
		# resume data processing. First, we return the DataUnit to the caller,
		# so it can set a reference to it:
		dataunit = DataUnit()
		settings = DataUnitSettings()
		settings.setType("")
		settings = settings.readFrom(self.parser)
		self.originalDimensions = eval(settings.get("Dimensions"))
		self.settings = settings
		dataunit.setDataSource(self)
		dataunit.setSettings(settings)
		data = dataunit.getTimepoint(0)
		dataunits = [dataunit]
	   
		if data.GetNumberOfScalarComponents() == 3:
			for i in range(0, 3) :
				dataSource = RGBComponentDataSource(self, i)
				dataunit = DataUnit()
				dataunit.setDataSource(dataSource)
				settings = DataUnitSettings()
				settings = settings.readFrom(self.parser)
				dataunit.setSettings(settings)
				dataunits.append(dataunit)

		return dataunits
Beispiel #10
0
        self.reader.SetFileName(self.convertFileName(filename))

        #self.reader.Update()
        self.reader.UpdateInformation()

        dataunits = []
        channelNum = self.reader.GetNumberOfChannels()
        self.timepointAmnt = channelNum
        Logging.info("There are %d channels" % channelNum, kw="lsmreader")
        for i in range(channelNum):
            # We create a datasource with specific channel number that
            #  we can associate with the dataunit
            datasource = LsmDataSource(filename, i)
            datasource.setPath(filename)
            dataunit = DataUnit()
            dataunit.setDataSource(datasource)
            dataunits.append(dataunit)

        return dataunits

    def getColorTransferFunction(self):
        """
		Returns the ctf of the dataset series which this datasource
					 operates on
		"""
        if not self.ctf:
            Logging.info("Using ctf based on LSM Color", kw="lsmreader")
            ctf = vtk.vtkColorTransferFunction()
            r = self.reader.GetChannelColorComponent(self.channelNum, 0)
            g = self.reader.GetChannelColorComponent(self.channelNum, 1)
            b = self.reader.GetChannelColorComponent(self.channelNum, 2)