Source code for exotools.db.star_system.planet

from astropy.table import Row
from astropy.time import Time
from astropy.units import Quantity

from .uncertain_data import UncertainDataSource, UncertainValue


[docs] class Planet(UncertainDataSource): def __init__(self, name: str, data: Row): super().__init__(data) self._name = name def __str__(self) -> str: return self.to_string()
[docs] def to_string(self) -> str: return ( f"{self.name}, " f"r: {self.radius.central}, " f"p: {self.orbital_period.central}, " f"dur: {self.transit_duration.upper}, " f"mid: {self.transit_midpoint.central}, " f"depth: {self.transit_depth.central}, " # f"axis: {self.semimajor_axis.central}, " f"{'' if self.has_mandatory_parameters else '(MISSING PARAMETERS)'}" )
@property def name(self) -> str: return self._name @property def has_mandatory_parameters(self) -> bool: return self._row["pl_valid_flag"] @property def radius(self) -> UncertainValue[Quantity]: return self._uncertain_value_from_cache("pl_rade") @property def mass(self) -> UncertainValue[Quantity]: return self._uncertain_value_from_cache("pl_masse") @property def density(self) -> UncertainValue[Quantity]: return self._uncertain_value_from_cache("pl_dens") @property def eccentricity(self) -> UncertainValue[float]: return self._uncertain_value_from_cache("pl_orbeccen") @property def orbital_period(self) -> UncertainValue[Quantity]: return self._uncertain_value_from_cache("pl_orbper") @property def parameter_of_periastron(self) -> UncertainValue[Quantity]: return self._uncertain_value_from_cache("pl_orblper") @property def orbital_inclination(self) -> UncertainValue[Quantity]: return self._uncertain_value_from_cache("pl_orbincl") @property def semimajor_axis(self) -> UncertainValue[Quantity]: return self._uncertain_value_from_cache("pl_orbsmax") @property def transit_midpoint(self) -> UncertainValue[Time]: return self._uncertain_value_from_cache("pl_tranmid") @property def transit_duration(self) -> UncertainValue[Quantity]: return self._uncertain_value_from_cache("pl_trandur") @property def transit_depth(self) -> UncertainValue[float]: return self._uncertain_value_from_cache("pl_trandep") @property def impact_parameter(self) -> UncertainValue[float]: return self._uncertain_value_from_cache("pl_imppar") @property def radius_to_stellar_ratio(self) -> UncertainValue[float]: return self._uncertain_value_from_cache("pl_ratror") @property def semimajor_axis_to_stellar_ratio(self) -> UncertainValue[float]: return self._uncertain_value_from_cache("pl_ratdor")