def show_all_thumbnails(label='j022708p4901_00273', filters=['f775w', 'f814w', 'f098m', 'f105w', 'f110w', 'f125w', 'f140w', 'f160w'], scale_ab=21, close=True): """ Show individual filter and RGB thumbnails """ from astropy.visualization import make_lupton_rgb import matplotlib.pyplot as plt #from PIL import Image ims = {} for filter in filters: drz_files = glob.glob('{0}-{1}*_dr*sci.fits'.format(label, filter)) if len(drz_files) > 0: im = pyfits.open(drz_files[0]) ims[filter] = im slx, sly, filts, fig = auto_script.field_rgb(root=label, xsize=4, output_dpi=None, HOME_PATH=None, show_ir=False, pl=1, pf=1, scl=1, rgb_scl=[1, 1, 1], ds9=None, force_ir=False, filters=ims.keys(), add_labels=False, output_format='png', rgb_min=-0.01, xyslice=None, pure_sort=False, verbose=True, force_rgb=None, suffix='.rgb', scale_ab=scale_ab) if close: plt.close() #rgb = np.array(Image.open('{0}.rgb.png'.format(label))) rgb = plt.imread('{0}.rgb.png'.format(label)) NX = (len(filters)+1) fig = plt.figure(figsize=[1.5*NX, 1.5]) ax = fig.add_subplot(1, NX, NX) ax.imshow(rgb, origin='upper', interpolation='nearest') ax.text(0.5, 0.95, label, ha='center', va='top', transform=ax.transAxes, fontsize=7, bbox=dict(facecolor='w', edgecolor='None', alpha=0.5)) for i, filter in enumerate(filters): if filter in ims: zp_i = utils.calc_header_zeropoint(ims[filter], ext=0) scl = 10**(-0.4*(zp_i-5-scale_ab)) img = ims[filter][0].data*scl image = make_lupton_rgb(img, img, img, stretch=0.1, minimum=-0.01) ax = fig.add_subplot(1, NX, i+1) ax.imshow(255-image, origin='lower', interpolation='nearest') ax.text(0.5, 0.95, filter, ha='center', va='top', transform=ax.transAxes, fontsize=7, bbox=dict(facecolor='w', edgecolor='None', alpha=0.5)) for ax in fig.axes: ax.set_xticklabels([]) ax.set_yticklabels([]) ax.set_xticks([]) ax.set_yticks([]) fig.tight_layout(pad=0.1) fig.savefig('{0}.thumb.png'.format(label)) if close: plt.close()
def show_all_thumbnails(label='j022708p4901_00273', filters=['f775w','f814w','f098m','f105w','f110w','f125w','f140w','f160w'], scale_ab=21, close=True): """ Show individual filter and RGB thumbnails """ from astropy.visualization import make_lupton_rgb from PIL import Image ims = {} for filter in filters: drz_files = glob.glob('{0}-{1}*_dr*sci.fits'.format(label, filter)) if len(drz_files) > 0: im = pyfits.open(drz_files[0]) ims[filter] = im slx, sly, filts, fig = auto_script.field_rgb(root=label, xsize=4, output_dpi=None, HOME_PATH=None, show_ir=False, pl=1, pf=1, scl=1, rgb_scl=[1, 1, 1], ds9=None, force_ir=False, filters=ims.keys(), add_labels=False, output_format='png', rgb_min=-0.01, xyslice=None, pure_sort=False, verbose=True, force_rgb=None, suffix='.rgb', scale_ab=scale_ab) if close: plt.close() rgb = np.array(Image.open('{0}.rgb.png'.format(label))) NX = (len(filters)+1) fig = plt.figure(figsize=[1.5*NX,1.5]) ax = fig.add_subplot(1,NX,NX) ax.imshow(rgb, origin='upper', interpolation='nearest') ax.text(0.5, 0.95, label, ha='center', va='top', transform=ax.transAxes, fontsize=7, bbox=dict(facecolor='w', edgecolor='None', alpha=0.5)) for i, filter in enumerate(filters): if filter in ims: zp_i = utils.calc_header_zeropoint(ims[filter], ext=0) scl = 10**(-0.4*(zp_i-5-scale_ab)) img = ims[filter][0].data*scl image = make_lupton_rgb(img, img, img, stretch=0.1, minimum=-0.01) ax = fig.add_subplot(1,NX,i+1) ax.imshow(255-image, origin='lower', interpolation='nearest') ax.text(0.5, 0.95, filter, ha='center', va='top', transform=ax.transAxes, fontsize=7, bbox=dict(facecolor='w', edgecolor='None', alpha=0.5)) for ax in fig.axes: ax.set_xticklabels([]) ax.set_yticklabels([]) ax.set_xticks([]) ax.set_yticks([]) fig.tight_layout(pad=0.1) fig.savefig('{0}.thumb.png'.format(label)) if close: plt.close()
def show_all_thumbnails(label='j022708p4901_00273', filters=['vis','f098m','f105w','f110w','f125w','f140w','f160w'], scale_ab=21, close=True, thumb_height=2., rgb_params=RGB_PARAMS): """ Show individual filter and RGB thumbnails """ import glob #from PIL import Image import numpy as np import matplotlib.pyplot as plt import astropy.io.fits as pyfits from astropy.visualization import make_lupton_rgb from grizli.pipeline import auto_script from grizli import utils all_files = glob.glob('{0}-f*sci.fits'.format(label)) all_filters = [f.split('_dr')[0].split('-')[-1] for f in all_files] ims = {} for filter in filters: drz_files = glob.glob('{0}-{1}*_dr*sci.fits'.format(label, filter)) if len(drz_files) > 0: im = pyfits.open(drz_files[0]) ims[filter] = im rgb_params['scale_ab'] = scale_ab slx, sly, rgb_filts, fig = auto_script.field_rgb(root=label, HOME_PATH=None, **rgb_params) #xsize=4, output_dpi=None, HOME_PATH=None, show_ir=False, pl=1, pf=1, scl=1, rgb_scl=[1, 1, 1], ds9=None, force_ir=False, filters=all_filters, add_labels=False, output_format='png', rgb_min=-0.01, xyslice=None, pure_sort=False, verbose=True, force_rgb=None, suffix='.rgb', scale_ab=scale_ab) if close: plt.close() filter_queries = {} filter_queries['vis'] = '{0}-f[3-8]*sci.fits'.format(label) filter_queries['y'] = '{0}-f[01][90][85]*sci.fits'.format(label) filter_queries['j'] = '{0}-f1[12][05]*sci.fits'.format(label) filter_queries['h'] = '{0}-f1[64]0*sci.fits'.format(label) if 'vis' in filters: drz_files = glob.glob('{0}-f[3-8]*sci.fits'.format(label)) drz_files.sort() vis_filters = [f.split('_dr')[0].split('-')[-1] for f in drz_files] if len(drz_files) > 0: drz_files.sort() for i, file in enumerate(drz_files[::-1]): drz = pyfits.open(file) wht = pyfits.open(file.replace('_sci','_wht')) if i == 0: photflam = drz[0].header['PHOTFLAM'] num = drz[0].data*wht[0].data den = wht[0].data drz_ref = drz drz_ref[0].header['FILTER{0}'.format(i+1)] = utils.get_hst_filter(drz[0].header) else: scl = drz[0].header['PHOTFLAM']/photflam num += drz[0].data*wht[0].data/scl den += wht[0].data/scl**2 drz_ref[0].header['FILTER{0}'.format(i+1)] = utils.get_hst_filter(drz[0].header) sci = num/den sci[den == 0] = 0 drz_ref[0].data = sci ims['vis'] = drz_ref pyfits.writeto('{0}-{1}_drz_sci.fits'.format(label, 'vis'), data=sci, header=drz_ref[0].header, overwrite=True, output_verify='fix') pyfits.writeto('{0}-{1}_drz_wht.fits'.format(label, 'vis'), data=den, header=drz_ref[0].header, overwrite=True, output_verify='fix') #rgb = np.array(Image.open('{0}.rgb.png'.format(label))) rgb = plt.imread('{0}.rgb.png'.format(label)) NX = (len(filters)+1) fig = plt.figure(figsize=[thumb_height*NX, thumb_height]) ax = fig.add_subplot(1,NX,NX) ax.imshow(rgb, origin='upper', interpolation='nearest') ax.text(0.05, 0.95, label, ha='left', va='top', transform=ax.transAxes, fontsize=7, color='w', bbox=dict(facecolor='k', edgecolor='None', alpha=0.8)) ax.text(0.05, 0.05, ' '.join(rgb_filts), ha='left', va='bottom', transform=ax.transAxes, fontsize=6, color='w', bbox=dict(facecolor='k', edgecolor='None', alpha=0.8)) for i, filter in enumerate(filters): if filter in ims: zp_i = utils.calc_header_zeropoint(ims[filter], ext=0) scl = 10**(-0.4*(zp_i-5-scale_ab)) img = ims[filter][0].data*scl image = make_lupton_rgb(img, img, img, stretch=0.1, minimum=-0.01) ax = fig.add_subplot(1,NX,i+1) ax.imshow(255-image, origin='lower', interpolation='nearest') if filter == 'vis': ax.text(0.05, 0.95, '+'.join(vis_filters), ha='left', va='top', transform=ax.transAxes, fontsize=7, bbox=dict(facecolor='w', edgecolor='None', alpha=0.9)) else: ax.text(0.05, 0.95, filter, ha='left', va='top', transform=ax.transAxes, fontsize=7, bbox=dict(facecolor='w', edgecolor='None', alpha=0.9)) for ax in fig.axes: ax.set_xticklabels([]) ax.set_yticklabels([]) ax.set_xticks([]) ax.set_yticks([]) fig.tight_layout(pad=0.1) fig.savefig('{0}.thumb.png'.format(label)) if close: plt.close()
def show_all_thumbnails(label='j022708p4901_00273', filters=['visb', 'visr', 'y', 'j', 'h'], scale_ab=21, close=True, thumb_height=2., rgb_params=RGB_PARAMS, ext='png', xl=0.04, yl=0.98, fs=7): """ Show individual filter and RGB thumbnails """ import glob #from PIL import Image import numpy as np import matplotlib.pyplot as plt import astropy.io.fits as pyfits from astropy.visualization import make_lupton_rgb from grizli.pipeline import auto_script from grizli import utils all_files = glob.glob('{0}-f*sci.fits'.format(label)) all_filters = [f.split('_dr')[0].split('-')[-1] for f in all_files] ims = {} for filter in filters: drz_files = glob.glob('{0}-{1}*_dr*sci.fits'.format(label, filter)) if len(drz_files) > 0: im = pyfits.open(drz_files[0]) ims[filter] = im rgb_params['scale_ab'] = scale_ab slx, sly, rgb_filts, fig = auto_script.field_rgb(root=label, HOME_PATH=None, **rgb_params) # xsize=4, output_dpi=None, HOME_PATH=None, show_ir=False, pl=1, pf=1, scl=1, rgb_scl=[1, 1, 1], ds9=None, force_ir=False, filters=all_filters, add_labels=False, output_format='png', rgb_min=-0.01, xyslice=None, pure_sort=False, verbose=True, force_rgb=None, suffix='.rgb', scale_ab=scale_ab) if close: plt.close() #rgb = np.array(Image.open('{0}.rgb.png'.format(label))) rgb = plt.imread('{0}.rgb.png'.format(label)) NX = (len(filters)+1) fig = plt.figure(figsize=[thumb_height*NX, thumb_height]) ax = fig.add_subplot(1, NX, NX) ax.imshow(rgb, origin='upper', interpolation='nearest') # ax.text(0.05, 0.95, label, ha='left', va='top', transform=ax.transAxes, fontsize=7, color='w', bbox=dict(facecolor='k', edgecolor='None', alpha=0.8)) # ax.text(0.05, 0.05, ' '.join(rgb_filts), ha='left', va='bottom', transform=ax.transAxes, fontsize=6, color='w', bbox=dict(facecolor='k', edgecolor='None', alpha=0.8)) for i, filter in enumerate(filters): if filter in ims: zp_i = utils.calc_header_zeropoint(ims[filter], ext=0) scl = 10**(-0.4*(zp_i-5-scale_ab)) pixscl = utils.get_wcs_pscale(ims[filter][0].header.copy()) scl *= (0.06/pixscl)**2 img = ims[filter][0].data*scl image = make_lupton_rgb(img, img, img, stretch=0.1, minimum=-0.01) ax = fig.add_subplot(1, NX, i+1) ax.imshow(255-image, origin='lower', interpolation='nearest') for ax in fig.axes: ax.set_xticklabels([]) ax.set_yticklabels([]) ax.set_xticks([]) ax.set_yticks([]) fig.tight_layout(pad=0.1) # Add labels #xl, yl = 0.04, 0.98 for i, filter in enumerate(filters): if filter in ims: if filter in ['uv', 'visb', 'visr', 'y', 'j', 'h']: grouped_filters = [] h_i = ims[filter][0].header for j in range(h_i['NCOMBINE']): grouped_filters.append(h_i['CFILT{0}'.format(j+1)]) text_label = '+'.join(grouped_filters) else: text_label = filter fig.text((i+xl)/NX, yl, text_label, fontsize=fs, ha='left', va='top', transform=fig.transFigure, bbox=dict(facecolor='w', edgecolor='None', alpha=0.9)) fig.text((i+1+xl)/NX, yl, label, ha='left', va='top', transform=fig.transFigure, fontsize=fs, color='w', bbox=dict(facecolor='k', edgecolor='None', alpha=0.8)) fig.text((i+1+0.04)/NX, 1-yl, ' '.join(rgb_filts), ha='left', va='bottom', transform=fig.transFigure, fontsize=fs, color='w', bbox=dict(facecolor='k', edgecolor='None', alpha=0.8)) fig.savefig('{0}.thumb.{1}'.format(label, ext)) if close: plt.close() return fig