Guest User

Untitled

a guest
Jun 24th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. # in ModelChain
  2. def __init__(..., singlediode_calcparams_model=None)
  3. # calls setters
  4. self.singlediode_calcparams_model = singlediode_calcparams_model
  5.  
  6. @property
  7. def singlediode_calcparams_model(self):
  8. return self._singlediode_calcparams_model
  9.  
  10. @singlediode_calcparams_model.setter
  11. def singlediode_calcparams_model(self, model):
  12. if model is None:
  13. self._singlediode_calcparams_model = self.infer_singlediode_calcparams_model()
  14. elif isinstance(model, str):
  15. model = model.lower()
  16. if model == 'desoto':
  17. self._singlediode_calcparams_model = self.calcparams_desoto
  18. elif model == 'pvsyst':
  19. self._singlediode_calcparams_model = self.calcparams_pvsyst
  20. else:
  21. raise ValueError(model + ' is not a valid calcparams power model')
  22. else:
  23. self._singlediode_calcparams_model = partial(model, self)
  24.  
  25. def infer_singlediode_calcparams_model(self):
  26. params = set(self.system.module_parameters.keys())
  27. if set([desoto_params_list]) <= params:
  28. return self.calcparams_desoto
  29. elif set([pvsyst_params_list]) <= params:
  30. return self.calcparams_pvsyst
  31. else:
  32. raise ValueError('could not infer calcparams model from '
  33. 'system.module_parameters')
  34.  
  35. def calcparams_desoto(self):
  36. self.singlediode_params = self.system.calcparams_desoto(self.effective_irradiance,
  37. self.temps['temp_cell']))
  38. return self
  39.  
  40. def calcparams_pvsyst(self):
  41. self.singlediode_params = self.system.calcparams_pvsyst(self.effective_irradiance,
  42. self.temps['temp_cell']))
  43. return self
  44.  
  45. def singlediode(self):
  46. # removed call to self.system.calcparams_desoto
  47. # removed assignment to self.desoto
  48.  
  49. self.dc = self.system.singlediode(*self.singlediode_params)
  50.  
  51. self.dc = self.system.scale_voltage_current_power(self.dc).fillna(0)
  52.  
  53. return self
Add Comment
Please, Sign In to add comment