code: def filter_by_moys(self, moys):
          
          t_s = 60 / self.header.analysis_period.timestep
          st_ind = self.header.analysis_period.st_time.moy / t_s
          if self.header.analysis_period.is_reversed is False:
              _filt_indices = [int(moy / t_s - st_ind) for moy in moys]
          else:
              if self.header.analysis_period.is_leap_year is False:
                  eoy_ind = 8759 * self.header.analysis_period.timestep - st_ind
              else:
                  eoy_ind = 8783 * self.header.analysis_period.timestep - st_ind
              _filt_indices = []
              for moy in moys:
                  ind = moy / t_s
                  if ind > st_ind:
                      _filt_indices.append(int(ind - st_ind))
                  else:
                      _filt_indices.append(int(ind + eoy_ind))
  
          _filt_values = [self._values[i] for i in _filt_indices]
          _filt_datetimes = [self.datetimes[i] for i in _filt_indices]
          _filt_header = self.header.duplicate()
          coll = HourlyDiscontinuousCollection(_filt_header, _filt_values, _filt_datetimes)
          coll._validated_a_period = True
          return coll
docs: Filter the Data Collection based on a list of minutes of the year.
  
          Args:
             moys: A List of minutes of the year [0..8759 * 60]
  
          Return:
              A new Data Collection with filtered data