def __init__(self, custom_cm=None, use_monet=None, profile=False, **params): """ @param custom_cm: allows to pass an object to be used as connection manager. """ self.log = get_gsm_logger('pipeline', 'pipeline.log') self.use_monet = use_monet if not custom_cm: if use_monet != None: self.conn_manager = GSMConnectionManager(use_monet=use_monet) else: self.conn_manager = GSMConnectionManager() else: self.conn_manager = custom_cm try: self.conn = self.conn_manager.get_connection(**params) if profile: self.conn.profile = True self.conn.log.setLevel(logging.DEBUG) self.conn.commit() except db.Error as exc: self.log.error("Failed to connect: %s" % exc) raise exc self.options = load_parameters('%s/settings.ini' % os.path.dirname(__file__)) self.log.debug('Pipeline parameters: %s' % self.options) self.log.info('Pipeline started.')
def setUp(self): """ """ if ('monetdb' in config): self.cm = GSMConnectionManager( use_monet=bool(config['monetdb'] == 'True'), use_console=False) self.is_monet = bool(config['monetdb'] == 'True') else: self.cm = GSMConnectionManager(use_console=False, use_monet=True) self.is_monet = True
def generate_snapshot(filename): conn = GSMConnectionManager(database='stress', use_monet=False).get_connection() decl_center = -50 while decl_center < -30: decl_center = degrees(acos(2 * random.random() - 1) - 0.5 * pi) ra_center = degrees(2 * pi * random.random()) band = random.random_integers(1, 3) sql = get_field(ra_center, decl_center, 3.0, 2) cur = conn.get_cursor(sql) f = open(filename, 'w') f.write('# RA DEC Total_flux e_Total_flux\n\n') for data in iter(cur.fetchone, None): f.write('%s %s %s %s\n' % (random.normal(data[0], ERROR), random.normal(data[1], ERROR), random.normal(data[2], FLUX_ERROR), data[3])) f.close() parsetname = path.basename(filename) parsetname = parsetname[:parsetname.index('.')] + '.parset' write_parset(parsetname, filename, FREQUENCY[band], ra_center, decl_center)
min_flux=min_flux)).fetchall() } if __name__ == '__main__': parser = argparse.ArgumentParser(description='Run GSM API-call') parser.add_argument('-f', '--filename') parser.add_argument('-s', '--style', default=STYLE_PLAIN) parser.add_argument('-S', '--separator', default=' ') parser.add_argument('command', type=str) parser.add_argument('--image_id', type=int) parser.add_argument('--ra', default=0, type=float) parser.add_argument('--decl', default=0, type=float) parser.add_argument('--radius', default=5.0, type=float) parser.add_argument('-B', '--band', default=8, type=int) parser.add_argument('--stokes', default='I', type=str) parser.add_argument('--f_peak', default=None, type=float) args = parser.parse_args() connect = GSMConnectionManager(database='test').get_connection() api = GSMAPI(connect) if args.command == 'image': dataset = api.get_image_properties(args.image_id) elif args.command == 'field': dataset = api.get_field(args.ra, args.decl, args.radius, args.band, args.f_peak) else: raise ValueError api.output(dataset, int(args.style), args.filename, args.separator)
#!/usr/bin/python """ ***GSM package tool. ***Created by A. Mints (2012). Cleans all data from the database. """ import argparse from src.gsmconnectionmanager import GSMConnectionManager from tests.testlib import cleanup_db parser = argparse.ArgumentParser(description=""" ***GSM package tool. ***Created by A. Mints (2012). Cleans all data from the database.""", formatter_class=argparse.RawDescriptionHelpFormatter) parser.add_argument('-D', '--database', type=str, default='test', help='database name to load data into') parser.add_argument('-M', '--monetdb', action="store_true", default=False, help='Use MonetDB instead of PostgreSQL') args = parser.parse_args() cm = GSMConnectionManager(use_monet=args.monetdb, database=args.database) cleanup_db(cm.get_connection()) if args.monetdb: print "MonetDB database %s cleaned" % args.database else: print "PostgreSQL database %s cleaned" % args.database