Exemple #1
0
def spectrum(request):
    data = TARDISSpectrum(
            request.param['nu'],
            request.param['lum'],
            )
    distance = request.param['distance']
    if distance:
        data.distance = distance
    return data
Exemple #2
0
def spectrum(request):
    data = TARDISSpectrum(
        request.param["nu"],
        request.param["lum"],
    )
    distance = request.param["distance"]
    if distance:
        data.distance = distance
    return data
Exemple #3
0
def spectrum(request):
    data = TARDISSpectrum(
            request.param['nu'],
            request.param['lum'],
            )
    distance = request.param['distance']
    if distance:
        data.distance = distance
    return data
Exemple #4
0
    def calculate_spectrum(self,
                           frequency,
                           points=None,
                           interpolate_shells=-1,
                           raises=True):
        # Very crude implementation
        # The c extension needs bin centers (or something similar)
        # while TARDISSpectrum needs bin edges
        self.check(raises)
        N = points or self.points
        self.interpolate_shells = interpolate_shells
        frequency = frequency.to("Hz", u.spectral())
        luminosity = u.Quantity(formal_integral(self, frequency, N),
                                "erg") * (frequency[1] - frequency[0])

        # Ugly hack to convert to 'bin edges'
        frequency = u.Quantity(
            np.concatenate([
                frequency.value,
                [frequency.value[-1] + np.diff(frequency.value)[-1]],
            ]),
            frequency.unit,
        )

        return TARDISSpectrum(frequency, luminosity)
Exemple #5
0
    def calculate_spectrum(self,
                           frequency,
                           points=None,
                           interpolate_shells=0,
                           raises=True):
        # Very crude implementation
        # The c extension needs bin centers (or something similar)
        # while TARDISSpectrum needs bin edges
        self.check(raises)
        N = points or self.points
        if interpolate_shells == 0:  # Default Value
            interpolate_shells = max(2 * self.model.no_of_shells, 80)
            warnings.warn(
                "The number of interpolate_shells was not "
                f"specified. The value was set to {interpolate_shells}.")
        self.interpolate_shells = interpolate_shells
        frequency = frequency.to("Hz", u.spectral())

        luminosity = u.Quantity(self.formal_integral(frequency, N),
                                "erg") * (frequency[1] - frequency[0])

        # Ugly hack to convert to 'bin edges'
        frequency = u.Quantity(
            np.concatenate([
                frequency.value,
                [frequency.value[-1] + np.diff(frequency.value)[-1]],
            ]),
            frequency.unit,
        )

        return TARDISSpectrum(frequency, luminosity)
Exemple #6
0
def test_creat_from_J(spectrum):
    actual = TARDISSpectrum(
            spectrum._frequency,
            spectrum.luminosity.to('J / s')
            )

    compare_spectra(actual, spectrum)
Exemple #7
0
def test_creat_from_wl(spectrum):
    actual = TARDISSpectrum(
            spectrum._frequency.to('angstrom', u.spectral()),
            spectrum.luminosity
            )

    compare_spectra(actual, spectrum)
Exemple #8
0
def test_luminosity_to_flux():
    lum = u.Quantity(np.arange(1, 4, 1) * np.pi, "erg / s")
    distance = u.Quantity(0.5, "cm")
    flux = TARDISSpectrum.luminosity_to_flux(lum, distance)
    test_helper.assert_quantity_allclose(
        flux, u.Quantity(lum.value / np.pi, "erg s^-1 cm^-2")
    )
Exemple #9
0
def test_luminosity_to_flux():
    lum = u.Quantity(np.arange(1, 4, 1) * np.pi, 'erg / s')
    distance = u.Quantity(.5, 'cm')
    flux = TARDISSpectrum.luminosity_to_flux(lum, distance)
    test_helper.assert_quantity_allclose(
            flux,
            u.Quantity(lum.value / np.pi, 'erg s^-1 cm^-2')
            )
Exemple #10
0
    def spectrum_virtual(self):
        if np.all(self.montecarlo_virtual_luminosity == 0):
            warnings.warn(
                "MontecarloRunner.spectrum_virtual"
                "is zero. Please run the montecarlo simulation with"
                "no_of_virtual_packets > 0", UserWarning)

        return TARDISSpectrum(self.spectrum_frequency,
                              self.montecarlo_virtual_luminosity)
Exemple #11
0
 def spectrum_reabsorbed(self):
     return TARDISSpectrum(self.spectrum_frequency,
                           self.montecarlo_reabsorbed_luminosity)
Exemple #12
0
 def spectrum(self):
     return TARDISSpectrum(self.spectrum_frequency,
                           self.montecarlo_emitted_luminosity)