def insert_or_update(image_number, galaxy_id, red_filter, green_filter, blue_filter): """ Insert or update the filter """ # Get the id's before we build as SqlAlchemy flushes which will cause an error as filter_id_red = get_filter_id(red_filter) filter_id_blue = get_filter_id(blue_filter) filter_id_green = get_filter_id(green_filter) image_filters_used = connection.execute( select([IMAGE_FILTERS_USED]).where( and_(IMAGE_FILTERS_USED.c.galaxy_id == galaxy_id, IMAGE_FILTERS_USED.c.image_number == image_number))).first() if image_filters_used is None: connection.execute(IMAGE_FILTERS_USED.insert().values( image_number=image_number, galaxy_id=galaxy_id, filter_id_red=filter_id_red, filter_id_blue=filter_id_blue, filter_id_green=filter_id_green)) else: connection.execute(IMAGE_FILTERS_USED.update().where( IMAGE_FILTERS_USED.c.image_filters_used_id == image_filters_used[ IMAGE_FILTERS_USED.c.image_filters_used_id]).values( image_number=image_number, galaxy_id=galaxy_id, filter_id_red=filter_id_red, filter_id_blue=filter_id_blue, filter_id_green=filter_id_green))
def __init__(self, bucket_name, image_number, image_file_key, thumbnail_file_key, red_filter, green_filter, blue_filter, width, height, centre, connection, galaxy_id): """ Initialise the builder :param bucket_name: :param image_number: :param image_file_key: :param thumbnail_file_key: :param red_filter: :param green_filter: :param blue_filter: :param width: :param height: :param centre: :param connection: :param galaxy_id: :return: """ self._bucket_name = bucket_name self._image_file_key = image_file_key self._thumbnail_file_key = thumbnail_file_key self._red_filter = red_filter self._green_filter = green_filter self._blue_filter = blue_filter self._width = width self._height = height self._centre = centre self._image = Image.new("RGB", (self._width, self._height), self._black_RGB) # Get the id's before we build as SqlAlchemy flushes which will cause an error filter_id_red = _get_filter_id(connection, red_filter) filter_id_blue = _get_filter_id(connection, blue_filter) filter_id_green = _get_filter_id(connection, green_filter) image_filters_used = connection.execute( select([IMAGE_FILTERS_USED]).where( and_(IMAGE_FILTERS_USED.c.galaxy_id == galaxy_id, IMAGE_FILTERS_USED.c.image_number == image_number))).first() if image_filters_used is None: connection.execute(IMAGE_FILTERS_USED.insert().values( image_number=image_number, galaxy_id=galaxy_id, filter_id_red=filter_id_red, filter_id_blue=filter_id_blue, filter_id_green=filter_id_green)) else: connection.execute(IMAGE_FILTERS_USED.update().where( IMAGE_FILTERS_USED.c.image_filters_used_id == image_filters_used[ IMAGE_FILTERS_USED.c.image_filters_used_id]).values( image_number=image_number, galaxy_id=galaxy_id, filter_id_red=filter_id_red, filter_id_blue=filter_id_blue, filter_id_green=filter_id_green))
def __init__(self, bucket_name, image_number, image_file_key, thumbnail_file_key, red_filter, green_filter, blue_filter, width, height, centre, connection, galaxy_id): """ Initialise the builder :param bucket_name: :param image_number: :param image_file_key: :param thumbnail_file_key: :param red_filter: :param green_filter: :param blue_filter: :param width: :param height: :param centre: :param connection: :param galaxy_id: :return: """ self._bucket_name = bucket_name self._image_file_key = image_file_key self._thumbnail_file_key = thumbnail_file_key self._red_filter = red_filter self._green_filter = green_filter self._blue_filter = blue_filter self._width = width self._height = height self._centre = centre self._image = Image.new("RGB", (self._width, self._height), self._black_RGB) # Get the id's before we build as SqlAlchemy flushes which will cause an error filter_id_red = self._get_filter_id(connection, red_filter) filter_id_blue = self._get_filter_id(connection, blue_filter) filter_id_green = self._get_filter_id(connection, green_filter) image_filters_used = connection.execute(select([IMAGE_FILTERS_USED]) .where(and_(IMAGE_FILTERS_USED.c.galaxy_id == galaxy_id, IMAGE_FILTERS_USED.c.image_number == image_number))).first() if image_filters_used is None: connection.execute(IMAGE_FILTERS_USED.insert() .values(image_number=image_number, galaxy_id=galaxy_id, filter_id_red=filter_id_red, filter_id_blue=filter_id_blue, filter_id_green=filter_id_green)) else: connection.execute(IMAGE_FILTERS_USED.update() .where(IMAGE_FILTERS_USED.c.image_filters_used_id == image_filters_used[IMAGE_FILTERS_USED.c.image_filters_used_id]) .values(image_number=image_number, galaxy_id=galaxy_id, filter_id_red=filter_id_red, filter_id_blue=filter_id_blue, filter_id_green=filter_id_green))
def remove_database_entries(connection, galaxy_id): connection.execute( PIXEL_RESULT.delete().where(PIXEL_RESULT.c.galaxy_id == galaxy_id)) connection.execute(IMAGE_FILTERS_USED.delete().where( IMAGE_FILTERS_USED.c.galaxy_id == galaxy_id)) connection.execute(AREA.delete().where(AREA.c.galaxy_id == galaxy_id)) connection.execute( FITS_HEADER.delete().where(FITS_HEADER.c.galaxy_id == galaxy_id)) connection.execute(GALAXY.delete().where(GALAXY.c.galaxy_id == galaxy_id))
def insert_or_update(image_number, galaxy_id, red_filter, green_filter, blue_filter): """ Insert or update the filter """ # Get the id's before we build as SqlAlchemy flushes which will cause an error as filter_id_red = get_filter_id(red_filter) filter_id_blue = get_filter_id(blue_filter) filter_id_green = get_filter_id(green_filter) image_filters_used = connection.execute(select([IMAGE_FILTERS_USED]).where(and_(IMAGE_FILTERS_USED.c.galaxy_id == galaxy_id, IMAGE_FILTERS_USED.c.image_number == image_number))).first() if image_filters_used is None: connection.execute(IMAGE_FILTERS_USED.insert().values(image_number = image_number, galaxy_id = galaxy_id, filter_id_red = filter_id_red, filter_id_blue = filter_id_blue, filter_id_green = filter_id_green)) else: connection.execute(IMAGE_FILTERS_USED.update().where(IMAGE_FILTERS_USED.c.image_filters_used_id == image_filters_used[IMAGE_FILTERS_USED.c.image_filters_used_id]).values(image_number = image_number, galaxy_id = galaxy_id, filter_id_red = filter_id_red, filter_id_blue = filter_id_blue, filter_id_green = filter_id_green))
def delete_galaxy(connection, galaxy_id): if DRY_RUN: LOG.info('DRY_RUN: deleting galaxy_id: {0}'.format(galaxy_id)) else: transaction = connection.begin() for area_id1 in connection.execute(select([AREA.c.area_id]).where(AREA.c.galaxy_id == galaxy_id).order_by(AREA.c.area_id)): connection.execute(PIXEL_RESULT.delete().where(PIXEL_RESULT.c.area_id == area_id1[0])) connection.execute(AREA_USER.delete().where(AREA_USER.c.area_id == area_id1[0])) connection.execute(AREA.delete().where(AREA.c.galaxy_id == galaxy_id)) connection.execute(FITS_HEADER.delete().where(FITS_HEADER.c.galaxy_id == galaxy_id)) connection.execute(IMAGE_FILTERS_USED.delete().where(IMAGE_FILTERS_USED.c.galaxy_id == galaxy_id)) connection.execute(GALAXY.delete().where(GALAXY.c.galaxy_id == galaxy_id)) LOG.info('Galaxy with galaxy_id of %d was deleted', galaxy_id) transaction.commit()
def delete_galaxy(connection, galaxy_id): if DRY_RUN: LOG.info('DRY_RUN: deleting galaxy_id: {0}'.format(galaxy_id)) else: transaction = connection.begin() for area_id1 in connection.execute( select([AREA.c.area_id ]).where(AREA.c.galaxy_id == galaxy_id).order_by( AREA.c.area_id)): connection.execute(PIXEL_RESULT.delete().where( PIXEL_RESULT.c.area_id == area_id1[0])) connection.execute( AREA_USER.delete().where(AREA_USER.c.area_id == area_id1[0])) connection.execute(AREA.delete().where(AREA.c.galaxy_id == galaxy_id)) connection.execute( FITS_HEADER.delete().where(FITS_HEADER.c.galaxy_id == galaxy_id)) connection.execute(IMAGE_FILTERS_USED.delete().where( IMAGE_FILTERS_USED.c.galaxy_id == galaxy_id)) connection.execute( GALAXY.delete().where(GALAXY.c.galaxy_id == galaxy_id)) LOG.info('Galaxy with galaxy_id of %d was deleted', galaxy_id) transaction.commit()
def remove_database_entries(connection, galaxy_id): connection.execute(PIXEL_RESULT.delete().where(PIXEL_RESULT.c.galaxy_id == galaxy_id)) connection.execute(IMAGE_FILTERS_USED.delete().where(IMAGE_FILTERS_USED.c.galaxy_id == galaxy_id)) connection.execute(AREA.delete().where(AREA.c.galaxy_id == galaxy_id)) connection.execute(FITS_HEADER.delete().where(FITS_HEADER.c.galaxy_id == galaxy_id)) connection.execute(GALAXY.delete().where(GALAXY.c.galaxy_id == galaxy_id))