def run_sched(surveys, survey_length=365.25, nside=32, fileroot='baseline_', verbose=False, extra_info=None, illum_limit=40.): years = np.round(survey_length / 365.25) scheduler = Core_scheduler(surveys, nside=nside) n_visit_limit = None filter_sched = simple_filter_sched(illum_limit=illum_limit) observatory = Model_observatory(nside=nside) conditions_init = copy.deepcopy(observatory.return_conditions()) scheduler.update_conditions(observatory.return_conditions()) desired_obs = scheduler.request_observation(mjd=observatory.mjd) print(desired_obs) completed_obs, new_night = observatory.observe(desired_obs) print(completed_obs) # Check if there's any difference between where we wanted to point, and where it pointed for key in ['RA', 'dec', 'rotSkyPos']: print(key, desired_obs[key] - completed_obs[key], desired_obs[key][0]) conditions_final = observatory.return_conditions() print(scheduler.survey_lists[2][-2].fields['dec'][3410]) import pdb pdb.set_trace()
detailers.Camera_rot_detailer(min_rot=-87., max_rot=87.), dither_detailer ] ddfs = generate_dd_surveys(nside=nside, nexp=nexp, detailers=details) greedy = gen_greedy_surveys(nside, nexp=nexp) blobs = generate_blobs(nside, nexp=nexp, mixed_pairs=True) surveys = [ddfs, blobs, greedy] scheduler = Core_scheduler(surveys, nside=nside) for obs in observations[0:max_indx]: scheduler.add_observation(obs) observatory = Model_observatory(nside=nside) observatory.mjd = obs['mjd'] _ = observatory.observe(obs) observatory.mjd = obs['mjd'] _ = observatory.observe(obs) conditions = observatory.return_conditions() scheduler.update_conditions(conditions) rewards = [] reward_sizes = [] for survey_list in scheduler.survey_lists: rw = [] rws = [] for survey in survey_list: reward = survey.calc_reward_function(conditions) if np.size(reward) > 1: reward = reward[np.isfinite(reward)]
extra_info=extra_info, filter_scheduler=filter_sched) if __name__ == "__main__": nside = 32 scheduler = make_scheduler() observatory = Model_observatory(nside=nside) sco = schema_converter() observations = sco.opsim2obs('baseline_nexp1_v1.6_1yrs.db') indx = 64840 - 1 for obs in observations[0:indx]: scheduler.add_observation(obs) observatory.mjd = obs['mjd'] # Observatory starts parked, so need to send an expose command to slew to the correct position temp = observatory.observe(obs) # It took some time to make that slew, so reset the time again observatory.mjd = observations[indx]['mjd'] should_match_obs, new_night = observatory.observe(obs) conditions = observatory.return_conditions() scheduler.update_conditions(conditions) for survey in scheduler.survey_lists[-1]: print(survey.filtername, np.nanmax(survey.calc_reward_function(conditions))) import pdb pdb.set_trace()