def loadFromXML(self, rawDataDirectory): """ This method is called upon if the loadFromJSON method fails to return any data """ print "Trying to load run info from the XML file" XMLFilename = ultracamutils.addPaths(rawDataDirectory, self.runPath) + ".xml" print XMLFilename try: tree = ElementTree.parse(XMLFilename) except IOError as e: print "Could not get read the run's XML file." return False root = tree.getroot() user = root.find('user') target = user.find('target').text PI = user.find('PI').text ID = user.find('ID').text observers = user.find('Observers').text raStr = user.find('RA').text decStr = user.find('Dec').text ra, dec = ultracamutils.fromSexagesimal(raStr, decStr) print "Target:", target print "PI: %s Observers: %s Programme: %s"%(PI, observers, ID) print "(ra, dec): (%f, %f)"%(ra, dec) self.ra = ra self.dec = dec self.target = target return True
def loadFromXML(self, rawDataDirectory): """ This method is called upon if the loadFromJSON method fails to return any data """ XMLFilename = ultracamutils.addPaths(rawDataDirectory, self.runPath) + ".xml" try: tree = ElementTree.parse(XMLFilename) except IOError as e: print "Could not get read the run's XML file at:", XMLFilename return False root = tree.getroot() # Read the window sizes and binning, etc filesave = root.find("filesave_status") instrument = filesave.find("instrument_status") detector = instrument.find("detector_status") powerToDetector = detector.attrib["power"] if powerToDetector == "OFF": self.powerCycle = True return True parameter = instrument.findall("parameter_status") parameters = {} for param in parameter: parameters[param.attrib["name"]] = param.attrib["value"] if parameters.has_key("COM_TAB_START"): self.powerCycle = True return True windows = [] xbin = int(parameters["X_BIN"]) ybin = int(parameters["Y_BIN"]) for number in range(1, 5): try: xStartStr = "X%d_START" % number xStart = int(parameters[xStartStr]) yStartStr = "Y%d_START" % number yStart = int(parameters[yStartStr]) xSizeStr = "X%d_SIZE" % number xSize = int(parameters[xSizeStr]) ySizeStr = "Y%d_SIZE" % number ySize = int(parameters[ySizeStr]) except KeyError: continue if xSize != 0 and ySize != 0: # Add this to the list of windows windowDict = {} windowDict["xll"] = xStart windowDict["nx"] = xSize windowDict["yll"] = yStart windowDict["ny"] = ySize windowDict["xbin"] = xbin windowDict["ybin"] = ybin windows.append(windowDict) self.windowInfo = windows # Get the observation meta-data user = root.find("user") target = user.find("target").text flags = user.find("flags").text PI = user.find("PI").text ID = user.find("ID").text observers = user.find("Observers").text try: raStr = user.find("RA").text decStr = user.find("Dec").text ra, dec = ultracamutils.fromSexagesimal(raStr, decStr) except AttributeError: ra, dec = (0, 0) # print "Target:", target # print "PI: %s Observers: %s Programme: %s"%(PI, observers, ID) # print "(ra, dec): (%f, %f)"%(ra, dec) self.ra = ra self.dec = dec self.target = target self.flags = flags return True