Steps one row of flush panels across the arc, calls PVWatts (system_capacity=1 → ac_annual = kWh/kW) at each row's tilt+azimuth, returns the kW-weighted mean. Must be served over http (CORS): python3 -m http.server 8080 then open http://localhost:8080/curved_roof_yield.html.