def read_all_mysql(self): print "reading observations from %s database" % (self.params.backend) if self.params.backend == 'MySQL': from xfel.cxi.merging_database import manager elif self.params.backend == 'SQLite': from xfel.cxi.merging_database_sqlite3 import manager else: from xfel.cxi.merging_database_fs import manager CART = manager(self.params) self.millers_mysql = CART.read_indices() self.millers = self.millers_mysql self.observations_mysql = CART.read_observations() parser = column_parser() parser.set_int("hkl_id", self.observations_mysql["hkl_id"]) parser.set_double("i", self.observations_mysql["i"]) parser.set_double("sigi", self.observations_mysql["sigi"]) parser.set_int("frame_id", self.observations_mysql["frame_id"]) parser.set_int("H", self.observations_mysql["original_h"]) parser.set_int("K", self.observations_mysql["original_k"]) parser.set_int("L", self.observations_mysql["original_l"]) self._observations_mysql = parser self.observations = dict( hkl_id=parser.get_int("hkl_id"), i=parser.get_double("i"), sigi=parser.get_double("sigi"), frame_id=parser.get_int("frame_id"), H=parser.get_int("H"), K=parser.get_int("K"), L=parser.get_int("L"), ) self.frames_mysql = CART.read_frames() parser = column_parser() parser.set_int("frame_id", self.frames_mysql["frame_id"]) parser.set_double("wavelength", self.frames_mysql["wavelength"]) parser.set_double("cc", self.frames_mysql["cc"]) try: parser.set_double("slope", self.frames_mysql["slope"]) parser.set_double("offset", self.frames_mysql["offset"]) if self.params.scaling.report_ML: parser.set_double("domain_size_ang", self.frames_mysql["domain_size_ang"]) parser.set_double("half_mosaicity_deg", self.frames_mysql["half_mosaicity_deg"]) except KeyError: pass self._frames_mysql = parser CART.join()
def read_all_mysql(self): print "reading observations from %s database"%(self.params.backend) if self.params.backend == 'MySQL': from xfel.cxi.merging_database import manager elif self.params.backend == 'SQLite': from xfel.cxi.merging_database_sqlite3 import manager else: from xfel.cxi.merging_database_fs import manager CART = manager(self.params) self.millers_mysql = CART.read_indices() self.millers = self.millers_mysql self.observations_mysql = CART.read_observations() parser = column_parser() parser.set_int("hkl_id",self.observations_mysql["hkl_id"]) parser.set_double("i",self.observations_mysql["i"]) parser.set_double("sigi",self.observations_mysql["sigi"]) parser.set_int("frame_id",self.observations_mysql["frame_id"]) parser.set_int("H",self.observations_mysql["original_h"]) parser.set_int("K",self.observations_mysql["original_k"]) parser.set_int("L",self.observations_mysql["original_l"]) self._observations_mysql = parser self.observations = dict(hkl_id=parser.get_int("hkl_id"), i=parser.get_double("i"), sigi=parser.get_double("sigi"), frame_id=parser.get_int("frame_id"), H=parser.get_int("H"), K=parser.get_int("K"), L=parser.get_int("L"), ) self.frames_mysql = CART.read_frames() parser = column_parser() parser.set_int("frame_id",self.frames_mysql["frame_id"]) parser.set_double("wavelength",self.frames_mysql["wavelength"]) parser.set_double("cc",self.frames_mysql["cc"]) try: parser.set_double("slope",self.frames_mysql["slope"]) parser.set_double("offset",self.frames_mysql["offset"]) if self.params.scaling.report_ML: parser.set_double("domain_size_ang",self.frames_mysql["domain_size_ang"]) parser.set_double("half_mosaicity_deg",self.frames_mysql["half_mosaicity_deg"]) except KeyError: pass self._frames_mysql = parser CART.join()
def read_all(self): # XXX Should not be used any more--migrate C++ into # cxi/merging_database_fs.py? print "reading observations from flat-file database" self.frames = dict( frame_id=flex.int(), wavelength=flex.double(), cc=flex.double(), slope=flex.double(), offset=flex.double(), odd_numbered=flex.bool(), orientation=[], unit_cell=[]) self.millers = dict(merged_asu_hkl=flex.miller_index()) G = open(self.params.output.prefix+"_miller.db","r") for line in G.xreadlines(): tokens = line.strip().split() self.millers["merged_asu_hkl"].append((int(tokens[1]),int(tokens[2]),int(tokens[3]))) # --- start C++ read parser = column_parser() parser.set_int("hkl_id",0) parser.set_double("i",1) parser.set_double("sigi",2) parser.set_int("frame_id",5) parser.set_int("H",7) parser.set_int("K",8) parser.set_int("L",9) G = open(self.params.output.prefix+"_observation.db","r") for line in G.xreadlines(): parser.parse_from_line(line) self.observations = dict(hkl_id=parser.get_int("hkl_id"), i=parser.get_double("i"), sigi=parser.get_double("sigi"), frame_id=parser.get_int("frame_id"), H=parser.get_int("H"), K=parser.get_int("K"), L=parser.get_int("L"), ) self._observations = parser G.close() # --- done with C++ read G = open(self.params.output.prefix+"_frame.db","r") for line in G.xreadlines(): tokens = line.strip().split() self.frames["frame_id"].append(int(tokens[0])) self.frames["wavelength"].append(float(tokens[1])) self.frames["cc"].append(float(tokens[5])) self.frames["slope"].append(float(tokens[6])) self.frames["offset"].append(float(tokens[7])) self.frames["odd_numbered"].append( is_odd_numbered(tokens[17]) ) # components of orientation direct matrix odm = (float(tokens[8]), float(tokens[9]), float(tokens[10]), float(tokens[11]), float(tokens[12]), float(tokens[13]), float(tokens[14]), float(tokens[15]), float(tokens[16]),) CO = crystal_orientation(odm, False) self.frames["orientation"].append(CO) self.frames["unit_cell"].append(CO.unit_cell()) G.close() parser = column_parser() parser.set_int("frame_id",0) parser.set_double("wavelength",1) parser.set_double("cc",5) parser.set_double("slope",6) parser.set_double("offset",7) G = open(self.params.output.prefix+"_frame.db","r") for line in G.xreadlines(): parser.parse_from_line(line) self._frames = parser