from .emission import EmissionModel
from taurex.constants import PI
[docs]class DirectImageModel(EmissionModel):
"""
A forward model for direct imaging of exo-planets
Parameters
----------
planet: :class:`~taurex.data.planet.Planet`, optional
Planet model, default planet is Jupiter
star: :class:`~taurex.data.stellar.star.Star`, optional
Star model, default star is Sun-like
pressure_profile: :class:`~taurex.data.profiles.pressure.pressureprofile.PressureProfile`, optional
Pressure model, alternative is to set ``nlayers``, ``atm_min_pressure``
and ``atm_max_pressure``
temperature_profile: :class:`~taurex.data.profiles.temperature.tprofile.TemperatureProfile`, optional
Temperature model, default is an :class:`~taurex.data.profiles.temperature.isothermal.Isothermal`
profile at 1500 K
chemistry: :class:`~taurex.data.profiles.chemistry.chemistry.Chemistry`, optional
Chemistry model, default is
:class:`~taurex.data.profiles.chemistry.taurexchemistry.TaurexChemistry` with
``H2O`` and ``CH4``
nlayers: int, optional
Number of layers. Used if ``pressure_profile`` is not defined.
atm_min_pressure: float, optional
Pressure at TOA. Used if ``pressure_profile`` is not defined.
atm_max_pressure: float, optional
Pressure at BOA. Used if ``pressure_profile`` is not defined.
ngauss: int, optional
Number of gaussian quadrature points, default = 4
"""
def __init__(self,
planet=None,
star=None,
pressure_profile=None,
temperature_profile=None,
chemistry=None,
nlayers=100,
atm_min_pressure=1e-4,
atm_max_pressure=1e6,
ngauss=4,
):
super().__init__(planet,
star,
pressure_profile,
temperature_profile,
chemistry,
nlayers,
atm_min_pressure,
atm_max_pressure,
ngauss=ngauss)
[docs] def compute_final_flux(self, f_total):
star_distance_meters = self._star.distance*3.08567758e16
SDR = pow((star_distance_meters/3.08567758e16), 2)
SDR = 1.0
planet_radius = self._planet.fullRadius
return((f_total * (planet_radius**2) * 2.0 * PI) /
(4 * PI * (star_distance_meters**2))) * SDR