def remove_image(self, image_id, delete_observations=False): """ Remove all data from runningcatalog/runningcatalog_fluxes. """ GLOBALS['i'] = image_id self.log.info('removing data from image %s' % image_id) self.conn.start() for sql in [ 'deduct runningcatalog', 'deduct runningcatalog non-zero', 'deduct runningcatalog extended', 'deduct runningcatalog extended non-zero', 'deduct runningcatalog_fluxes', 'deduct runningcatalog_fluxes non-zero' ]: run_update(self.conn, sql, image_id) self.conn.execute(get_sql('deduct cleanup')) self.conn.execute(get_sql('update runningcatalog XYZ')) if delete_observations: self.conn.execute(get_sql('deduct remove extractedsources')) image_status = 99 else: image_status = 2 self.conn.execute(""" update images set status = %s, process_date = current_timestamp where imageid = %s""" % (image_status, image_id)) self.conn.commit()
def remove_image(self, image_id, delete_observations=False): """ Remove all data from runningcatalog/runningcatalog_fluxes. """ GLOBALS['i'] = image_id self.log.info('removing data from image %s' % image_id) self.conn.start() for sql in ['deduct runningcatalog', 'deduct runningcatalog non-zero', 'deduct runningcatalog extended', 'deduct runningcatalog extended non-zero', 'deduct runningcatalog_fluxes', 'deduct runningcatalog_fluxes non-zero']: run_update(self.conn, sql, image_id) self.conn.execute(get_sql('deduct cleanup')) self.conn.execute(get_sql('update runningcatalog XYZ')) if delete_observations: self.conn.execute(get_sql('deduct remove extractedsources')) image_status = 99 else: image_status = 2 self.conn.execute(""" update images set status = %s, process_date = current_timestamp where imageid = %s""" % (image_status, image_id)) self.conn.commit()
def process_image(self, image_id, run_id=None, sources_loaded=False): """ Process single image. @sources_loaded: True if there are records in the extractedsources already. """ self.conn.start() status, band, stokes, fov_radius, \ centr_ra, centr_decl, run_loaded, bmaj = \ self.conn.exec_return(""" select status, band, stokes, fov_radius, centr_ra, centr_decl, run_id, bmaj from images where imageid = %s;""" % image_id, single_column=False) if not run_id: run_id = run_loaded if status == 1: raise ImageStateError('Image %s in state 1 (Ok). Cannot process' % image_id) GLOBALS.update({'i': image_id, 'r': run_id, 'b': band, 's': stokes}) if not sources_loaded: self.conn.execute(get_sql('insert_extractedsources')) self.conn.execute(get_sql('insert dummysources')) if bmaj: max_assoc = float(bmaj) else: max_assoc = float(self.options.get('maximum_association_distance')) self.log.debug('Using options: %s' % self.options) self.log.debug('Final max_assoc_dist %s' % max_assoc) #Now do the matching! if self.options.get('matcher') == 'F90': matcher_class = MatcherF90 else: matcher_class = MatcherSQL matcher = matcher_class( self.conn, max_assoc, self.options.get('match_distance'), self.options.get('match_distance_extended'), get_pixels(centr_ra, centr_decl, fov_radius + 0.5)) matcher.match(image_id) self.conn.call_procedure("fill_temp_assoc_kind(%s);" % image_id) #Process many-to-many; self.run_grouper() # Process one-to-one associations; self.conn.execute(get_sql('add 1 to 1')) #process one-to-many associations; self.conn.execute(get_sql('add 1 to N')) self.conn.execute_set(get_sql('update flux_fraction')) #process many-to-one associations; self.conn.execute_set(get_sql('add N to 1')) #updating runningcatalog run_update(self.conn, 'update runningcatalog') run_update(self.conn, 'update runningcatalog extended') self.conn.execute(get_sql('update runningcatalog XYZ')) #First update, then insert new (!!!) run_update(self.conn, 'update runningcatalog_fluxes') self.conn.execute(get_sql('insert new bands for point sources')) #inserting new sources self.conn.execute_set(get_sql('Insert new sources')) self.conn.execute_set(get_sql('Join extended')) #update image status and save current svn verion. self.conn.execute_set(get_sql('Cleanup', get_svn_version())) if self.parset.recalculate_pointing: self.update_image_pointing(image_id) self.conn.commit()
def process_image(self, image_id, run_id=None, sources_loaded=False): """ Process single image. @sources_loaded: True if there are records in the extractedsources already. """ self.conn.start() status, band, stokes, fov_radius, \ centr_ra, centr_decl, run_loaded, bmaj = \ self.conn.exec_return(""" select status, band, stokes, fov_radius, centr_ra, centr_decl, run_id, bmaj from images where imageid = %s;""" % image_id, single_column=False) if not run_id: run_id = run_loaded if status == 1: raise ImageStateError('Image %s in state 1 (Ok). Cannot process' % image_id) GLOBALS.update({'i': image_id, 'r': run_id, 'b': band, 's': stokes}) if not sources_loaded: self.conn.execute(get_sql('insert_extractedsources')) self.conn.execute(get_sql('insert dummysources')) if bmaj: max_assoc = float(bmaj) else: max_assoc = float(self.options.get('maximum_association_distance')) self.log.debug('Using options: %s' % self.options) self.log.debug('Final max_assoc_dist %s' % max_assoc) #Now do the matching! if self.options.get('matcher') == 'F90': matcher_class = MatcherF90 else: matcher_class = MatcherSQL matcher = matcher_class(self.conn, max_assoc, self.options.get('match_distance'), self.options.get('match_distance_extended'), get_pixels(centr_ra, centr_decl, fov_radius + 0.5)) matcher.match(image_id) self.conn.call_procedure("fill_temp_assoc_kind(%s);" % image_id) #Process many-to-many; self.run_grouper() # Process one-to-one associations; self.conn.execute(get_sql('add 1 to 1')) #process one-to-many associations; self.conn.execute(get_sql('add 1 to N')) self.conn.execute_set(get_sql('update flux_fraction')) #process many-to-one associations; self.conn.execute_set(get_sql('add N to 1')) #updating runningcatalog run_update(self.conn, 'update runningcatalog') run_update(self.conn, 'update runningcatalog extended') self.conn.execute(get_sql('update runningcatalog XYZ')) #First update, then insert new (!!!) run_update(self.conn, 'update runningcatalog_fluxes') self.conn.execute(get_sql('insert new bands for point sources')) #inserting new sources self.conn.execute_set(get_sql('Insert new sources')) self.conn.execute_set(get_sql('Join extended')) #update image status and save current svn verion. self.conn.execute_set(get_sql('Cleanup', get_svn_version())) if self.parset.recalculate_pointing: self.update_image_pointing(image_id) self.conn.commit()