def get(self, name): """ Return the value of a key """ val = DataUnitSettings.get(self, name) if name == "MergingColorTransferFunction" and not val: val = DataUnitSettings.get(self, "ColorTransferFunction") Logging.info("Returning proxyed ctf for merging", val, kw="ctf") self.set("MergingColorTransferFunction", val) return val return val
def get(self, name): """ Return the value of a key """ val = DataUnitSettings.get(self, name) if name == "MergingColorTransferFunction" and not val: val = DataUnitSettings.get(self, "ColorTransferFunction") Logging.info("Returning proxyed ctf for merging", val, kw = "ctf") self.set("MergingColorTransferFunction", val) return val return val
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