コード例 #1
0
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()
コード例 #2
0
        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)]
コード例 #3
0
        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()