breos.solar.calculate_pv_production_dc#

breos.solar.calculate_pv_production_dc(weather_data, location, tilt, surface_azimuth, n_modules, pv_params=None, freq='h', degradation_rate=0.0, current_year=None, start_year=None, verbose=False, loss_overrides=None, transposition_model='isotropic', albedo=None, surface_type=None, model_perez='allsitescomposite1990')[source]#

Calculate PV DC production from weather data (fixed-tilt array).

Returns DC power BEFORE inverter conversion. Use dc_to_ac() to convert to AC power for grid export or AC loads.

For DC-coupled battery systems: - Use DC output directly for battery charging (apply only charge efficiency) - Use dc_to_ac() for power going to AC loads or grid

System losses: DEFAULT_PVWATTS_LOSSES (~14.1% combined: soiling 2, shading 3, mismatch 2, wiring 2, connections 0.5, LID 1.5, nameplate 1, availability 3) are always applied via pvlib’s pvwatts_losses; inverter conversion is NOT included here. Pass loss_overrides to change individual components (percent), e.g. {"shading": 0.0}.

Parameters:
  • weather_data (DataFrame) – DataFrame with weather variables (must include ghi/dni/dhi or shortwave_radiation)

  • location (Location) – pvlib Location object

  • tilt (float) – Panel tilt angle (degrees)

  • surface_azimuth (float) – Panel azimuth (degrees, 180=South)

  • n_modules (int) – Number of PV modules

  • pv_params (Optional[PVModuleParams]) – PV module parameters (uses defaults if None)

  • freq (str) – Time frequency (‘h’ or ‘15min’)

  • degradation_rate (float) – Annual degradation rate (0.005 = 0.5%/year)

  • current_year (Optional[int]) – Current simulation year (for age-based degradation)

  • start_year (Optional[int]) – Year system was installed (for age calculation)

  • verbose (bool) – Whether to print production summary

  • loss_overrides (Optional[Dict[str, float]]) – Per-component PVWatts loss overrides (percent)

  • transposition_model (str) – Sky-diffusion model for POA transposition (one of TRANSPOSITION_MODELS); defaults to "isotropic".

  • albedo (Optional[float]) – Ground reflectance (0-1) for the ground-diffuse component; None uses pvlib’s 0.25 default. Mutually exclusive with surface_type.

  • surface_type (Optional[str]) – Named ground cover (one of SURFACE_TYPES) mapped to an albedo by pvlib; an alternative to albedo.

  • model_perez (str) – Perez coefficient set (one of PEREZ_MODELS); only used when transposition_model is "perez".

Return type:

Series

Returns:

pd.Series with DC power production in Watts (before inverter)