def _get_multi_band_observations(self, mindex): """ Get an ObsList object for the Coadd observations Get a MultiBandObsList object for the SE observations. """ coadd_mb_obs_list = MultiBandObsList() mb_obs_list = MultiBandObsList() for band in self.iband: cobs_list, obs_list = self._get_band_observations(band, mindex) coadd_mb_obs_list.append(cobs_list) mb_obs_list.append(obs_list) meta_row = self._get_meta_row() meta_row["id"][0] = self.meds_list[0]["id"][mindex] meta_row["number"][0] = self.meds_list[0]["number"][mindex] meta_row["nimage_tot"][0, :] = numpy.array( [self.meds_list[b]["ncutout"][mindex] - 1 for b in xrange(self.conf["nband"])], dtype="i4" ) meta = {"meta_data": meta_row, "meds_index": mindex, "id": self.meds_list[0]["id"][mindex], "obj_flags": 0} coadd_mb_obs_list.update_meta_data(meta) mb_obs_list.update_meta_data(meta) return coadd_mb_obs_list, mb_obs_list
def _get_multi_band_observations(self, mindex): """ Get an ObsList object for the Coadd observations Get a MultiBandObsList object for the SE observations. """ coadd_mb_obs_list=MultiBandObsList() mb_obs_list=MultiBandObsList() for band in self.iband: cobs_list, obs_list = self._get_band_observations(band, mindex) coadd_mb_obs_list.append(cobs_list) mb_obs_list.append(obs_list) meta_row = self._get_meta_row() meta_row['id'][0] = self.meds_list[0]['id'][mindex] meta_row['number'][0] = self.meds_list[0]['number'][mindex] # to account for max_cutouts limit, we count the actual number #meta_row['nimage_tot'][0,:] = numpy.array([self.meds_list[b]['ncutout'][mindex]-1 for b in xrange(self.conf['nband'])],dtype='i4') meta_row['nimage_tot'][0,:] = numpy.array([len(mb_obs_list[b]) for b in xrange(self.conf['nband'])],dtype='i4') meta = {'meta_data':meta_row,'meds_index':mindex,'id':self.meds_list[0]['id'][mindex],'obj_flags':0} coadd_mb_obs_list.update_meta_data(meta) mb_obs_list.update_meta_data(meta) return coadd_mb_obs_list, mb_obs_list
def _check_flags(self, mbobs): flags = self['metacal'].get('bmask_flags', None) passed_flags = True _mbobs = None if flags is not None: _mbobs = MultiBandObsList() _mbobs.update_meta_data(mbobs.meta) for obslist in mbobs: _obslist = ObsList() _obslist.update_meta_data(obslist.meta) for obs in obslist: msk = (obs.bmask & flags) != 0 if np.any(msk): logger.info(" EDGE HIT") else: _obslist.append(obs) passed_flags = True _mbobs.append(_obslist) # all bands have to have at least one obs for ol in _mbobs: if len(ol) == 0: passed_flags = False return passed_flags, _mbobs
def _strip_coadd(mbobs): _mbobs = MultiBandObsList() _mbobs.update_meta_data(mbobs.meta) for ol in mbobs: _ol = ObsList() _ol.update_meta_data(ol.meta) for i in range(1, len(ol)): _ol.append(ol[i]) _mbobs.append(_ol) return _mbobs
def _strip_zero_flux(mbobs): _mbobs = MultiBandObsList() _mbobs.update_meta_data(mbobs.meta) for ol in mbobs: _ol = ObsList() _ol.update_meta_data(ol.meta) for i in range(len(ol)): if np.sum(ol[i].image) > 0: _ol.append(ol[i]) _mbobs.append(_ol) return _mbobs
def _get_good_mb_obs_list(self, mb_obs_list): new_mb_obs_list = MultiBandObsList() for obs_list in mb_obs_list: new_obs_list = ObsList() for obs in obs_list: if obs.meta['flags'] == 0: new_obs_list.append(obs) new_mb_obs_list.append(new_obs_list) new_mb_obs_list.update_meta_data(mb_obs_list.meta) new_mb_obs_list.update_meta_data({'old_mb_obs_list': mb_obs_list}) return new_mb_obs_list