Exemple #1
0
 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
Exemple #3
0
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)
Exemple #4
0
                              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)
Exemple #5
0
#!/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