Configure the project and experiments

        Parameters
        ----------
        global_config: bool
            If True/set, the configuration are applied globally (already
            existing and configured experiments are not impacted)
        project_config: bool
            Apply the configuration on the entire project instance instead of
            only the single experiment (already existing and configured
            experiments are not impacted)
        ifile: str
            The input file for the project. Must be a netCDF file with
            population data
        forcing: str
            The input file for the project containing variables with population
            evolution information. Possible variables in the netCDF file are
            *movement* containing the number of people to move and *change*
            containing the population change (positive or negative)
        serial: bool
            Do the parameterization always serial (i.e. not in parallel on
            multiple processors). Does automatically impact global settings
        nprocs: int or 'all'
            Maximum number of processes to when making the parameterization in
            parallel. Does automatically impact global settings and disables
            `serial`
        update_from: str
            Path to a yaml configuration file to update the specified
            configuration with it
        ``**kwargs``
            Other keywords for the :meth:`app_main` method

def configure(self, global_config=False, project_config=False, ifile=None,
                  forcing=None, serial=False, nprocs=None, update_from=None,
                  **kwargs):
        """
        Configure the project and experiments

        Parameters
        ----------
        global_config: bool
            If True/set, the configuration are applied globally (already
            existing and configured experiments are not impacted)
        project_config: bool
            Apply the configuration on the entire project instance instead of
            only the single experiment (already existing and configured
            experiments are not impacted)
        ifile: str
            The input file for the project. Must be a netCDF file with
            population data
        forcing: str
            The input file for the project containing variables with population
            evolution information. Possible variables in the netCDF file are
            *movement* containing the number of people to move and *change*
            containing the population change (positive or negative)
        serial: bool
            Do the parameterization always serial (i.e. not in parallel on
            multiple processors). Does automatically impact global settings
        nprocs: int or 'all'
            Maximum number of processes to when making the parameterization in
            parallel. Does automatically impact global settings and disables
            `serial`
        update_from: str
            Path to a yaml configuration file to update the specified
            configuration with it
        ``**kwargs``
            Other keywords for the :meth:`app_main` method"""
        if global_config:
            d = self.config.global_config
        elif project_config:
            self.app_main(**kwargs)
            d = self.config.projects[self.projectname]
        else:
            d = self.config.experiments[self.experiment]

        if ifile is not None:
            d['input'] = osp.abspath(ifile)
        if forcing is not None:
            d['forcing'] = osp.abspath(forcing)

        if update_from is not None:
            with open('update_from') as f:
                d.update(yaml.load(f))

        global_config = self.config.global_config
        if serial:
            global_config['serial'] = True
        elif nprocs:
            nprocs = int(nprocs) if nprocs != 'all' else nprocs
            global_config['serial'] = False
            global_config['nprocs'] = nprocs