change name convention and cleanup
This commit is contained in:
@@ -105,10 +105,10 @@ def display_bkg(data, background, std_bkg, headers, histograms=None, binning=Non
|
||||
if not(savename is None):
|
||||
fig2.savefig(plots_folder+savename+'_'+filt+'_background_location.png', bbox_inches='tight')
|
||||
if not(rectangle is None):
|
||||
plot_obs(data, headers, vmin=data.min(), vmax=data.max(), rectangle=rectangle,
|
||||
plot_obs(data, headers, vmin=data[data > 0.].min(), vmax=data[data > 0.].max(), rectangle=rectangle,
|
||||
savename=savename+"_background_location",plots_folder=plots_folder)
|
||||
elif not(rectangle is None):
|
||||
plot_obs(data, headers, vmin=vmin, vmax=vmax, rectangle=rectangle)
|
||||
plot_obs(data, headers, vmin=data[data > 0.].min(), vmax=data[data > 0.].max(), rectangle=rectangle)
|
||||
|
||||
plt.show()
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ def sci_not(v,err,rnd=1,out=str):
|
||||
return *output[1:],-power
|
||||
|
||||
|
||||
def plot_obs(data_array, headers, shape=None, vmin=0., vmax=6., rectangle=None,
|
||||
def plot_obs(data_array, headers, shape=None, vmin=None, vmax=None, rectangle=None,
|
||||
savename=None, plots_folder=""):
|
||||
"""
|
||||
Plots raw observation imagery with some information on the instrument and
|
||||
@@ -135,8 +135,10 @@ def plot_obs(data_array, headers, shape=None, vmin=0., vmax=6., rectangle=None,
|
||||
exptime = headers[i]['exptime']
|
||||
filt = headers[i]['filtnam1']
|
||||
#plots
|
||||
if vmin is None or vmax is None:
|
||||
vmin, vmax = data[data>0.].min()/10., data[data>0.].max()
|
||||
#im = ax.imshow(data, vmin=vmin, vmax=vmax, origin='lower', cmap='gray')
|
||||
im = ax.imshow(data, norm=LogNorm(data[data>0.].min()/10.,data.max()), origin='lower', cmap='gray')
|
||||
im = ax.imshow(data, norm=LogNorm(vmin,vmax), origin='lower', cmap='gray')
|
||||
if not(rectangle is None):
|
||||
x, y, width, height, angle, color = rectangle[i]
|
||||
ax.add_patch(Rectangle((x, y), width, height, angle=angle,
|
||||
@@ -314,7 +316,7 @@ def polarization_map(Stokes, data_mask=None, rectangle=None, SNRp_cut=3., SNRi_c
|
||||
if display.lower() in ['intensity']:
|
||||
# If no display selected, show intensity map
|
||||
display='i'
|
||||
vmin, vmax = 3.*np.mean(np.sqrt(stk_cov.data[0,0][mask])*convert_flux), np.max(stkI.data[stkI.data > 0.]*convert_flux)
|
||||
vmin, vmax = 1/10*np.median(stkI.data[stkI.data > 0.]*convert_flux), np.max(stkI.data[stkI.data > 0.]*convert_flux)
|
||||
im = ax.imshow(stkI.data*convert_flux, norm=LogNorm(vmin,vmax), aspect='equal', cmap='inferno', alpha=1.)
|
||||
cbar = plt.colorbar(im, cax=cbar_ax, label=r"$F_{\lambda}$ [$ergs \cdot cm^{-2} \cdot s^{-1} \cdot \AA^{-1}$]")
|
||||
levelsI = np.linspace(vmax*0.01, vmax*0.99, 10)
|
||||
@@ -325,7 +327,7 @@ def polarization_map(Stokes, data_mask=None, rectangle=None, SNRp_cut=3., SNRi_c
|
||||
# Display polarisation flux
|
||||
display='pf'
|
||||
pf_mask = (stkI.data > 0.) * (pol.data > 0.)
|
||||
vmin, vmax = 3.*np.mean(np.sqrt(stk_cov.data[0,0][mask])*convert_flux), np.max(stkI.data[stkI.data > 0.]*convert_flux)
|
||||
vmin, vmax = 1/10*np.median(stkI.data[stkI.data > 0.]*convert_flux), np.max(stkI.data[stkI.data > 0.]*convert_flux)
|
||||
im = ax.imshow(stkI.data*convert_flux*pol.data, norm=LogNorm(vmin,vmax), aspect='equal', cmap='inferno', alpha=1.)
|
||||
cbar = plt.colorbar(im, cax=cbar_ax, label=r"$F_{\lambda} \cdot P$ [$ergs \cdot cm^{-2} \cdot s^{-1} \cdot \AA^{-1}$]")
|
||||
levelsPf = np.linspace(vmax*0.01, vmax*0.99, 10)
|
||||
@@ -380,7 +382,7 @@ def polarization_map(Stokes, data_mask=None, rectangle=None, SNRp_cut=3., SNRi_c
|
||||
#ax.clabel(cont,inline=True,fontsize=6)
|
||||
else:
|
||||
# Defaults to intensity map
|
||||
vmin, vmax = 3.*np.mean(np.sqrt(stk_cov.data[0,0][mask])*convert_flux), np.max(stkI.data[stkI.data > 0.]*convert_flux)
|
||||
vmin, vmax = 1/10*np.median(stkI.data[stkI.data > 0.]*convert_flux), np.max(stkI.data[stkI.data > 0.]*convert_flux)
|
||||
#im = ax.imshow(stkI.data*convert_flux, vmin=vmin, vmax=vmax, aspect='equal', cmap='inferno', alpha=1.)
|
||||
#cbar = plt.colorbar(im, cax=cbar_ax, label=r"$F_{\lambda}$ [$ergs \cdot cm^{-2} \cdot s^{-1} \cdot \AA$]")
|
||||
im = ax.imshow(stkI.data*convert_flux, norm=LogNorm(vmin,vmax), aspect='equal', cmap='inferno', alpha=1.)
|
||||
@@ -1743,12 +1745,12 @@ class pol_map(object):
|
||||
self.display_selection = "total_flux"
|
||||
if self.display_selection.lower() in ['total_flux']:
|
||||
self.data = self.I*self.convert_flux
|
||||
vmin, vmax = .5*np.mean(np.sqrt(self.IQU_cov[0,0][self.IQU_cov[0,0] < 3.*self.I])*self.convert_flux), np.max(self.data[self.data > 0.])
|
||||
vmin, vmax = 1/10.*np.median(self.data[self.data > 0.]), np.max(self.data[self.data > 0.])
|
||||
norm = LogNorm(vmin, vmax)
|
||||
label = r"$F_{\lambda}$ [$ergs \cdot cm^{-2} \cdot s^{-1} \cdot \AA^{-1}$]"
|
||||
elif self.display_selection.lower() in ['pol_flux']:
|
||||
self.data = self.I*self.convert_flux*self.P
|
||||
vmin, vmax = .5*np.mean(np.sqrt(self.IQU_cov[0,0][self.IQU_cov[0,0] < 3.*self.I])*self.convert_flux), np.max(self.I[self.data > 0.]*self.convert_flux)
|
||||
vmin, vmax = 1/10.*np.median(self.I[self.I > 0.]*self.convert_flux), np.max(self.I[self.I > 0.]*self.convert_flux)
|
||||
norm = LogNorm(vmin, vmax)
|
||||
label = r"$F_{\lambda} \cdot P$ [$ergs \cdot cm^{-2} \cdot s^{-1} \cdot \AA^{-1}$]"
|
||||
elif self.display_selection.lower() in ['pol_deg']:
|
||||
|
||||
@@ -46,7 +46,7 @@ import matplotlib.dates as mdates
|
||||
from matplotlib.patches import Rectangle
|
||||
from matplotlib.colors import LogNorm
|
||||
from scipy.ndimage import rotate as sc_rotate, shift as sc_shift
|
||||
from scipy.signal import convolve2d
|
||||
from scipy.signal import fftconvolve
|
||||
from astropy.wcs import WCS
|
||||
from astropy import log
|
||||
log.setLevel('ERROR')
|
||||
@@ -683,7 +683,7 @@ def align_data(data_array, headers, error_array=None, background=None,
|
||||
raise ValueError("All images in data_array must have same shape as\
|
||||
ref_data")
|
||||
if (error_array is None) or (background is None):
|
||||
_, error_array, headers, background = get_error(data_array, headers, sub_type=(10,10), return_background=True)
|
||||
_, error_array, headers, background = get_error(data_array, headers, return_background=True)
|
||||
|
||||
# Crop out any null edges
|
||||
#(ref_data must be cropped as well)
|
||||
@@ -866,8 +866,8 @@ def smooth_data(data_array, error_array, data_mask, headers, FWHM=1.,
|
||||
weights /= weights.sum()
|
||||
kernel = gaussian2d(x, y, stdev)
|
||||
kernel /= kernel.sum()
|
||||
smoothed[i] = np.where(data_mask, convolve2d(image*weights,kernel,'same')/convolve2d(weights,kernel,'same'), image)
|
||||
error[i] = np.where(data_mask, np.sqrt(convolve2d(image_error**2*weights**2,kernel**2,'same'))/convolve2d(weights,kernel,'same'), image_error)
|
||||
smoothed[i] = np.where(data_mask, fftconvolve(image*weights,kernel,'same')/fftconvolve(weights,kernel,'same'), image)
|
||||
error[i] = np.where(data_mask, np.sqrt(fftconvolve(image_error**2*weights**2,kernel**2,'same'))/fftconvolve(weights,kernel,'same'), image_error)
|
||||
|
||||
# Nan handling
|
||||
error[i][np.logical_or(np.isnan(smoothed[i]*error[i]),1-data_mask)] = 0.
|
||||
@@ -1007,7 +1007,7 @@ def polarizer_avg(data_array, error_array, data_mask, headers, FWHM=None,
|
||||
list_head = headers60
|
||||
elif header['filtnam1']=='POL120':
|
||||
list_head = headers120
|
||||
header['exptime'] = np.sum([head['exptime'] for head in list_head])#/len(list_head)
|
||||
header['exptime'] = np.sum([head['exptime'] for head in list_head])
|
||||
pol_headers = [headers0[0], headers60[0], headers120[0]]
|
||||
|
||||
# Get image shape
|
||||
|
||||
Reference in New Issue
Block a user