Пример #1
0
    def start_night(self, timestamp, filters_mounted_tonight_list, night):

        Proposal.start_night(self, timestamp, filters_mounted_tonight_list,
                             night)

        self.tonight_filters_list = []
        self.tonight_targets = 0
        self.tonight_sequences_dict = {}
        for filter in filters_mounted_tonight_list:
            self.tonight_filters_list.append(filter)
        self.build_tonight_fields_list(timestamp, night)
        self.tonight_fields = len(self.tonight_fields_list)

        # compute at start night
        for field in self.tonight_fields_list:
            fieldid = field.fieldid

            # add new fields to fields dictionary
            if fieldid not in self.survey_fields_dict:
                self.survey_fields_dict[fieldid] = field.get_copy()
                self.survey_fields += 1

            # add new fields to sequences dictionary
            if fieldid not in self.survey_sequences_dict:
                sequence = self.create_sequence(field)
                self.survey_sequences_dict[fieldid] = sequence
                self.survey_sequences += 1
                self.survey_targets_goal += sequence.goal
                for filter in sequence.filters_goal_dict:
                    self.survey_filters_goal_dict[
                        filter] += sequence.filters_goal_dict[filter]
            else:
                sequence = self.survey_sequences_dict[fieldid]
            if sequence.is_idle_or_active():
                self.tonight_sequences_dict[fieldid] = sequence
                self.tonight_sequences += 1

        for filter in self.params.filter_list:
            if self.survey_filters_goal_dict[filter] > 0:
                self.survey_filters_progress_dict[filter] = \
                    float(self.survey_filters_visits_dict[filter]) / self.survey_filters_goal_dict[filter]
            else:
                self.survey_filters_progress_dict[filter] = 0.0

        self.log.debug("start_night tonight fields=%i sequences=%i" %
                       (self.tonight_fields, self.tonight_sequences))

        self.last_observation = None
        self.last_observation_was_for_this_proposal = False
        self.in_deep_drilling = False
    def start_night(self, timestamp, filters_mounted_tonight_list, night):

        Proposal.start_night(self, timestamp, filters_mounted_tonight_list,
                             night)
        self.fieldsvisitedtonight = {}
        self.tonight_filters_list = []
        self.tonight_targets = 0
        self.tonight_targets_dict = {}
        for filter in filters_mounted_tonight_list:
            self.tonight_filters_list.append(filter)
        self.build_tonight_fields_list(timestamp, night)
        self.tonight_fields = len(self.tonight_fields_list)

        # compute at start night
        for field in self.tonight_fields_list:
            fieldid = field.fieldid

            # add new fields to fields dictionary
            if fieldid not in self.survey_fields_dict:
                self.survey_fields_dict[fieldid] = field.get_copy()
                self.survey_fields += 1

            # add new fields to targets dictionary
            if fieldid not in self.survey_targets_dict:
                self.survey_targets_dict[fieldid] = {}

            self.tonight_targets_dict[fieldid] = {}
            for filter in filters_mounted_tonight_list:
                if filter in self.params.filter_list:
                    if self.params.filter_goal_dict[filter] > 0:
                        if filter not in self.survey_targets_dict[fieldid]:
                            target = Target()
                            target.fieldid = fieldid
                            target.filter = filter
                            target.num_exp = self.params.filter_num_exp_dict[
                                filter]
                            target.exp_times = self.params.filter_exp_times_dict[
                                filter]
                            target.ra_rad = field.ra_rad
                            target.dec_rad = field.dec_rad
                            target.propid = self.propid
                            target.goal = self.params.filter_goal_dict[filter]
                            target.visits = 0
                            target.progress = 0.0
                            target.groupid = 1
                            target.groupix = 1
                            self.survey_targets_dict[fieldid][filter] = target

                            self.survey_targets += 1
                            self.survey_targets_goal += target.goal
                            self.survey_filters_goal_dict[
                                filter] += target.goal
                        target = self.survey_targets_dict[fieldid][filter]
                        if target.progress < 1.0:
                            self.tonight_targets_dict[fieldid][filter] = target
                            self.tonight_targets += 1

        for filter in self.params.filter_list:
            if self.survey_filters_goal_dict[filter] > 0:
                self.survey_filters_progress_dict[filter] = \
                    float(self.survey_filters_visits_dict[filter]) / self.survey_filters_goal_dict[filter]
            else:
                self.survey_filters_progress_dict[filter] = 0.0

        if self.survey_targets_goal > 0:
            self.survey_targets_progress = float(
                self.survey_targets_visits) / self.survey_targets_goal
        else:
            self.survey_targets_progress = 0.0

        self.log.debug("start_night tonight fields=%i targets=%i" %
                       (self.tonight_fields, self.tonight_targets))

        self.last_observation = None
        self.last_observation_was_for_this_proposal = False