def load_roi(self, infile, reload_sources=False, params=None, mask=None):
        """This function reloads the analysis state from a previously
        saved instance generated with
        `~fermipy.gtanalysis.GTAnalysis.write_roi`.

        Parameters
        ----------

        infile : str

        reload_sources : bool
           Regenerate source maps for non-diffuse sources.

        params : str
            Path to a yaml file with updated parameter values
        
        mask : str
            Path to a fits file with an updated mask

        """

        infile = utils.resolve_path(infile, workdir=self.workdir)
        roi_file, roi_data = utils.load_data(infile, workdir=self.workdir)

        self.logger.info('Loading ROI file: %s', roi_file)

        key_map = {'dfde': 'dnde',
                   'dfde100': 'dnde100',
                   'dfde1000': 'dnde1000',
                   'dfde10000': 'dnde10000',
                   'dfde_index': 'dnde_index',
                   'dfde100_index': 'dnde100_index',
                   'dfde1000_index': 'dnde1000_index',
                   'dfde10000_index': 'dnde10000_index',
                   'e2dfde': 'e2dnde',
                   'e2dfde100': 'e2dnde100',
                   'e2dfde1000': 'e2dnde1000',
                   'e2dfde10000': 'e2dnde10000',
                   'Npred': 'npred',
                   'Npred_wt': 'npred_wt',
                   'logLike': 'loglike',
                   'dlogLike': 'dloglike',
                   'emin': 'e_min',
                   'ectr': 'e_ctr',
                   'emax': 'e_max',
                   'logemin': 'loge_min',
                   'logectr': 'loge_ctr',
                   'logemax': 'loge_max',
                   'ref_dfde': 'ref_dnde',
                   'ref_e2dfde': 'ref_e2dnde',
                   'ref_dfde_emin': 'ref_dnde_e_min',
                   'ref_dfde_emax': 'ref_dnde_e_max',
                   }

        self._roi_data = utils.update_keys(roi_data['roi'], key_map)

        if 'erange' in self._roi_data:
            self._roi_data['loge_bounds'] = self._roi_data.pop('erange')

        self._loge_bounds = self._roi_data.setdefault('loge_bounds',
                                                      self.loge_bounds)

        sources = roi_data.pop('sources')
        sources = utils.update_keys(sources, key_map)
        for k0, v0 in sources.items():
            for k, v in defaults.source_flux_output.items():
                if k not in v0:
                    continue
                if v[2] == float and isinstance(v0[k], np.ndarray):
                    sources[k0][k], sources[k0][k + '_err'] \
                        = v0[k][0], v0[k][1]

        self.roi.load_sources(sources.values())
        for i, c in enumerate(self.components):
            if 'src_expscale' in self._roi_data['components'][i]:
                c._src_expscale = copy.deepcopy(self._roi_data['components']
                                                [i]['src_expscale'])

        self._create_likelihood(infile)
        self.set_energy_range(self.loge_bounds[0], self.loge_bounds[1])

        if params is not None:
            self.load_parameters_from_yaml(params)

        if mask is not None:
            self.set_weights_map(mask, update_roi=False)

        if reload_sources:
            names = [s.name for s in self.roi.sources if not s.diffuse]
            self.reload_sources(names, False)

        self.logger.info('Finished Loading ROI')
def load_roi ( self , infile , reload_sources = False , params = None , mask = None ) : infile = utils . resolve_path ( infile , workdir = self . workdir ) roi_file , roi_data = utils . load_data ( infile , workdir = self . workdir ) self . logger . info ( 'Loading ROI file: %s' , roi_file ) key_map = { 'dfde' : 'dnde' , 'dfde100' : 'dnde100' , 'dfde1000' : 'dnde1000' , 'dfde10000' : 'dnde10000' , 'dfde_index' : 'dnde_index' , 'dfde100_index' : 'dnde100_index' , 'dfde1000_index' : 'dnde1000_index' , 'dfde10000_index' : 'dnde10000_index' , 'e2dfde' : 'e2dnde' , 'e2dfde100' : 'e2dnde100' , 'e2dfde1000' : 'e2dnde1000' , 'e2dfde10000' : 'e2dnde10000' , 'Npred' : 'npred' , 'Npred_wt' : 'npred_wt' , 'logLike' : 'loglike' , 'dlogLike' : 'dloglike' , 'emin' : 'e_min' , 'ectr' : 'e_ctr' , 'emax' : 'e_max' , 'logemin' : 'loge_min' , 'logectr' : 'loge_ctr' , 'logemax' : 'loge_max' , 'ref_dfde' : 'ref_dnde' , 'ref_e2dfde' : 'ref_e2dnde' , 'ref_dfde_emin' : 'ref_dnde_e_min' , 'ref_dfde_emax' : 'ref_dnde_e_max' , } self . _roi_data = utils . update_keys ( roi_data [ 'roi' ] , key_map ) if 'erange' in self . _roi_data : self . _roi_data [ 'loge_bounds' ] = self . _roi_data . pop ( 'erange' ) self . _loge_bounds = self . _roi_data . setdefault ( 'loge_bounds' , self . loge_bounds ) sources = roi_data . pop ( 'sources' ) sources = utils . update_keys ( sources , key_map ) for k0 , v0 in sources . items ( ) : for k , v in defaults . source_flux_output . items ( ) : if k not in v0 : continue if v [ 2 ] == float and isinstance ( v0 [ k ] , np . ndarray ) : sources [ k0 ] [ k ] , sources [ k0 ] [ k + '_err' ] = v0 [ k ] [ 0 ] , v0 [ k ] [ 1 ] self . roi . load_sources ( sources . values ( ) ) for i , c in enumerate ( self . components ) : if 'src_expscale' in self . _roi_data [ 'components' ] [ i ] : c . _src_expscale = copy . deepcopy ( self . _roi_data [ 'components' ] [ i ] [ 'src_expscale' ] ) self . _create_likelihood ( infile ) self . set_energy_range ( self . loge_bounds [ 0 ] , self . loge_bounds [ 1 ] ) if params is not None : self . load_parameters_from_yaml ( params ) if mask is not None : self . set_weights_map ( mask , update_roi = False ) if reload_sources : names = [ s . name for s in self . roi . sources if not s . diffuse ] self . reload_sources ( names , False ) self . logger . info ( 'Finished Loading ROI' )
This function reloads the analysis state from a previously
        saved instance generated with
        `~fermipy.gtanalysis.GTAnalysis.write_roi`.

        Parameters
        ----------

        infile : str

        reload_sources : bool
           Regenerate source maps for non-diffuse sources.

        params : str
            Path to a yaml file with updated parameter values
        
        mask : str
            Path to a fits file with an updated mask