def plot_tardis(): radial1d_mdl = model_radial_oned.Radial1DModel(config_object, atom_data) radial1d_mdl.create_packets() out_nu, out_energy, jsestimator, nubarestimator = montecarlo_multizone.montecarlo_radial1d(radial1d_mdl) spectrum = synspec.get_lambda_spec(out_nu, out_energy, 500*1e-8, 20000*1e-8, samples=1000) ax.plot(np.log10(spectrum.wave/1e4), np.log10(spectrum.flux), label=config_object.plasma_type) ax.set_xlim(-1,0) ax.set_xlabel(r'$\log10{\lambda} [\log10{\mu m}]$') ax.set_ylabel(r'$\log10{Flux}$') return out_nu, out_energy, jsestimator, nubarestimator
def plot_tardis(): radial1d_mdl = model_radial_oned.Radial1DModel(config_object, atom_data) radial1d_mdl.create_packets() out_nu, out_energy, jsestimator, nubarestimator, line_id_in, line_id_out = montecarlo_multizone.montecarlo_radial1d( radial1d_mdl) spectrum = synspec.get_lambda_spec(out_nu, out_energy, 500 * 1e-8, 20000 * 1e-8, samples=1000) return out_nu, out_energy, jsestimator, nubarestimator, line_id_in, line_id_out, radial1d_mdl
def plot_tardis(): radial1d_mdl = model_radial_oned.Radial1DModel(config_object, atom_data) radial1d_mdl.create_packets() out_nu, out_energy, jsestimator, nubarestimator = montecarlo_multizone.montecarlo_radial1d( radial1d_mdl) spectrum = synspec.get_lambda_spec(out_nu, out_energy, 500 * 1e-8, 20000 * 1e-8, samples=1000) ax.plot(np.log10(spectrum.wave / 1e4), np.log10(spectrum.flux), label=config_object.plasma_type) ax.set_xlim(-1, 0) ax.set_xlabel(r'$\log10{\lambda} [\log10{\mu m}]$') ax.set_ylabel(r'$\log10{Flux}$') return out_nu, out_energy, jsestimator, nubarestimator
fig = plt.figure(1) fig.clf() ax = fig.add_subplot(111) config_object = config_reader.read_config('tardis_config_scatter.ini') config_object.plasma_type='nebular' config_object.line_interaction_type='macroatom' config_object.single_run_packets = int(1e5) atom_data = atomic.AtomData.from_hdf5(kurucz_h5, use_macro_atom=True, use_zeta_data=True) out_nu, out_energy, jsestimator, nubarestimator, radial1d_mdl = plot_tardis() emission_filter = out_nu >= 0 input = synspec.get_lambda_spec(radial1d_mdl.packet_src.packet_nus, radial1d_mdl.packet_src.packet_energies, 500*1e-8, 20000*1e-8, samples=1000) input_lambda = units.Unit('Hz').to('Angstrom', radial1d_mdl.packet_src.packet_nus, units.spectral()) output_lambda = units.Unit('Hz').to('Angstrom', out_nu, units.spectral()) fig.clf() ax = fig.add_subplot(111) ax.plot(input_lambda[emission_filter], output_lambda[emission_filter], 'b,') ax.set_xlim(2000, 10000) ax.set_ylim(2000, 10000) ax.set_xlabel('Input Packet Wavelength') ax.set_ylabel('Output Packet Wavelength') ax.set_title('Input vs Output (Nebular Plasma & Macroatom)') fig.savefig('tardis_nebular_macro_in_vs_out.pdf') fig.savefig('tardis_nebular_macro_in_vs_out.png')
def plot_tardis(): radial1d_mdl = model_radial_oned.Radial1DModel(config_object, atom_data) radial1d_mdl.create_packets() out_nu, out_energy, jsestimator, nubarestimator, line_id_in, line_id_out = montecarlo_multizone.montecarlo_radial1d(radial1d_mdl) spectrum = synspec.get_lambda_spec(out_nu, out_energy, 500*1e-8, 20000*1e-8, samples=1000) return out_nu, out_energy, jsestimator, nubarestimator, line_id_in, line_id_out, radial1d_mdl
config_object.plasma_type = 'nebular' config_object.line_interaction_type = 'macroatom' config_object.single_run_packets = int(1e5) atom_data = atomic.AtomData.from_hdf5(kurucz_h5, use_macro_atom=True, use_zeta_data=True) out_nu, out_energy, jsestimator, nubarestimator, line_id_in, line_id_out, radial1d_mdl = plot_tardis( ) emission_filter = out_nu >= 0 input = synspec.get_lambda_spec(radial1d_mdl.packet_src.packet_nus, radial1d_mdl.packet_src.packet_energies, 500 * 1e-8, 20000 * 1e-8, samples=1000) line_id_in = np.array(line_id_in, dtype=int) line_id_out = np.array(line_id_out, dtype=int) line_in_atom = radial1d_mdl.atom_data.lines['atomic_number'].values[line_id_in] line_out_atom = radial1d_mdl.atom_data.lines['atomic_number'].values[ line_id_out] assert all(line_in_atom == line_out_atom) print "checked atoms" line_in_ion = radial1d_mdl.atom_data.lines['ion_number'].values[line_id_in] line_out_ion = radial1d_mdl.atom_data.lines['ion_number'].values[line_id_out] assert all(line_in_ion == line_out_ion)
config_object = config_reader.read_config('tardis_config_scatter.ini') config_object.plasma_type = 'nebular' config_object.single_run_packets = int(1e5) atom_data = atomic.AtomData.from_hdf5(kurucz_h5, use_macro_atom=True, use_zeta_data=True) out_nu, out_energy, jsestimator, nubarestimator, radial1d_mdl = plot_tardis() emission_filter = out_nu >= 0 input = synspec.get_lambda_spec(radial1d_mdl.packet_src.packet_nus, radial1d_mdl.packet_src.packet_energies, 500 * 1e-8, 20000 * 1e-8, samples=1000) reabsorbed = synspec.get_lambda_spec(-out_nu, -out_energy, 500 * 1e-8, 20000 * 1e-8, samples=1000) ax.plot(np.log10(reabsorbed.wave / 1e4), np.log10(reabsorbed.flux), label='reabsorbed') ax.plot(np.log10(input.wave / 1e4), np.log10(input.flux), label='input BB(10000K)') ax.legend(loc=0)
fig = plt.figure(1) fig.clf() ax = fig.add_subplot(111) config_object = config_reader.read_config('tardis_config_scatter.ini') config_object.plasma_type='nebular' config_object.single_run_packets = int(1e5) atom_data = atomic.AtomData.from_hdf5(kurucz_h5, use_macro_atom=True, use_zeta_data=True) out_nu, out_energy, jsestimator, nubarestimator, radial1d_mdl = plot_tardis() emission_filter = out_nu >= 0 input = synspec.get_lambda_spec(radial1d_mdl.packet_src.packet_nus, radial1d_mdl.packet_src.packet_energies, 500*1e-8, 20000*1e-8, samples=1000) reabsorbed = synspec.get_lambda_spec(-out_nu, -out_energy, 500*1e-8, 20000*1e-8, samples=1000) ax.plot(np.log10(reabsorbed.wave/1e4), np.log10(reabsorbed.flux), label='reabsorbed') ax.plot(np.log10(input.wave/1e4), np.log10(input.flux), label='input BB(10000K)') ax.legend(loc=0) fig.savefig('tardis_nebular_scatter_emitted.pdf') fig.savefig('tardis_nebular_scatter_emitted.png') input_lambda = units.Unit('Hz').to('Angstrom', radial1d_mdl.packet_src.packet_nus, units.spectral()) output_lambda = units.Unit('Hz').to('Angstrom', out_nu, units.spectral()) fig.clf() ax = fig.add_subplot(111) ax.plot(input_lambda[emission_filter], output_lambda[emission_filter], 'b,')