def filter_comparison_stars( star: StarDescription, comp_stars: ComparisonStars ) -> Tuple[ComparisonStars, ComparisonStars]: compstar_match: star_description.CompStarData = star.get_metadata("COMPSTARS") sd_ids = compstar_match.compstar_ids # skip part of the work if the list is equal. Biggest set first otherwise diff is always empty if len(set(comp_stars.ids).difference(set(sd_ids))) == 0: return comp_stars filtered_compstars = comp_stars.get_filtered_comparison_stars(sd_ids) extra_compstar = comp_stars.get_filtered_comparison_stars([compstar_match.extra_id]) logging.debug( f"get star compstars from catalog: {len(filtered_compstars.ids)}, {filtered_compstars.ids}" ) return filtered_compstars, extra_compstar
def setUp(self) -> None: logging.getLogger().setLevel(logging.DEBUG) logging.basicConfig(format="%(asctime)s %(levelname)s %(message)s") self.df = reading.read_lightcurve_vast("./tests/data/out02391.dat") self.sd = stardesc(2391, 10, 10) do_calibration.add_catalog_data_to_sd(self.sd, 10, 0.1, "UCAC4-Numero2391", "UCAC4", self.sd.coords) self.sd_comp1 = stardesc(1, 10, 10) do_calibration.add_catalog_data_to_sd(self.sd_comp1, 12.1, 0.1, "UCAC4-Numero1", "UCAC4", self.sd.coords) self.sd_comp5 = stardesc(5, 10, 10) do_calibration.add_catalog_data_to_sd(self.sd_comp5, 11.1, 0.1, "UCAC4-Numero5", "UCAC4", self.sd.coords) self.sd.set_metadata(star_metadata.CompStarData(compstar_ids=[1, 5])) # ComparisonStars(comparison_stars_ids, comparison_stars_1_sds, comp_observations, comp_catalogmags, # comp_catalogerr) observations = [ { "2457236.66302": (12.2, 0.01) }, { "2457236.66302": (11.2, 0.01) }, ] self.comp_stars = ComparisonStars([1, 5], [self.sd_comp1, self.sd_comp5], observations, [12, 11], [0.1, 0.1]) import toml self.settings = toml.load("./tests/data/testsettings.txt")
def test_calculate_weighted_value_ensemble_photometry(self): data = {"JD": ["1"], "Vrel": [15.414], "err": [0.012]} df = DataFrame(data, columns=["JD", "Vrel", "err"]) # {JD, (mag, magerr)} observations_1 = {"1": (11.775, 0.001)} observations_2 = {"1": (12.220, 0.0012)} observations_3 = {"1": (13.114, 0.0021)} observations = [observations_1, observations_2, observations_3] catalogmags = [11.8, 12.2, 13.1] comp_stars = ComparisonStars(None, None, observations, catalogmags, None) realV, realErr = do_compstars.calculate_ensemble_photometry( df, comp_stars, do_compstars.weighted_value_ensemble_method ) self.assertEqual(15.415, round(realV[0], 3)) self.assertEqual(0.0121, round(realErr[0], 4))
def set_comp_stars_and_ucac4( star_descriptions: List[StarDescription], selectedstars: List[StarDescription], checkstarfile: str, vastdir: str, stardict: StarDict, ref_jd: str, ) -> ComparisonStars: if checkstarfile: # load comparison stars checkstars = read_checkstars(checkstarfile) ucac4.add_sd_metadatas(selectedstars) comparison_stars_ids, comparison_stars_1_sds = do_compstars.get_fixed_compstars( star_descriptions, checkstars) else: ucac4.add_sd_metadatas(star_descriptions) ( comparison_stars_ids, comparison_stars_1_sds, ) = do_compstars.get_calculated_compstars(vastdir, stardict, ref_jd) # get all observations for the comparison stars comp_observations = [] for star in comparison_stars_ids: comp_magdict = reading.read_magdict_for_star(vastdir, star) # logging.info(f"Read comp magdict for {star}: {read_comp_magdict}") comp_observations.append(comp_magdict) comp_catalogmags = [] comp_catalogerr = [] for star in comparison_stars_1_sds: star_ucac4_catalog = star.get_metadata("UCAC4") comp_catalogmags.append(star_ucac4_catalog.vmag) comp_catalogerr.append(star_ucac4_catalog.vmag_err) comp_stars = ComparisonStars( comparison_stars_ids, comparison_stars_1_sds, comp_observations, comp_catalogmags, comp_catalogerr, ) logging.info( f"Using {len(comparison_stars_ids)} comparison stars with on average " f"{np.array(list(map(len, comp_observations))).mean()} observations") return comp_stars
def test_closest_compstar_ids(self): stars = [ self.stardesc(1, 1, 1, 10, 0.01, 10), self.stardesc(4283, 3, 3, 12, 0.02, 10), self.stardesc(132, 10.24496, 9.96736, 13, 0.02, 10), self.stardesc(2, 10.24490, 9.96730, 12, 0.01, 10), self.stardesc(3, 10.24490, 9.96730, 12, 0.01, 10), ] # not there result = do_compstars._closest_compstar_ids( stars[0], ComparisonStars( [x.local_id for x in stars[1:]], [x for x in stars[1:]], None, None, None, ), ) self.assertEqual([4283, 2, 3, 132], result)