def draw_sunpath(self,<EOL>hoys=None,<EOL>origin=None,<EOL>scale=<NUM_LIT:1>, sun_scale=<NUM_LIT:1>, annual=True, rem_night=True):
<EOL>assert ladybug.isplus,'<STR_LIT>'<EOL>hoys = hoys or ()<EOL>origin = origin or (<NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>)<EOL>try:<EOL><INDENT>origin = tuple(origin)<EOL><DEDENT>except TypeError as e:<EOL><INDENT>try:<EOL><INDENT>origin = origin.X, origin.Y, origin.Z<EOL><DEDENT>except AttributeError:<EOL><INDENT>raise TypeError(str(e))<EOL><DEDENT><DEDENT>scale = scale or <NUM_LIT:1><EOL>sun_scale = sun_scale or <NUM_LIT:1><EOL>assert annual or hoys, '<STR_LIT>'<EOL>radius = <NUM_LIT:200> * scale<EOL>base_curves = plus.base_curves(origin, radius, self.north_angle)<EOL>if annual:<EOL><INDENT>asuns = self._analemma_suns()<EOL>analemma_curves = plus.analemma_curves(asuns, origin, radius)<EOL><DEDENT>else:<EOL><INDENT>analemma_curves = ()<EOL><DEDENT>if hoys:<EOL><INDENT>suns = tuple(self.calculate_sun_from_hoy(hour) for hour in hoys)<EOL><DEDENT>else:<EOL><INDENT>suns = ()<EOL><DEDENT>if rem_night:<EOL><INDENT>suns = tuple(sun for sun in suns if sun.is_during_day)<EOL><DEDENT>sun_geos = plus.sun_geometry(suns, origin, radius)<EOL>if annual:<EOL><INDENT>dts = (DateTime(m, <NUM_LIT>) for m in xrange(<NUM_LIT:1>, <NUM_LIT>))<EOL><DEDENT>else:<EOL><INDENT>dts = (sun.datetime for sun in suns)<EOL><DEDENT>dsuns = self._daily_suns(dts)<EOL>daily_curves = plus.daily_curves(dsuns, origin, radius)<EOL>SPGeo = namedtuple(<EOL>'<STR_LIT>',<EOL>('<STR_LIT>',<EOL>'<STR_LIT>',<EOL>'<STR_LIT>',<EOL>'<STR_LIT>',<EOL>'<STR_LIT>'))<EOL>return SPGeo(base_curves, analemma_curves, daily_curves, suns, sun_geos)<EOL>
Create sunpath geometry. \
        This method should only be used from the + libraries.

        Args:
            hoys: An optional list of hours of the year(default: None).
            origin: Sunpath origin(default: (0, 0, 0)).
            scale: Sunpath scale(default: 1).
            sun_scale: Scale for the sun spheres(default: 1).
            annual: Set to True to draw an annual sunpath.
                Otherwise a daily sunpath is drawn.
            rem_night: Remove suns which are under the horizon(night!).
        Returns:
            base_curves: A collection of curves for base plot.
            analemma_curves: A collection of analemma_curves.
            daily_curves: A collection of daily_curves.
            suns: A list of suns.