code: def group_by_day(self):
          
          hourly_data_by_day = OrderedDict()
          for d in xrange(1, 366):
              hourly_data_by_day[d] = []
          a_per = self.header.analysis_period
          indx_per_day = 24 * a_per.timestep
          start_doy = sum(a_per._num_of_days_each_month[:a_per.st_time.month-1]) \
              + a_per.st_time.day
          if not a_per.is_reversed:
              for i in range(0, len(self._values), indx_per_day):
                  hourly_data_by_day[start_doy] = self._values[i:i + indx_per_day]
                  start_doy += 1
          else:
              end_ind = 24 * a_per.timestep * (365 - start_doy)
              for i in range(0, end_ind + 1, indx_per_day):
                  hourly_data_by_day[start_doy] = self._values[i:i + indx_per_day]
                  start_doy += 1
              start_doy = 1
              for i in range(end_ind, len(self._values), indx_per_day):
                  hourly_data_by_day[start_doy] = self._values[i:i + indx_per_day]
                  start_doy += 1
          return hourly_data_by_day
docs: Return a dictionary of this collection's values grouped by each day of year.
  
          Key values are between 1-365.