def integrated_luminosities(self,out ,all_nus_rest, nuLnus4plotting):
"""
Calculates the integrated luminosities for
all model templates chosen by the user in out['intlum_models'],
within the integration ranges given by out['intlum_freqranges'].
##input:
- settings dictionary out[]
- all_nus_rest
- nuLnus4plotting: nu*luminosities for the four models corresponding
to each element of the total chain
"""
SBnuLnu, BBnuLnu, GAnuLnu, TOnuLnu, TOTALnuLnu, BBnuLnu_deredd =nuLnus4plotting
out['intlum_freqranges'] = (out['intlum_freqranges']*out['intlum_freqranges_unit']).to(u.Hz, equivalencies=u.spectral())
int_lums = []
for m in range(len(out['intlum_models'])):
if out['intlum_models'][m] == 'sb':
nuLnu= SBnuLnu
elif out['intlum_models'][m] == 'bbb':
nuLnu= BBnuLnu
elif out['intlum_models'][m] == 'bbbdered':
nuLnu=BBnuLnu_deredd
elif out['intlum_models'][m] == 'gal':
nuLnu=GAnuLnu
elif out['intlum_models'][m] == 'tor':
nuLnu=TOnuLnu
index = ((all_nus_rest >= np.log10(out['intlum_freqranges'][m][1].value)) & (all_nus_rest<= np.log10(out['intlum_freqranges'][m][0].value)))
all_nus_rest_int = 10**(all_nus_rest[index])
Lnu = nuLnu[:,index] / all_nus_rest_int
Lnu_int = scipy.integrate.trapz(Lnu, x=all_nus_rest_int)
int_lums.append(Lnu_int)
return np.array(int_lums)
python类Hz()的实例源码
def test_from_fnu(self):
fluxd = 6.161081515869728 * u.mJy
nu = 2.998e14 / 11.7 * u.Hz
aper = 1 * u.arcsec
eph = dict(rh=1.5 * u.au, delta=1.0 * u.au)
S = 1.711e14 * u.Jy
afrho = Afrho.from_fluxd(nu, fluxd, aper, eph, S=S)
assert np.isclose(afrho.cm, 1000.0)
def test_from_fnu(self):
fluxd = 6.0961896974549115 * u.mJy
nu = 2.998e14 / 11.7 * u.Hz
aper = 1 * u.arcsec
eph = dict(rh=1.5 * u.au, delta=1.0 * u.au)
S = 1.711e14 * u.Jy
efrho = Efrho.from_fluxd(nu, fluxd, aper, eph)
assert np.isclose(efrho.cm, 33.0)
def SED_plotting_settings(x, ydata):
"""
This function produces the setting for the figures for SED plotting.
**Input:
- all nus, and data (to make the plot limits depending on the data)
"""
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twiny()
#-- Latex -------------------------------------------------
rc('text', usetex=True)
rc('font', family='serif')
rc('axes', linewidth=1.5)
#-------------------------------------------------------------
# ax1.set_title(r"\textbf{SED of Type 2}" + r"\textbf{ AGN }"+ "Source Nr. "+ source + "\n . \n . \n ." , fontsize=17, color='k')
ax1.set_xlabel(r'rest-frame $\mathbf{log \ \nu} [\mathtt{Hz}] $', fontsize=13)
ax2.set_xlabel(r'$\mathbf{\lambda} [\mathtt{\mu m}] $', fontsize=13)
ax1.set_ylabel(r'$\mathbf{\nu L(\nu) [\mathtt{erg \ } \mathtt{ s}^{-1}]}$',fontsize=13)
ax1.tick_params(axis='both',reset=False,which='major',length=8,width=1.5)
ax1.tick_params(axis='both',reset=False,which='minor',length=4,width=1.5)
ax1.set_autoscalex_on(True)
ax1.set_autoscaley_on(True)
ax1.set_xscale('linear')
ax1.set_yscale('log')
mediandata = np.median(ydata)
ax1.set_ylim(mediandata /50.,mediandata * 50.)
ax2.set_xscale('log')
ax2.set_yscale('log')
ax2.set_ylim( mediandata /50., mediandata * 50.)
ax2.get_xaxis().set_major_formatter(ticker.ScalarFormatter())
ax2.tick_params(axis='both',reset=False,which='major',length=8,width=1.5)
ax2.tick_params(axis='both',reset=False,which='minor',length=4,width=1.5)
x2 = (2.98e14/ x)[::-1] # Wavelenght axis
ax2.plot(x2, np.ones(len(x2)), alpha=0)
ax2.invert_xaxis()
ax2.set_xticks([100., 10.,1., 0.1])
return fig, ax1, ax2