def main(): file_name, interactive = lib_args.get_args() header, pixels = lib_fits.read_first_image(file_name) background, dispersion, max_x = lib_background.compute_background(pixels) clustering = lib_cluster.Clustering() clusters = clustering(pixels, background, dispersion) # console output if not interactive: print('{} clusters'.format(len(clusters))) else: # graphic output fig, axis = plt.subplots() imgplot = axis.imshow(pixels) axcolor = 'lightgoldenrodyellow' ax_thresh = plt.axes([0.25, 0.92, 0.65, 0.03], axisbg=axcolor) threshold = 6.0 slider = widgets.Slider(ax_thresh, 'Threshold', 0.0, 5*threshold, valinit=threshold) update_slider = UpdateSlider(pixels, background, dispersion, imgplot, fig) slider.on_changed(update_slider) update_slider(threshold) plt.show() return 0
def main(): file_name, interactive = lib_args.get_args() header, pixels = lib_fits.read_first_image(file_name) background, dispersion, _ = lib_background.compute_background(pixels) clustering = lib_cluster.Clustering() clusters = clustering(pixels, background, dispersion) max_cluster = clusters[0] # coordinates ra dec wcs = lib_wcs.get_wcs(header) for i, c in enumerate(clusters): show_cluster(wcs, i, c) # graphic output if interactive: import matplotlib.pyplot as plt import lib_graphics fig, axis = plt.subplots() axis.imshow(pixels, interpolation='none') fig.canvas.mpl_connect('motion_notify_event', lib_graphics.ShowClusterProperties(fig,clusters,ShowCelestialObjects(wcs))) plt.show() return 0
def __call__(self, val): clustering = lib_cluster.Clustering() clusters = clustering(self.pixels, self.background, self.dispersion, val) print('{} clusters'.format(len(clusters))) crosses = lib_cluster.add_crosses(self.pixels, clusters) self.imgplot.set_data(crosses) self.fig.canvas.draw_idle()
def main(): # analyse command line arguments file_name, interactive = lib_args.get_args() logging.info('----------------') logging.info('name of file: {}'.format(file_name)) # read fits file header, pixels = lib_fits.read_first_image(file_name) logging.info('cd1_1: {CD1_1:.10f}'.format(**header)) logging.info('cd1_2: {CD1_2:.10f}'.format(**header)) logging.info('cd2_1: {CD2_1:.10f}'.format(**header)) logging.info('cd2_2: {CD2_2:.10f}'.format(**header)) # compute background background, dispersion, _ = lib_background.compute_background(pixels) logging.info('background: {:d}'.format(int(background))) logging.info('dispersion: {:d}'.format(int(dispersion))) # clustering clustering = lib_cluster.Clustering() clusters = clustering(pixels, background, dispersion) for icl, cl in enumerate(clusters): logging.info('----------------') logging.info('cluster {:d}: {}'.format(icl, cl)) # radec coordinates of the greatest cluster wcs = lib_wcs.get_wcs(header) pxy = lib_wcs.PixelXY(cl.column, cl.row) radec = lib_wcs.xy_to_radec(wcs, pxy) logging.info('right ascension: {:.3f}'.format(radec.ra)) logging.info('declination: {:.3f}'.format(radec.dec)) # celestial objects for the biggest cluster cobjects, _, _ = get_celestial_objects(wcs, cl) for icobj, cobj in enumerate(cobjects.keys()): logging.info('celestial object {}: {}'.format(icobj, cobj)) # graphic output if interactive: fig, axis = plt.subplots() axis.imshow(pixels, interpolation='none') fig.canvas.mpl_connect( 'motion_notify_event', lib_graphics.ShowClusterProperties(fig, clusters, ShowCelestialObjects(wcs))) plt.show() logging.info('----------------') return 0
def main(): file_name, interactive = lib_args.get_args() header, pixels = lib_fits.read_first_image(file_name) background, dispersion, _ = lib_background.compute_background(pixels) clustering = lib_cluster.Clustering() clusters = clustering(pixels, background, dispersion) max_cluster = clusters[0] # coordinates ra dec wcs = lib_wcs.get_wcs(header) for i, c in enumerate(clusters): show_cluster(wcs, i, c) break return 0
sys.path.append('../solutions') import lib_args import lib_fits import lib_background import lib_cluster import lib_wcs import lib_stars # prepare clusters file_name, interactive = lib_args.get_args() header, pixels = lib_fits.read_first_image(file_name) print('image shape is {}'.format(pixels.shape)) background, dispersion, _ = lib_background.compute_background(pixels) pattern_radius = 4 clustering = lib_cluster.Clustering(pattern_radius) clusters = clustering(pixels, background, dispersion) nb_patho = 0 nb_symptom = 0 # print clusters details for icl, cl in enumerate(clusters): print('cluster {:d}: {}'.format(icl, cl)) # check no cluster if len(clusters) == 0: print('no cluster') nb_patho += 1 # check single cluster (too simple) if len(clusters) == 1: