示例#1
0
    def __init__(self, parent):
        from gammapy.datasets import Dataset, Datasets

        if isinstance(parent, Dataset):
            self._datasets = [parent]
            self._is_dataset = True
        elif isinstance(parent, Datasets):
            self._datasets = parent._datasets
            self._is_dataset = False
        else:
            raise TypeError(f"Invalid type: {type(parent)!r}")

        unique_models = []
        for d in self._datasets:
            if d._models is not None:
                for model in d._models:
                    if model not in unique_models:
                        if (model.datasets_names is None
                                or d.name in model.datasets_names):
                            unique_models.append(model)
            else:
                d._models = Models([])
            self._models = unique_models

        if self._is_dataset == False:
            self.force_models_consistency()

        self._covar_file = None
        self._covariance = Covariance(self.parameters)
示例#2
0
    def covariance(self):
        for par in self.parameters:
            pars = Parameters([par])
            covar = Covariance(pars, data=[[par.error ** 2]])
            self._covariance.set_subcovariance(covar)

        return self._covariance
示例#3
0
def covariance_diagonal():
    x = Parameter("x", 1, error=0.1)
    y = Parameter("y", 2, error=0.2)
    z = Parameter("z", 3, error=0.3)

    parameters = Parameters([x, y, z])
    return Covariance(parameters=parameters)
示例#4
0
文件: core.py 项目: mdebony/gammapy
    def covariance(self):
        self._check_covariance()
        for par in self.parameters:
            pars = Parameters([par])
            error = np.nan_to_num(par.error**2, nan=1)
            covar = Covariance(pars, data=[[error]])
            self._covariance.set_subcovariance(covar)

        return self._covariance
示例#5
0
文件: core.py 项目: mdebony/gammapy
    def __init__(self, **kwargs):
        # Copy default parameters from the class to the instance
        default_parameters = self.default_parameters.copy()

        for par in default_parameters:
            value = kwargs.get(par.name, par)

            if not isinstance(value, Parameter):
                par.quantity = u.Quantity(value)
            else:
                par = value

            setattr(self, par.name, par)
        self._covariance = Covariance(self.parameters)
示例#6
0
文件: core.py 项目: mdebony/gammapy
    def __init__(self, models=None):
        if models is None:
            models = []

        if isinstance(models, (Models, DatasetModels)):
            models = models._models
        elif isinstance(models, Model):
            models = [models]
        elif not isinstance(models, list):
            raise TypeError(f"Invalid type: {models!r}")

        unique_names = []
        for model in models:
            if model.name in unique_names:
                raise (ValueError("Model names must be unique"))
            unique_names.append(model.name)

        self._models = models
        self._covar_file = None
        self._covariance = Covariance(self.parameters)
示例#7
0
文件: core.py 项目: mdebony/gammapy
 def _check_covariance(self):
     if not self.parameters == self._covariance.parameters:
         self._covariance = Covariance(self.parameters)
示例#8
0
def covariance(covariance_diagonal):
    x = covariance_diagonal.parameters["x"]
    y = covariance_diagonal.parameters["y"]
    parameters = Parameters([x, y])
    data = np.ones((2, 2))
    return Covariance(parameters=parameters, data=data)