- Pydantic schemas: SolarConfig, WindConfig, BessConfig, GenerationResult - Catalog: synthetic 8760h profiles for RJ/KA/GJ solar and wind; LRU-cached loader - generation/solar.py: 25yr hourly simulation (DC losses, inverter, clipping, soiling, degradation) - generation/wind.py: power-law shear, piecewise power curve, wake/electrical losses, degradation - generation/bess_state.py: SOH-based capacity degradation with augmentation schedule - CLI: remodel --input scenario.json --output gen.parquet (Typer upgraded to 0.25.1 for Click 8.3 compat) - 43 unit tests, 97.4% coverage; mypy strict + ruff clean - S1-T10 parity gate: placeholder fixture + skipped integration tests (awaiting Nagasamudra data) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
34 lines
947 B
JSON
34 lines
947 B
JSON
{
|
|
"_comment": "PLACEHOLDER — replace with real Nagasamudra project inputs before parity gate.",
|
|
"_status": "AWAITING_USER_DATA",
|
|
"solar": {
|
|
"location_id": "KA",
|
|
"capacity_dc_mwp": 600.0,
|
|
"capacity_ac_mw": 400.0,
|
|
"dc_loss_fraction": 0.02,
|
|
"inverter_efficiency": 0.97,
|
|
"ac_loss_fraction": 0.01,
|
|
"availability_fraction": 0.98,
|
|
"soiling_fraction": 0.02,
|
|
"degradation_y1": 0.007,
|
|
"degradation_annual": 0.005
|
|
},
|
|
"wind": {
|
|
"location_id": "KA",
|
|
"capacity_mw": 300.0,
|
|
"hub_height_m": 140.0,
|
|
"ref_height_m": 100.0,
|
|
"wind_shear_exponent": 0.14,
|
|
"wake_loss_fraction": 0.05,
|
|
"electrical_loss_fraction": 0.02,
|
|
"availability_fraction": 0.97,
|
|
"degradation_annual": 0.002
|
|
},
|
|
"_expected": {
|
|
"_note": "Fill these from the Excel model output for the parity gate",
|
|
"solar_y1_cuf": null,
|
|
"wind_y1_plf": null,
|
|
"solar_y1_mwh": null,
|
|
"wind_y1_mwh": null
|
|
}
|
|
}
|