From 8369e542f51f4873a08be09c8ce256fd8634eade Mon Sep 17 00:00:00 2001 From: Eric Neilsen Date: Fri, 7 Nov 2025 08:12:34 -0800 Subject: [PATCH] add no_sky=True to ModelObservatory wherever it looks like I can get away with it --- schedview/collect/scheduler_pickle.py | 2 +- schedview/compute/astro.py | 2 +- schedview/compute/survey.py | 5 +++-- schedview/examples/app/visits.py | 2 +- schedview/examples/sunmoon.py | 2 +- schedview/examples/visitmap.py | 2 +- schedview/plot/nightbf.py | 2 +- schedview/plot/scheduler.py | 6 ++++-- schedview/plot/visitmap.py | 3 +-- tests/test_nightly.py | 2 +- tests/test_plot_survey.py | 4 ++-- tests/test_plot_survey_skyproj.py | 8 ++++---- 12 files changed, 21 insertions(+), 19 deletions(-) diff --git a/schedview/collect/scheduler_pickle.py b/schedview/collect/scheduler_pickle.py index 481f8f9d..15bd0cae 100644 --- a/schedview/collect/scheduler_pickle.py +++ b/schedview/collect/scheduler_pickle.py @@ -71,7 +71,7 @@ def read_local_scheduler_pickle(file_name, everything=False): try: conditions = scheduler.conditions except AttributeError: - conditions = ModelObservatory().return_conditions() + conditions = ModelObservatory(no_sky=True).return_conditions() return [scheduler, conditions] diff --git a/schedview/compute/astro.py b/schedview/compute/astro.py index a56f6336..4d0082ff 100644 --- a/schedview/compute/astro.py +++ b/schedview/compute/astro.py @@ -70,7 +70,7 @@ def night_events(night_date=None, site=None, timezone="Chile/Continental"): night_date = datetime.date.today() if site is None: - site = ModelObservatory().location + site = ModelObservatory(no_sky=True).location all_nights_events = _compute_all_night_events().set_index("night") night_of_survey = convert_evening_date_to_night_of_survey(night_date, timezone=timezone) diff --git a/schedview/compute/survey.py b/schedview/compute/survey.py index 27e0a68c..165ffbcf 100644 --- a/schedview/compute/survey.py +++ b/schedview/compute/survey.py @@ -104,8 +104,9 @@ def compute_maps(survey, conditions, nside=None): survey_maps = OrderedDict() - for band in conditions.skybrightness.keys(): - survey_maps[f"{band}_sky"] = deepcopy(conditions.skybrightness[band]) + if conditions.skybrightness is not None: + for band in conditions.skybrightness.keys(): + survey_maps[f"{band}_sky"] = deepcopy(conditions.skybrightness[band]) def can_be_healpix_map(values): try: diff --git a/schedview/examples/app/visits.py b/schedview/examples/app/visits.py index f567ef3f..4be39186 100644 --- a/schedview/examples/app/visits.py +++ b/schedview/examples/app/visits.py @@ -38,7 +38,7 @@ def __init__(self, **params): super().__init__(**params) self.nside = 32 self.footprint = schedview.collect.footprint.get_footprint(self.nside) - self.observatory = ModelObservatory(nside=self.nside, init_load_length=1) + self.observatory = ModelObservatory(nside=self.nside, no_sky=True) self.conditions = self.observatory.return_conditions() @param.depends("night", watch=True) diff --git a/schedview/examples/sunmoon.py b/schedview/examples/sunmoon.py index 6a2da6fa..759d7332 100644 --- a/schedview/examples/sunmoon.py +++ b/schedview/examples/sunmoon.py @@ -38,7 +38,7 @@ def make_sunmoon( night_events: pd.DataFrame = schedview.compute.astro.night_events(day_obs.date) mjd = night_events.loc["night_middle", "MJD"] - observatory: ModelObservatory = ModelObservatory(init_load_length=1, mjd=mjd) + observatory: ModelObservatory = ModelObservatory(no_sky=True, mjd=mjd) positions: pd.DataFrame = schedview.compute.astro.compute_sun_moon_positions(observatory) # Plot diff --git a/schedview/examples/visitmap.py b/schedview/examples/visitmap.py index 782c04e3..c9a4d7be 100644 --- a/schedview/examples/visitmap.py +++ b/schedview/examples/visitmap.py @@ -54,7 +54,7 @@ def make_visit_map( footprint = schedview.collect.footprint.get_footprint(nside) # Compute - observatory: ModelObservatory = ModelObservatory(nside=nside, init_load_length=1) + observatory: ModelObservatory = ModelObservatory(nside=nside, no_sky=True) observatory.mjd = day_obs.mean_local_solar_midnight.mjd conditions = observatory.return_conditions() visits: pd.DataFrame = schedview.compute.visits.add_coords_tuple(visits) diff --git a/schedview/plot/nightbf.py b/schedview/plot/nightbf.py index 9b5ba971..1254a58e 100644 --- a/schedview/plot/nightbf.py +++ b/schedview/plot/nightbf.py @@ -8,7 +8,7 @@ def _extract_night(df, mjd_column, night, observatory=None): if observatory is None: - observatory = ModelObservatory() + observatory = ModelObservatory(no_sky=True) # Add 1, so we use the date of the pm of the night instead of the am # as our reference. diff --git a/schedview/plot/scheduler.py b/schedview/plot/scheduler.py index 8dd2acd7..27d21054 100644 --- a/schedview/plot/scheduler.py +++ b/schedview/plot/scheduler.py @@ -152,10 +152,12 @@ def mjd(self, value): try: # If we cannot go to the requested MJD, follback on # on we can go to: - if value < self.observatory.sky_model.mjd_left.min(): + if self.observatory.sky_model is not None and value < self.observatory.sky_model.mjd_left.min(): LOGGER.info("Cannot go to requested date, going to earliest.") self.observatory.mjd = self.observatory.sky_model.mjd_left.min() + 1.0 - elif value > self.observatory.sky_model.mjd_right.max(): + elif ( + self.observatory.sky_model is not None and value > self.observatory.sky_model.mjd_right.max() + ): LOGGER.info("Cannot go to requested date, going to latest.") self.observatory.mjd = self.observatory.sky_model.mjd_right.max() - 1.0 else: diff --git a/schedview/plot/visitmap.py b/schedview/plot/visitmap.py index d782c2cc..363bbe7c 100644 --- a/schedview/plot/visitmap.py +++ b/schedview/plot/visitmap.py @@ -354,8 +354,7 @@ def create_visit_skymaps( visits = visits.query(f"observationStartMJD <= {Time(end_time).mjd}") if observatory is None: - observatory = ModelObservatory(nside=nside, init_load_length=1) - observatory.sky_model.load_length = 1 + observatory = ModelObservatory(nside=nside, no_sky=True) footprint_regions = get_current_footprint(nside)[1] footprint_regions[np.isin(footprint_regions, ["bulgy", "lowdust"])] = "WFD" diff --git a/tests/test_nightly.py b/tests/test_nightly.py index b0e7e153..7d3d012b 100644 --- a/tests/test_nightly.py +++ b/tests/test_nightly.py @@ -26,7 +26,7 @@ def _load_sample_visits(): def _create_almanac(night): - site = ModelObservatory().location + site = ModelObservatory(no_sky=True).location timezone = "Chile/Continental" almanac_events = schedview.compute.astro.night_events(night, site, timezone) return almanac_events diff --git a/tests/test_plot_survey.py b/tests/test_plot_survey.py index 74f748a4..5be28a4d 100644 --- a/tests/test_plot_survey.py +++ b/tests/test_plot_survey.py @@ -34,7 +34,7 @@ def test_create_hpix_visit_map_grid(self): get_baseline(), Time(start_mjd + 0.5, format="mjd"), Time(start_mjd + 1.5, format="mjd") ) - observatory = ModelObservatory(mjd_start=start_mjd + 1, nside=nside) + observatory = ModelObservatory(mjd_start=start_mjd + 1, nside=nside, no_sky=True) conditions = observatory.return_conditions() plot = create_hpix_visit_map_grid(hpix_maps, visits, conditions) @@ -50,7 +50,7 @@ def test_create_hpix_visit_map_no_raster(self): get_baseline(), Time(start_mjd + 0.5, format="mjd"), Time(start_mjd + 1.5, format="mjd") ) - observatory = ModelObservatory(mjd_start=start_mjd + 1, nside=nside) + observatory = ModelObservatory(mjd_start=start_mjd + 1, nside=nside, no_sky=True) conditions = observatory.return_conditions() plot = map_visits_over_hpix(visits, conditions, hpix_map, prerender_hpix=False) diff --git a/tests/test_plot_survey_skyproj.py b/tests/test_plot_survey_skyproj.py index d82a1669..ac564f5a 100644 --- a/tests/test_plot_survey_skyproj.py +++ b/tests/test_plot_survey_skyproj.py @@ -50,7 +50,7 @@ def test_map_visits_over_healpix(): visits_mjd = visits["observationStartMJD"].median() time_datetime = Time(visits_mjd - 0.5, format="mjd").datetime - model_observatory = ModelObservatory(init_load_length=1) + model_observatory = ModelObservatory(no_sky=True) astropy.utils.iers.conf.iers_degraded_accuracy = "ignore" night_events = schedview.compute.astro.night_events( datetime.date(time_datetime.year, time_datetime.month, time_datetime.day) @@ -69,7 +69,7 @@ def test_create_hpix_visit_map_grid(): visits_mjd = visits["observationStartMJD"].median() time_datetime = Time(visits_mjd - 0.5, format="mjd").datetime - model_observatory = ModelObservatory(init_load_length=1) + model_observatory = ModelObservatory(no_sky=True) astropy.utils.iers.conf.iers_degraded_accuracy = "ignore" night_events = schedview.compute.astro.night_events( datetime.date(time_datetime.year, time_datetime.month, time_datetime.day) @@ -82,7 +82,7 @@ def test_map_healpix(): hp_map = np.random.default_rng(RANDOM_SEED).uniform(0, 1, hp.nside2npix(4)) mjd = 61040 time_datetime = Time(mjd - 0.5, format="mjd").datetime - model_observatory = ModelObservatory(init_load_length=1) + model_observatory = ModelObservatory(no_sky=True) astropy.utils.iers.conf.iers_degraded_accuracy = "ignore" night_events = schedview.compute.astro.night_events( datetime.date(time_datetime.year, time_datetime.month, time_datetime.day) @@ -98,7 +98,7 @@ def test_create_hpix_map_grid(): mjd = 61040 time_datetime = Time(mjd - 0.5, format="mjd").datetime - model_observatory = ModelObservatory(init_load_length=1) + model_observatory = ModelObservatory(no_sky=True) astropy.utils.iers.conf.iers_degraded_accuracy = "ignore" night_events = schedview.compute.astro.night_events( datetime.date(time_datetime.year, time_datetime.month, time_datetime.day)