Esempio n. 1
0
def load_dmodel_common(cls, info, ndim, dataset, dataset_cls):
    desc = parseutils.make_typed_desc(cls, 'dmodel')
    info = copy.deepcopy(info)
    if dataset:
        dataset_desc = parseutils.make_typed_desc(dataset_cls, 'dataset')
        if not isinstance(dataset, dataset_cls):
            raise RuntimeError(
                f"{desc} "
                f"is not compatible with "
                f"{dataset_desc}")
        info.update(dict(
            size=dataset.size(),
            step=info.get('step', dataset.step()),
            rpix=info.get('rpix', dataset.rpix()),
            rval=info.get('rval', dataset.rval()),
            rota=info.get('rota', dataset.rota()),
            dtype=info.get('dtype', str(dataset.dtype))))
    opts = parseutils.parse_options_for_callable(info, desc, cls.__init__)
    for attr in ['size', 'step', 'cval', 'scale']:
        if attr in opts:
            opts[attr] = opts[attr][:ndim]
    if 'dtype' in opts:
        opts['dtype'] = np.dtype(opts['dtype']).type
    if 'psf' in opts:
        opts['psf'] = gbkfit.psflsf.psf_parser.load(opts['psf'])
    if 'lsf' in opts:
        opts['lsf'] = gbkfit.psflsf.lsf_parser.load(opts['lsf'])
    return opts
Esempio n. 2
0
 def load(cls, info):
     desc = parseutils.make_typed_desc(cls, 'gmodel component')
     opts = parseutils.parse_options_for_callable(info, desc, cls.__init__)
     opts.update(
         dict(rptraits=traits.rpt_parser.load(opts.get('rptraits')),
              sptraits=traits.spt_parser.load(opts.get('sptraits')),
              wptraits=traits.wpt_parser.load(opts.get('wptraits'))))
     return cls(**opts)
Esempio n. 3
0
 def load(cls, info, **kwargs):
     info = _parse_min_and_max(info, **kwargs)
     desc = parseutils.make_typed_desc(cls, 'prior')
     opts = parseutils.parse_options_for_callable(
         info, desc, cls.__init__, fun_rename_args=dict(
             minimum='min',
             maximum='max'))
     return cls(**opts)
Esempio n. 4
0
 def load(cls, info):
     desc = parseutils.make_typed_desc(cls, 'fitter')
     opts = parseutils.parse_options_for_callable(info, desc, cls.__init__)
     if 'crossover' in opts:
         opts['crossover'] = pymooutils.crossover_parser.load(
             opts['crossover'])
     if 'mutation' in opts:
         opts['mutation'] = pymooutils.mutation_parser.load(
             opts['mutation'])
     if 'selection' in opts:
         opts['selection'] = pymooutils.selection_parser.load(
             opts['selection'])
     if 'termination' in opts:
         opts['termination'] = pymooutils.termination_parser.load(
             opts['termination'])
     return cls(**opts)
Esempio n. 5
0
File: core.py Progetto: bek0s/gbkfit
    def __init__(self, data):
        desc = parseutils.make_typed_desc(self.__class__, 'dataset')
        # At least one data item must be defined
        if not data:
            raise RuntimeError(f"{desc} contains no data items")

        if all([v is None for v in data.values()]):
            raise RuntimeError()

        # All data items must have the same properties
        _ensure_same_attrib_value(data, 'size', desc)
        _ensure_same_attrib_value(data, 'step', desc)
        _ensure_same_attrib_value(data, 'rpix', desc)
        _ensure_same_attrib_value(data, 'rval', desc)
        _ensure_same_attrib_value(data, 'rota', desc)
        _ensure_same_attrib_value(data, 'dtype', desc)
        # We need to copy the data to ensure they are kept intact
        self._data = copy.deepcopy(data)
Esempio n. 6
0
def load_dataset_common(cls, info, names, **kwargs):
    prefix = kwargs.get('prefix', '')
    desc = parseutils.make_typed_desc(cls, 'dataset')
    opts = parseutils.parse_options_for_callable(
        info,
        desc,
        cls.__init__,
        add_optional=['step', 'rpix', 'rval', 'rota'])
    step = opts.pop('step', None)
    rpix = opts.pop('rpix', None)
    rval = opts.pop('rval', None)
    rota = opts.pop('rota', None)
    for name in names:
        if name in opts:
            opts[name] = data_parser.load(opts[name],
                                          step,
                                          rpix,
                                          rval,
                                          rota,
                                          prefix=prefix)
    return opts
Esempio n. 7
0
 def load(cls, info):
     desc = parseutils.make_typed_desc(cls, 'fitter')
     opts = parseutils.parse_options_for_callable(info, desc, cls.__init__)
     opts.update(moves=load_moves_with_weights(opts.get('moves')))
     return cls(**opts)
Esempio n. 8
0
 def load(cls, info):
     desc = parseutils.make_typed_desc(cls, 'fitter')
     opts = parseutils.parse_options_for_callable(info, desc, cls.__init__)
     return cls(**opts)
Esempio n. 9
0
 def load(cls, info):
     desc = parseutils.make_typed_desc(cls, 'gmodel')
     opts = parseutils.parse_options_for_callable(info, desc, cls.__init__)
     opts.update(components=_dcmp_parser.load(info['components']))
     return cls(**opts)
Esempio n. 10
0
File: psfs.py Progetto: bek0s/gbkfit
def _load_psf_common(cls, info):
    desc = parseutils.make_typed_desc(cls, 'PSF')
    return parseutils.parse_options_for_callable(info, desc, cls.__init__)