Beispiel #1
0
# Compute photon density spectrum from synchrotron emission assuming R=2.1 pc
Rpwn = 2.1 * u.pc
Esy = np.logspace(-7, 9, 100) * u.eV
Lsy = SYN.flux(Esy, distance=0 * u.cm)  # use distance 0 to get luminosity
phn_sy = Lsy / (4 * np.pi * Rpwn**2 * c) * 2.24

IC = InverseCompton(ECBPL,
                    seed_photon_fields=['CMB',
                                        ['FIR', 70 * u.K, 0.5 * u.eV / u.cm**3],
                                        ['NIR', 5000 * u.K, 1 * u.eV / u.cm**3],
                                        ['SSC', Esy, phn_sy]],
                    Eemax=50 * u.PeV, Eemin=0.1 * u.GeV)

# Use plot_data from naima to plot the observed spectra
data = ascii.read('CrabNebula_spectrum.ecsv')
figure = naima.plot_data(data, e_unit=u.eV)
ax = figure.axes[0]

# Plot the computed model emission
energy = np.logspace(-7, 15, 100) * u.eV
ax.loglog(energy, IC.sed(energy, 2 * u.kpc) + SYN.sed(energy, 2 * u.kpc),
          lw=3, c='k', label='Total')
for i, seed, ls in zip(
        range(4), ['CMB', 'FIR', 'NIR', 'SSC'], ['--', '-.', ':', '-']):
    ax.loglog(energy, IC.sed(energy, 2 * u.kpc, seed=seed),
              lw=2, c=naima.plot.color_cycle[i + 1], label=seed, ls=ls)


ax.set_ylim(1e-12, 1e-7)
ax.legend(loc='upper right', frameon=False)
figure.tight_layout()
IC = InverseCompton(
    ECBPL,
    seed_photon_fields=[
        "CMB",
        ["FIR", 70 * u.K, 0.5 * u.eV / u.cm**3],
        ["NIR", 5000 * u.K, 1 * u.eV / u.cm**3],
        ["SSC", Esy, phn_sy],
    ],
    Eemax=50 * u.PeV,
    Eemin=0.1 * u.GeV,
)

# Use plot_data from naima to plot the observed spectra
data = ascii.read("CrabNebula_spectrum.ecsv")
figure = naima.plot_data(data, e_unit=u.eV)
ax = figure.axes[0]

# Plot the computed model emission
energy = np.logspace(-7, 15, 100) * u.eV
ax.loglog(
    energy,
    IC.sed(energy, 2 * u.kpc) + SYN.sed(energy, 2 * u.kpc),
    lw=3,
    c="k",
    label="Total",
)
for i, seed, ls in zip(range(4), ["CMB", "FIR", "NIR", "SSC"],
                       ["--", "-.", ":", "-"]):
    ax.loglog(
        energy,
Beispiel #3
0
            print('Energy cutoff: ', Ecut_flare, '+-', str(err_ep / 2.))
            print('Total energy in electrons above 1 TeV: We = ', We.value,
                  ' erg')

            energy = np.logspace(-7, 15, 100) * u.eV

            #synp = SYN_f.sed(energy, crab_distance).value
            #print('Synchrotron maximum energy', energy[int(np.where(synp == np.max(synp))[0])].to('MeV'))
            #print(energy[energy.value > 1e6].to('MeV'))

            # In[7]:
            if make_plot == True:
                figure, ax = plt.subplots(1, 1, figsize=(10, 5))
                data_steady = ascii.read('CrabNebula_spectrum.ecsv.txt')
                naima.plot_data(data_steady, e_unit=u.eV, figure=figure)
                naima.plot_data(data_flare, e_unit=u.eV, figure=figure)

                ax.loglog(energy,
                          SYN_f.sed(energy, crab_distance),
                          lw=3,
                          c='r',
                          label='SYN')

                ax.loglog(energy,
                          IC_f.sed(energy, crab_distance, seed='CMB') +
                          IC_f.sed(energy, crab_distance, seed='FIR') +
                          IC_f.sed(energy, crab_distance, seed='NIR') +
                          IC_f.sed(energy, crab_distance, seed='SSC'),
                          lw=3,
                          c='r',