Set the project, the company, and the location
Everything downstream keys off three things you enter here: site latitude/longitude (GPS or manual), the hemisphere sweep direction it auto-derives, and the customer/company details that later print on the report.
- GPS or manual lat/lon sets which way the sun actually moves at your site — this alone decides whether your Capture-Site sweep should go East→South→West (northern hemisphere) or East→North→West (southern hemisphere).
- Calculate best tilt angle here runs on this location too — it's a placeholder until Import Resource (step 3) gives it real irradiance data to optimize against.
Building height, parapet, and the obstruction-distance field
Three numbers here quietly control how obstructions get sized and how much edge clearance the tool later recommends:
| Field | What it actually does |
|---|---|
| Height above ground (roof height, m) | Sets the observer's absolute height for converting marked angles into real-world obstruction heights. |
| Roof parapet height (m) | Feeds the Site Area tab's auto-recommended edge setback, so the parapet doesn't shade its own first panel row. |
| Assumed distance to obstructions (m) | Only used to display an estimated obstruction height — not used in the shading math itself. |
Pull real weather data for the site (PVGIS TMY)
One click fetches a Typical Meteorological Year dataset for your exact lat/lon from PVGIS — monthly GHI (global horizontal irradiance), Diffuse irradiance, and a calculated POA (plane-of-array) value per month.
I_beam,tilt = (GHI − DHI) × R_b
I_diffuse,tilt = DHI × (1 + cos β) / 2
I_ground = GHI × ρ × (1 − cos β) / 2
β = panel tilt angle · ρ = ground albedo (≈0.2 typical) · Rb = beam tilt factor from the sun's incidence angle at that hour.
Record the horizon: sweep video, fisheye, or LiDAR
This is where obstructions actually get measured, by one of three methods:
- Sweep video — pan steadily east → south → west (or east → north → west, south of the equator), tapping the top edge of each obstruction. Azimuth comes from where you are in the pan; elevation from where you tap vertically.
- Fisheye / 180° sky photo — one hemispherical shot straight up from the panel location, calibrated once (lens projection + zenith + horizon + compass bearing), then click obstructions directly on the photo.
- LiDAR import — CSV/JSON export from a LiDAR-capable scanner, with azimuth, elevation, and optional height per point.
- Start the clip exactly facing east, end exactly facing west (or east→north→west south of the equator) for the best angular accuracy.
- Pan at a steady speed — azimuth is inferred from playback position, so a jerky pan distorts the angle mapping.
- AI auto-detect / auto-scan flags obstructions above 10° elevation automatically; still spot-check the flagged frames.
Trace the roof, place panels, set the edge setback
Walk the perimeter with GPS or draw it on the grid, then place panels inside the traced boundary.
Edge setback is the clearance kept between the roof edge or parapet and the first panel row. It exists for two reasons: (1) walkway/fire-code access, and (2) so the parapet's own shadow — worst-case at the lowest workable winter sun angle — never falls across your first row of modules.
In plain terms: rather than a fixed rule like "tilt = latitude," the tool tries a range of tilt angles against your actual imported irradiance data and keeps whichever produces the highest annual POA total.tilt = argmaxβ [ Σmonths POA(β) ] — swept β = 0°…90°, scored against the imported TMY data
Sun path, shade-free hours, losses, and the final kWh numbers
Sun path diagram with obstructions
X-axis = compass azimuth (N→N), Y-axis = sun altitude. Three curves plot the sun's position across summer solstice, winter solstice, and equinox; your marked obstruction points overlay as a grey "skyline."
cos(A) = [ sin(δ) − sin(α)sin(φ) ] / [ cos(α)cos(φ) ]
α = sun altitude · A = azimuth · δ = solar declination (day-of-year dependent) · φ = site latitude · H = hour angle.
Shade-free assessment
Run as an hour-by-hour simulation across a full year:
- Compute sun altitude/azimuth for every hour of the year at the site's lat/lon.
- Interpolate your marked obstruction skyline to get its elevation at that hour's sun azimuth.
- If sun altitude ≤ obstruction elevation → that hour counts as shaded.
- Aggregate shaded vs. unshaded hours into a monthly/annual shading-loss percentage, applied mainly to the beam (direct) component of POA.
DC energy — EDC
∏(1−Li) multiplies through IAM loss, soiling, module mismatch, DC wiring loss, temperature loss (module temp-coefficient against estimated cell temperature), and the hourly shading factor above.
AC energy — EAC (with inverter clipping)
EAC_final = min( EAC , P_AC,rated × hours_in month )
DISCOM settlement cycle
In calendar order (Jan→Dec), but the table displays and banks in India's Apr→Mar net-metering cycle. The banking walk 0 at the top of the cycle, i.e. April
Monthly kWh (Net) and Bill Saving %
(negative = surplus/export, adds to the bank · positive = shortfall still drawn from grid, Bank pays what it can, the rest is real grid draw)
Covered by banked surplus: The shortfall is fully paid out of the bank. So the bank only ever gets drawn down, never goes negative, and it carries forward month-to-month within the same cycle — a July surplus can cover a December shortfall, for instance.
This is the simple annual net, independent of the month-by-month banking walk above (banking only affects how each individual month is labeled, not this bottom-line total).
Income from DISCOM (Net Metering)
This only pays out on the year-end net position, not on individual exporting months.
Printing the report — and what it's actually good for
The Report tab compiles annual results, the sun-path chart, the polar chart, the projected installation area, and the monthly table into a print-ready PDF (proposal-<customer name>.pdf).
Acceptable for government / industry submission?
- Good fit — customer-facing feasibility quotes, rooftop net-metering applications, PM Surya Ghar–style subsidy paperwork, and internal go/no-go screening.
- Not a full substitute — bank-financed or utility-scale industrial projects simulate by PVsyst / IST PVSolar Simulator bankability reports with P50/P90 uncertainty bands. A phone-sweep angle capture is a good proxy, not a certified instrument like Solar Pathfinder or Solmetric SunEye.
Overall accuracy
The underlying physics — solar geometry, POA transposition, hourly shading — is standard and sound. The accuracy ceiling comes from inputs, not method:
- TMY-based POA: typically ±5–10% vs. any single actual year.
- Phone-sweep angles: a few degrees of elevation error is normal, which matters most near sunrise/sunset hours.
- Loss factors (soiling, mismatch, temperature) are user-entered assumptions, so results are only as good as those entries.