Source code for arve.star.get_stellar_parameters

from   astroquery.simbad import Simbad
import numpy             as     np

[docs] class get_stellar_parameters:
[docs] def get_stellar_parameters( self, ) -> None: """Get stellar parameters. Spectral type is queried from SIMBAD and other parameters are interpolated from a main-sequence table. The Sun has hard-coded values. Returns ------- None None """ # initiate dictionarty with stellar parameters if self.stellar_parameters is None: self.stellar_parameters = {} # Sun if self.target == "Sun": # save stellar parameters self.stellar_parameters["sptype" ] = "G2" self.stellar_parameters["vrad_sys"] = 0.0 self.stellar_parameters["berv_max"] = 1.0 self.stellar_parameters["Teff" ] = 5770 self.stellar_parameters["logg" ] = 4.4 self.stellar_parameters["Fe_H" ] = 0.0 self.stellar_parameters["M" ] = 1.0 self.stellar_parameters["R" ] = 1.0 self.stellar_parameters["vsini" ] = 1.63 # other stars else: # specific target if self.target is not None: # get spectral type and systematic velocity from query simbad = Simbad() simbad.add_votable_fields("sptype" ) simbad.add_votable_fields("velocity") self.stellar_parameters["sptype" ] = simbad.query_object(self.target)["sp_type" ][0][:2] self.stellar_parameters["vrad_sys"] = simbad.query_object(self.target)["rvz_radvel"][0] # specific spectral type else: # set systematic velocity to zero self.stellar_parameters["vrad_sys"] = 0.0 # maximum BERV self.stellar_parameters["berv_max"] = 30.0 # convert spectral types to numbers sptype_num = self.arve.functions.sptype_to_num(sptype=self.stellar_parameters["sptype"]) sptype_num_table = [self.arve.functions.sptype_to_num(sptype=sptype) for sptype in _table["sptype"]] # interpolate and save stellar parameters from table for key in ["Teff", "logg", "Fe_H", "M", "R", "vsini"]: self.stellar_parameters[key] = np.interp(sptype_num, sptype_num_table, _table[key]) # compute and save micro- and macro-turbulence self.stellar_parameters["vmic"] = 0.85 self.stellar_parameters["vmac"] = max(0.00, 3.98+(self.stellar_parameters["Teff"]-5770)/650) return None
# table with spectral parameters for main sequence stars _table = np.array( [ ("A0", 9572, 4.3, 0.0, 2.34, 1.80, 255.0), ("A2", 8985, 4.3, 0.0, 2.21, 1.75, 244.0), ("A5", 8306, 4.2, 0.0, 2.04, 1.69, 225.0), ("A7", 7935, 4.2, 0.0, 1.93, 1.68, 210.0), ("F0", 7178, 4.3, 0.0, 1.66, 1.62, 180.0), ("F2", 6909, 4.3, 0.0, 1.56, 1.48, 135.0), ("F5", 6528, 4.3, 0.0, 1.41, 1.40, 20.0), ("F8", 6160, 4.4, 0.0, 1.25, 1.20, 9.0), ("G0", 5943, 4.4, 0.0, 1.16, 1.12, 6.4), ("G2", 5811, 4.4, 0.0, 1.11, 1.08, 4.8), ("G5", 5657, 4.5, 0.0, 1.05, 0.95, 3.4), ("G8", 5486, 4.5, 0.0, 0.97, 0.91, 2.6), ("K0", 5282, 4.6, 0.0, 0.90, 0.83, 2.2), ("K2", 5055, 4.6, 0.0, 0.81, 0.75, 2.0), ("K3", 4973, 4.6, 0.0, 0.79, 0.73, 2.0), ("K5", 4623, 4.6, 0.0, 0.65, 0.64, 1.9), ("K7", 4380, 4.7, 0.0, 0.54, 0.54, 1.7), ("M0", 4212, 4.7, 0.0, 0.46, 0.48, 1.5), ("M2", 4076, 4.7, 0.0, 0.40, 0.43, 0.0), ("M5", 3923, 4.8, 0.0, 0.34, 0.38, 0.0) ], dtype=[("sptype","U2"), ("Teff","f4"), ("logg","f4"), ("Fe_H","f4"), ("M","f4"), ("R","f4"), ("vsini","f4")] )