docs: def direct_horizontal_irradiance(self):
          """Returns the direct irradiance on a horizontal surface at each timestep.
  
          Note that this is different from the direct_normal_irradiance needed
          to construct a Wea, which is NORMAL and not HORIZONTAL."""
          analysis_period = AnalysisPeriod(timestep=self.timestep,
                                           is_leap_year=self.is_leap_year)
          header_dhr = Header(data_type=DirectHorizontalIrradiance(),
                              unit='W/m2',
                              analysis_period=analysis_period,
                              metadata=self.metadata)
          direct_horiz = []
          sp = Sunpath.from_location(self.location)
          sp.is_leap_year = self.is_leap_year
          for dt, dnr in zip(self.datetimes, self.direct_normal_irradiance):
              sun = sp.calculate_sun_from_date_time(dt)
              direct_horiz.append(dnr * math.sin(math.radians(sun.altitude)))
          return HourlyContinuousCollection(header_dhr, direct_horiz)