Exemplo n.º 1
0
def add_to_database(connection, galaxy):
    """
    Adds the specified galaxies to the database
    :param connection:
    :param galaxy:
    :return:
    """
    galaxy_name = galaxy['name']
    redshift = galaxy['redshift']
    galaxy_type = galaxy['type']
    input_file = galaxy['input_file']
    priority = galaxy['priority']
    run_id = galaxy['run_id']
    sigma_in = galaxy['sigma']
    tags = galaxy['tags']
    integrated = galaxy['int']
    integrated_snr = galaxy['int_snr']
    rad = galaxy['rad']
    rad_snr = galaxy['rad_snr']

    transaction = connection.begin()
    try:
        try:
            sigma = float(sigma_in)
            sigma_filename = None
        except ValueError:
            sigma = 0.0
            sigma_filename = sigma_in

        result = connection.execute(
            REGISTER.insert(),
            galaxy_name=galaxy_name,
            redshift=redshift,
            galaxy_type=galaxy_type,
            filename=input_file,
            priority=priority,
            register_time=datetime.now(),
            run_id=run_id,
            sigma=sigma,
            sigma_filename=sigma_filename,
            int_filename=integrated,
            int_sigma_filename=integrated_snr,
            rad_filename=rad,
            rad_sigma_filename=rad_snr
        )

        register_id = result.inserted_primary_key[0]

        # Get the tag ids
        tag_ids = set()
        for tag_text in tags:
            tag_text = tag_text.strip()
            if len(tag_text) > 0:
                tag = connection.execute(select([TAG]).where(TAG.c.tag_text == tag_text)).first()
                if tag is None:
                    result = connection.execute(
                        TAG.insert(),
                        tag_text=tag_text
                    )
                    tag_id = result.inserted_primary_key[0]
                else:
                    tag_id = tag[TAG.c.tag_id]

                tag_ids.add(tag_id)

        # Add the tag ids
        for tag_id in tag_ids:
            connection.execute(
                TAG_REGISTER.insert(),
                tag_id=tag_id,
                register_id=register_id
            )

        transaction.commit()
        LOG.info('Registered %s %s %f %s %d %d', galaxy_name, galaxy_type, redshift, input_file, priority, run_id)
        for tag_text in tags:
            LOG.info('Tag: {0}'.format(tag_text))
    except Exception:
        transaction.rollback()
        raise
Exemplo n.º 2
0
if not os.path.isfile(INPUT_FILE):
    LOG.error('The file %s does not exist', INPUT_FILE)
    exit(1)

# Connect to the database - the login string is set in the database package
ENGINE = create_engine(DB_LOGIN)
connection = ENGINE.connect()
transaction = connection.begin()

# If it is a float store it as the sigma otherwise assume it is a string pointing to a file containing the sigmas
try:
    sigma = float(SIGMA)
    sigma_filename = None
except ValueError:
    sigma = 0.0
    sigma_filename = SIGMA

connection.execute(REGISTER.insert(),
                   galaxy_name=GALAXY_NAME,
                   redshift=REDSHIFT,
                   galaxy_type=GALAXY_TYPE,
                   filename=INPUT_FILE,
                   priority=PRIORITY,
                   register_time=datetime.now(),
                   run_id=RUN_ID,
                   sigma=sigma,
                   sigma_filename=sigma_filename)
transaction.commit()

LOG.info('Registered %s %s %f %s %d %d', GALAXY_NAME, GALAXY_TYPE, REDSHIFT, INPUT_FILE, PRIORITY, RUN_ID)
    exit(1)

# Connect to the database - the login string is set in the database package
ENGINE = create_engine(DB_LOGIN)
connection = ENGINE.connect()
transaction = connection.begin()

# If it is a float store it as the sigma otherwise assume it is a string pointing to a file containing the sigmas
try:
    sigma = float(SIGMA)
    sigma_filename = None
except ValueError:
    sigma = 0.0
    sigma_filename = SIGMA

result = connection.execute(REGISTER.insert(),
                            galaxy_name=GALAXY_NAME,
                            redshift=REDSHIFT,
                            galaxy_type=GALAXY_TYPE,
                            filename=INPUT_FILE,
                            priority=PRIORITY,
                            register_time=datetime.now(),
                            run_id=RUN_ID,
                            sigma=sigma,
                            sigma_filename=sigma_filename)

register_id = result.inserted_primary_key[0]

# Get the tag ids
tag_ids = set()
for tag_text in TAGS:
Exemplo n.º 4
0
    exit(1)

# Connect to the database - the login string is set in the database package
ENGINE = create_engine(DB_LOGIN)
connection = ENGINE.connect()
transaction = connection.begin()

# If it is a float store it as the sigma otherwise assume it is a string pointing to a file containing the sigmas
try:
    sigma = float(SIGMA)
    sigma_filename = None
except ValueError:
    sigma = 0.0
    sigma_filename = SIGMA

connection.execute(
    REGISTER.insert(),
    galaxy_name=GALAXY_NAME,
    redshift=REDSHIFT,
    galaxy_type=GALAXY_TYPE,
    filename=INPUT_FILE,
    priority=PRIORITY,
    register_time=datetime.now(),
    run_id=RUN_ID,
    sigma=sigma,
    sigma_filename=sigma_filename,
)
transaction.commit()

LOG.info("Registered %s %s %f %s %d %d", GALAXY_NAME, GALAXY_TYPE, REDSHIFT, INPUT_FILE, PRIORITY, RUN_ID)