def dc_model(self, model): # guess at model if None if model is None: self._dc_model, model = self.infer_dc_model() # Set model and validate parameters if isinstance(model, str): model = model.lower() if model in DC_MODEL_PARAMS.keys(): # validate module parameters missing_params = DC_MODEL_PARAMS[model] - \ set(self.system.module_parameters.keys()) if missing_params: # some parameters are not in module.keys() raise ValueError(model + ' selected for the DC model but ' 'one or more required parameters are ' 'missing : ' + str(missing_params)) if model == 'sapm': self._dc_model = self.sapm elif model == 'desoto': self._dc_model = self.desoto elif model == 'cec': self._dc_model = self.cec elif model == 'pvsyst': self._dc_model = self.pvsyst elif model == 'pvwatts': self._dc_model = self.pvwatts_dc else: raise ValueError(model + ' is not a valid DC power model') else: self._dc_model = partial(model, self)
def dc_model(self, model): # guess at model if None if model is None: self._dc_model, model = self.infer_dc_model() # Set model and validate parameters if isinstance(model, str): model = model.lower() if model in DC_MODEL_PARAMS.keys(): # validate module parameters missing_params = DC_MODEL_PARAMS[model] - \ set(self.system.module_parameters.keys()) if missing_params: # some parameters are not in module.keys() raise ValueError(model + ' selected for the DC model but ' 'one or more required parameters are ' 'missing : ' + str(missing_params)) if model == 'sapm': self._dc_model = self.sapm elif model == 'desoto': self._dc_model = self.desoto elif model == 'cec': self._dc_model = self.cec elif model == 'pvsyst': self._dc_model = self.pvsyst elif model == 'pvwatts': self._dc_model = self.pvwatts_dc elif model == 'singlediode': warnings.warn( 'DC model keyword singlediode used for ' 'ModelChain object. singlediode is ' 'ambiguous, use desoto instead. singlediode ' 'keyword will be removed in v0.7.0 and ' 'later', pvlibDeprecationWarning) self._dc_model = self.desoto else: raise ValueError(model + ' is not a valid DC power model') else: self._dc_model = partial(model, self)
def dc_model(self, model): # guess at model if None if model is None: self._dc_model, model = self.infer_dc_model() # Set model and validate parameters if isinstance(model, str): model = model.lower() if model in DC_MODEL_PARAMS.keys(): # validate module parameters missing_params = DC_MODEL_PARAMS[model] - \ set(self.system.module_parameters.keys()) if missing_params: # some parameters are not in module.keys() raise ValueError(model + ' selected for the DC model but ' 'one or more required parameters are ' 'missing : ' + str(missing_params)) if model == 'sapm': self._dc_model = self.sapm elif model == 'desoto': self._dc_model = self.desoto elif model == 'cec': self._dc_model = self.cec elif model == 'pvsyst': self._dc_model = self.pvsyst elif model == 'pvwatts': self._dc_model = self.pvwatts_dc elif model == 'singlediode': warnings.warn('DC model keyword singlediode used for ' 'ModelChain object. singlediode is ' 'ambiguous, use desoto instead. singlediode ' 'keyword will be removed in v0.7.0 and ' 'later', pvlibDeprecationWarning) self._dc_model = self.desoto else: raise ValueError(model + ' is not a valid DC power model') else: self._dc_model = partial(model, self)