def __init__(self, sun_vectors, sun_up_hours):
        """Radiance-based analemma.

        Args:
            sun_vectors: A list of sun vectors as (x, y, z).
            sun_up_hours: List of hours of the year that corresponds to sun_vectors.
        """
        RadianceSky.__init__(self)
        vectors = sun_vectors or []
        # reverse sun vectors
        self._sun_vectors = tuple(tuple(v) for v in vectors)
        self._sun_up_hours = sun_up_hours
        assert len(sun_up_hours) == len(vectors), \
            ValueError(
                'Length of vectors [%d] does not match the length of hours [%d]' %
                (len(vectors), len(sun_up_hours))
        )