def write_analyses_to_csv(p, ms): man = IsotopeDatabaseManager(bind=False, connect=False) man.db.trait_set(name='pychrondata', kind='mysql', host='129.138.12.160', username='******', password='******') man.connect() db = man.db with db.session_ctx(): h = datetime.now() l = h - timedelta(days=60) ans = db.get_analyses_date_range(l, h, mass_spectrometers=ms) with open(p, 'w') as wfile: writer = csv.writer(wfile) n = len(ans) for i, ai in enumerate(ans): if not (i + 1) % 10: print '{}/{}'.format(i + 1, n) try: t = ai.timestamp pc = ai.peak_center.center # print ai.analysis_timestamp, t, pc writer.writerow([t, pc]) except AttributeError: pass
def write_analyses_to_csv(p, ms): man = IsotopeDatabaseManager(bind=False, connect=False) man.db.trait_set( name="pychrondata", kind="mysql", host=os.environ.get("HOST"), username="******", password=os.environ.get("DB_PWD"), ) man.connect() db = man.db with db.session_ctx(): h = datetime.now() l = h - timedelta(days=60) ans = db.get_analyses_date_range(l, h, mass_spectrometers=ms) with open(p, "w") as wfile: writer = csv.writer(wfile) n = len(ans) for i, ai in enumerate(ans): # if not (i + 1) % 10: # print '{}/{}'.format(i + 1, n) try: t = ai.timestamp # print ai.id pc = ai.peak_center.center print ai.analysis_timestamp, ai.record_id, t, pc writer.writerow([t, pc]) except AttributeError, e: print e
def write_analyses_to_csv(p, ms): man = IsotopeDatabaseManager(bind=False, connect=False) man.db.trait_set(name='pychrondata', kind='mysql', host='129.138.12.160', username='******', password='******') man.connect() db = man.db with db.session_ctx(): h = datetime.now() l = h - timedelta(days=60) ans = db.get_analyses_date_range(l, h, mass_spectrometers=ms) with open(p, 'w') as wfile: writer = csv.writer(wfile) n = len(ans) for i, ai in enumerate(ans): if not (i + 1) % 10: print '{}/{}'.format(i + 1, n) try: t = ai.timestamp pc = ai.peak_center.center # print ai.analysis_timestamp, t, pc writer.writerow([t, pc]) except AttributeError: pass
def isotope_manager_factory(name='pychrondata_dev'): man = IsotopeDatabaseManager(connect=False, bind=False) man.db.kind = 'mysql' man.db.name = name man.db.password = '******' man.db.username = '******' man.db.host = 'localhost' man.connect() return man
def isotope_manager_factory(name='pychrondata_dev'): man = IsotopeDatabaseManager(connect=False, bind=False) man.db.kind = 'mysql' man.db.name = name man.db.password = '******' man.db.username = '******' man.db.host = 'localhost' man.connect() return man
def load(self, db_mol_weights=True): self.debug('******************************* LOAD Spec') if db_mol_weights: # get the molecular weights from the database dbm = IsotopeDatabaseManager(application=self.application, warn=False) self.db = dbm if dbm.isConnected(): self.info('loading molecular_weights from database') mws = dbm.db.get_molecular_weights() # convert to a dictionary m = dict([(mi.name, mi.mass) for mi in mws]) self.spectrometer.molecular_weights = m if not self.spectrometer.molecular_weights: import csv # load the molecular weights dictionary p = os.path.join(paths.spectrometer_dir, 'molecular_weights.csv') if os.path.isfile(p): self.info('loading "molecular_weights.csv" file') with open(p, 'U') as f: reader = csv.reader(f, delimiter='\t') args = [[l[0], float(l[1])] for l in reader] self.spectrometer.molecular_weights = dict(args) else: self.info('writing a default "molecular_weights.csv" file') # make a default molecular_weights.csv file from pychron.spectrometer.molecular_weights import MOLECULAR_WEIGHTS as mw with open(p, 'U') as f: writer = csv.writer(f, delimiter='\t') data = [a for a in mw.itervalues()] data = sorted(data, key=lambda x: x[1]) for row in data: writer.writerow(row) self.spectrometer.molecular_weights = mw #config = self.get_configuration(path=os.path.join(paths.spectrometer_dir, 'detectors.cfg')) #for name in config.sections(): # relative_position = self.config_get(config, name, 'relative_position', cast='float') # color = self.config_get(config, name, 'color', default='black') # default_state = self.config_get(config, name, 'default_state', default=True, cast='boolean') # isotope = self.config_get(config, name, 'isotope') # kind = self.config_get(config, name, 'kind', default='Faraday', optional=True) # self.spectrometer.add_detector(name=name, # relative_position=relative_position, # color=color, # active=default_state, # isotope=isotope, # kind=kind) self.spectrometer.load() return True
def load(self, db_mol_weights=True): self.debug('******************************* LOAD Spec') if db_mol_weights: # get the molecular weights from the database dbm = IsotopeDatabaseManager(application=self.application, warn=False) self.db = dbm if dbm.isConnected(): self.info('loading molecular_weights from database') mws = dbm.db.get_molecular_weights() # convert to a dictionary m = dict([(mi.name, mi.mass) for mi in mws]) self.spectrometer.molecular_weights = m if not self.spectrometer.molecular_weights: import csv # load the molecular weights dictionary p = os.path.join(paths.spectrometer_dir, 'molecular_weights.csv') if os.path.isfile(p): self.info('loading "molecular_weights.csv" file') with open(p, 'U') as f: reader = csv.reader(f, delimiter='\t') args = [[l[0], float(l[1])] for l in reader] self.spectrometer.molecular_weights = dict(args) else: self.info('writing a default "molecular_weights.csv" file') # make a default molecular_weights.csv file from pychron.spectrometer.molecular_weights import MOLECULAR_WEIGHTS as mw with open(p, 'U') as f: writer = csv.writer(f, delimiter='\t') data = [a for a in mw.itervalues()] data = sorted(data, key=lambda x: x[1]) for row in data: writer.writerow(row) self.spectrometer.molecular_weights = mw #config = self.get_configuration(path=os.path.join(paths.spectrometer_dir, 'detectors.cfg')) #for name in config.sections(): # relative_position = self.config_get(config, name, 'relative_position', cast='float') # color = self.config_get(config, name, 'color', default='black') # default_state = self.config_get(config, name, 'default_state', default=True, cast='boolean') # isotope = self.config_get(config, name, 'isotope') # kind = self.config_get(config, name, 'kind', default='Faraday', optional=True) # self.spectrometer.add_detector(name=name, # relative_position=relative_position, # color=color, # active=default_state, # isotope=isotope, # kind=kind) self.spectrometer.load() return True
def setup_source(self): src = IsotopeDatabaseManager(connect=False, bind=False) db = src.db db.trait_set(name='pychrondata', kind='mysql', host='129.138.12.160', username='******', password='******') self.source = src
def setup_source(self): src = IsotopeDatabaseManager(connect=False, bind=False) db = src.db db.trait_set(name='pychrondata', kind='mysql', host=os.environ.get('HOST'), username='******', password=os.environ.get('DB_PWD')) self.source = src
def _scanner_default(self): spec = self.spectrometer_manager.spectrometer s = MassCalibratorSweep(spectrometer=spec, db=IsotopeDatabaseManager()) if spec.simulation: s.integration_time = 0.065536 s.verbose = True return s
def _source_default(self): r = IsotopeDatabaseManager(connect=False, bind=False) r.db.trait_set(kind='mysql', host='localhost', username='******', password='******', name='pychrondata_dev') r.db.connect() return r
def perform(self, event): from pychron.entry.loaders.irradiation_holder_loader import IrradiationHolderLoader from pychron.database.isotope_database_manager import IsotopeDatabaseManager man = IsotopeDatabaseManager() db = man.db if db.connect(): a = IrradiationHolderLoader() a.do_import(db)
def load(self, db_mol_weights=True): spec = self.spectrometer mftable = spec.magnet.mftable self.debug('******************************* LOAD Spec') if db_mol_weights: # get the molecular weights from the database dbm = IsotopeDatabaseManager(application=self.application, warn=False) if dbm.is_connected(): self.info('loading molecular_weights from database') mws = dbm.db.get_molecular_weights() # convert to a dictionary m = dict([(mi.name, mi.mass) for mi in mws]) spec.molecular_weights = m mftable.db = dbm.db if not spec.molecular_weights: import csv # load the molecular weights dictionary p = os.path.join(paths.spectrometer_dir, 'molecular_weights.csv') if os.path.isfile(p): self.info('loading "molecular_weights.csv" file') with open(p, 'U') as f: reader = csv.reader(f, delimiter='\t') args = [[l[0], float(l[1])] for l in reader] spec.molecular_weights = dict(args) else: self.info('writing a default "molecular_weights.csv" file') # make a default molecular_weights.csv file from pychron.spectrometer.molecular_weights import MOLECULAR_WEIGHTS as mw with open(p, 'U') as f: writer = csv.writer(f, delimiter='\t') data = [a for a in mw.itervalues()] data = sorted(data, key=lambda x: x[1]) for row in data: writer.writerow(row) spec.molecular_weights = mw self.spectrometer.load() mftable.spectrometer_name = self.spectrometer.name return True
def _get_database_manager(self, connect=True): if not self._db: iso = IsotopeDatabaseManager(application=self.application, warn=False, version_warn=False, attribute_warn=False, connect=connect) self._db = iso return self._db
def init(self): conn = dict( host=os.environ.get('ARGONSERVER_HOST'), username='******', # os.environ.get('ARGONSERVER_DB_USER'), password=os.environ.get('ARGONSERVER_DB_PWD'), kind='mysql') use_local = False if use_local: meta_name = 'MetaDataDev' dest_conn = dict( host='localhost', username=os.environ.get('LOCALHOST_DB_USER'), password=os.environ.get('LOCALHOST_DB_PWD'), kind='mysql', # echo=True, name='pychrondvc_dev') else: meta_name = 'NMGRLMetaData' dest_conn = conn.copy() dest_conn['name'] = 'pychrondvc' self.dvc = DVC(bind=False, organization='NMGRLData', meta_repo_name=meta_name) paths.meta_root = os.path.join(paths.dvc_dir, self.dvc.meta_repo_name) self.dvc.db.trait_set(**dest_conn) if not self.dvc.initialize(): self.warning_dialog('Failed to initialize DVC') return self.dvc.meta_repo.smart_pull(quiet=self.quiet) self.persister = DVCPersister(dvc=self.dvc, stage_files=False, bind=False) proc = IsotopeDatabaseManager(bind=False, connect=False) use_local_src = False if use_local_src: conn = dict( host='localhost', username=os.environ.get('LOCALHOST_DB_USER'), password=os.environ.get('LOCALHOST_DB_PWD'), kind='mysql', # echo=True, name='pychrondata') else: conn['name'] = 'pychrondata' proc.db.trait_set(**conn) src = proc.db src.connect() self.processor = proc
def get_project_bins(project): # src = self.processor.db src = IsotopeDatabaseManager( dict( host='localhost', username=os.environ.get('LOCALHOST_DB_USER'), password=os.environ.get('LOCALHOST_DB_PWD'), kind='mysql', # echo=True, name='pychrondata')) tol_hrs = 6 # self.debug('bulk import project={}, pi={}'.format(project, principal_investigator)) ts, idxs = get_project_timestamps(src.db, project, tol_hrs=tol_hrs) # repository_identifier = project # def filterfunc(x): # a = x.labnumber.irradiation_position is None # b = False # if not a: # b = x.labnumber.irradiation_position.level.irradiation.name == irradname # # d = False # if x.extraction: # ed = x.extraction.extraction_device # if not ed: # d = True # else: # d = ed.name == 'Fusions CO2' # # return (a or b) and d # for ms in ('jan', 'obama'): for i, ais in enumerate(array_split(ts, idxs + 1)): if not ais.shape[0]: continue low = get_datetime(ais[0]) - timedelta(hours=tol_hrs / 2.) high = get_datetime(ais[-1]) + timedelta(hours=tol_hrs / 2.) print ms, low, high
def bind_preferences(self): # massspec prefid = 'pychron.massspec.database' bind_preference(self, 'massspec_enabled', '{}.enabled'.format(prefid)) if self.massspec_enabled: from pychron.experiment.utilities.mass_spec_database_importer import MassSpecDatabaseImporter store = MassSpecDatabaseImporter() bind_preference(store.db, 'name', '{}.name'.format(prefid)) bind_preference(store.db, 'host', '{}.host'.format(prefid)) bind_preference(store.db, 'username', '{}.username'.format(prefid)) bind_preference(store.db, 'password', '{}.password'.format(prefid)) prefid = 'pychron.massspec.config' bind_preference(store, 'reference_detector_name', '{}.reference_detector_name'.format(prefid)) bind_preference(store, 'reference_isotope_name', '{}.reference_isotope_name'.format(prefid)) bind_preference( store, 'use_reference_detector_by_isotope', '{}.use_reference_detector_by_isotope'.format(prefid)) self.stores['massspec'] = store # isotopedb prefid = 'pychron.pychron.database' bind_preference(self, 'isotopedb_enabled', '{}.enabled'.format(prefid)) if self.isotopedb_enabled: from pychron.database.isotope_database_manager import IsotopeDatabaseManager store = IsotopeDatabaseManager() bind_preference(store.db, 'name', '{}.name'.format(prefid)) bind_preference(store.db, 'host', '{}.host'.format(prefid)) bind_preference(store.db, 'username', '{}.username'.format(prefid)) bind_preference(store.db, 'password', '{}.password'.format(prefid)) self.stores['isotopedb'] = store self.stores['dvc'] = self.mainstore
def start(self): iso = IsotopeDatabaseManager() iso.populate_default_tables()
def _manager_default(self): return IsotopeDatabaseManager(connect=False, bind=False)
v = View('test') return v p = Permutator() p.path = './tests/data/config.yaml' logging_setup('perm') from pychron.database.isotope_database_manager import IsotopeDatabaseManager class Record(object): analysis_type = 'unknown' def __init__(self, u): self.uuid = u man = IsotopeDatabaseManager(bind=False, connect=False) db = man.db db.trait_set(kind='mysql', host='localhost', name='pychrondata_dev', username='******', password='******') db.connect() ans = man.make_analyses( [ Record('65c1c4a9-e317-452b-9654-3f06efcbe664'), # Record('39b6e623-e178-4dc4-bf5c-14c81485bd54') ], use_cache=False, unpack=True)
def start(self): iso = IsotopeDatabaseManager() iso.populate_default_tables()
def __init__(self, connect=True, *args, **kw): super(MFTableHistory, self).__init__(*args, **kw) self.dbm = IsotopeDatabaseManager(bind=connect, connect=connect)
self._add_meta(d) def _add_meta(self, d): print d['project'], d['sample'] if __name__ == '__main__': from pychron.core.helpers.logger_setup import logging_setup logging_setup('analysis_loader') # al = YAMLAnalysisLoader() # p = '/Users/ross/Sandbox/analysis_import_template.yml' # al.load_analyses(p) from pychron.database.isotope_database_manager import IsotopeDatabaseManager man = IsotopeDatabaseManager(bind=False, connect=False) db = man.db db.trait_set(kind='mysql', username='******', password='******', host='localhost', name='pychrondata_dev') db.connect() al = XLSAnalysisLoader() al.db = db al.load_analyses( '/Users/ross/Programming/git/pychron_dev/pychron/entry/tests/data/analysis_import.xls' ) al.import_analyses() # al.delete_analyses()
v = View("test") return v p = Permutator() p.path = "./tests/data/config.yaml" logging_setup("perm") from pychron.database.isotope_database_manager import IsotopeDatabaseManager class Record(object): analysis_type = "unknown" def __init__(self, u): self.uuid = u man = IsotopeDatabaseManager(bind=False, connect=False) db = man.db db.trait_set(kind="mysql", host="localhost", name="pychrondata_dev", username="******", password="******") db.connect() ans = man.make_analyses( [ Record("65c1c4a9-e317-452b-9654-3f06efcbe664"), # Record('39b6e623-e178-4dc4-bf5c-14c81485bd54') ], use_cache=False, unpack=True, ) # a.j = ufloat(1e-4, 1e-7) p.oanalyses = ans
def _mainstore_default(self): mainstore = IsotopeDatabaseManager(precedence=1, connect=self.bind_mainstore, bind=self.bind_mainstore) return mainstore