def __init__(self, a0=<NUM_LIT>, a2=<NUM_LIT>, ai=None, **kwargs):
if ai is None:<EOL><INDENT>no_albedo_feedback = True<EOL>ai = <NUM_LIT:0.> <EOL><DEDENT>else:<EOL><INDENT>no_albedo_feedback = False<EOL><DEDENT>super(EBM_seasonal, self).__init__(a0=a0, a2=a2, ai=ai, **kwargs)<EOL>self.param['<STR_LIT>'] = a0<EOL>self.param['<STR_LIT>'] = a2<EOL>sfc = self.domains['<STR_LIT>']<EOL>ins = DailyInsolation(domains=sfc, **self.param)<EOL>if no_albedo_feedback:<EOL><INDENT>_ = self.param.pop('<STR_LIT>')<EOL>_ = self.param.pop('<STR_LIT>')<EOL>alb = albedo.P2Albedo(domains=sfc, **self.param)<EOL><DEDENT>else:<EOL><INDENT>self.param['<STR_LIT>'] = ai<EOL>alb = albedo.StepFunctionAlbedo(state=self.state, **self.param)<EOL><DEDENT>sw = SimpleAbsorbedShortwave(state=self.state,<EOL>insolation=ins.insolation,<EOL>albedo=alb.albedo,<EOL>**self.param)<EOL>self.add_subprocess('<STR_LIT>', ins)<EOL>self.add_subprocess('<STR_LIT>', alb)<EOL>self.add_subprocess('<STR_LIT>', sw)<EOL>
A class that implements Energy Balance Models with realistic
        daily insolation.

        This class is inherited from the general :class:`~climlab.EBM`
        class and uses the insolation subprocess
        :class:`~climlab.radiation.DailyInsolation` instead of
        :class:`~climlab.radiation.P2Insolation` to compute a
        realisitc distribution of solar radiation on a daily basis.

        If argument for ice albedo ``'ai'`` is not given, the model will not
        have an albedo feedback.

        An instance of ``EBM_seasonal`` is initialized with the following
        arguments:

        :param float a0:            base value for planetary albedo parametrization
                                    :class:`~climlab.surface.albedo.StepFunctionAlbedo`
                                    [default: 0.33]
        :param float a2:            parabolic value for planetary  albedo parametrization
                                    :class:`~climlab.surface.albedo.StepFunctionAlbedo`
                                    [default: 0.25]
        :param float ai:            value for ice albedo paramerization in
                                    :class:`~climlab.surface.albedo.StepFunctionAlbedo`
                                    (optional)


        **Object attributes** \n

        Following object attributes are updated during initialization: \n

        :ivar dict param:       The parameter dictionary is updated with
                                ``'a0'`` and ``'a2'``.
        :ivar dict subprocess:  suprocess ``'insolation'`` is overwritten by
                                :class:`~climlab.radiation.insolation.DailyInsolation`.

        *if* ``'ai'`` *is not given*:

        :ivar dict param:       ``'ai'`` and ``'Tf'`` are removed from the
                                parameter dictionary (initialized by parent class
                                :class:`~climlab.model.ebm.EBM`)
        :ivar dict subprocess:  suprocess ``'albedo'`` is overwritten by
                                :class:`~climlab.surface.albedo.P2Albedo`.

        *if* ``'ai'`` *is given*:

        :ivar dict param:       The parameter dictionary is updated with
                                ``'ai'``.
        :ivar dict subprocess:  suprocess ``'albedo'`` is overwritten by
                                :class:`~climlab.surface.albedo.StepFunctionAlbedo`
                                (which basically has been there before but now is
                                updated with the new albedo parameter values).
        :Example:

            The annual distribution of solar insolation:

            .. plot:: code_input_manual/example_EBM_seasonal.py
                :include-source: