Rooftop solar panel penetration mapping for property intelligence
Very-high-resolution optical imagery reveals rooftop photovoltaic installations through their distinctive spectral signature, letting valuers and grid planners quantify solar penetration across entire property portfolios without a single site visit.
Sensors
- Maxar WorldView-3: 0.31 m panchromatic GSD, 1.24 m multispectral across eight VNIR bands including a dedicated near-infrared band where crystalline silicon absorbs strongly. Revisit approximately 1–4.5 days depending on latitude and tasking priority. The combination of sub-metre colour and SWIR bands (eight bands, 3.7 m GSD) allows spectral unmixing of mixed-material rooftops.
- Airbus Pléiades Neo: 0.30 m native GSD in panchromatic, 1.2 m in four multispectral bands (blue, green, red, near-infrared). Daily revisit capacity over most urban areas. The near-infrared band is the primary discriminator for silicon PV; the 0.30 m GSD sits at the practical minimum for resolving individual residential panels of roughly 1.6 m × 1 m.
- Planet SkySat: 0.50 m panchromatic, approximately 0.72 m colour. Slightly coarser than WorldView-3 or Pléiades Neo, which means smaller panels on residential rooftops can be missed or under-counted; better suited to large commercial arrays where individual panels exceed 1 m in both dimensions. On-demand tasking with same-day revisit possible.
- Airbus SPOT 7: 1.5 m panchromatic, 6 m multispectral. Too coarse for panel-level detection on residential stock; useful only for flagging large commercial or industrial rooftop arrays and for producing area-level penetration indices at district or regional scale where per-panel count is not required.
What a silicon panel gives away spectrally
Crystalline silicon photovoltaic cells are engineered to absorb photons, not scatter them. In the red band (roughly 630–690 nm) and the near-infrared (750–900 nm), a clean panel reflects 5–10 % of incoming radiance, compared with 15–30 % for roofing felt and 40–60 % for bare concrete or light-coloured membrane roofing. That contrast is the detection mechanism. A normalised difference vegetation index computed on a rooftop is not looking for plants; it is exploiting the same band arithmetic to find surfaces that absorb NIR strongly, which in an urban scene means either dense vegetation or PV panels.
Texture breaks the remaining ambiguity. Panels have a regular, rectangular grid structure at sub-metre resolution. Roofing felt is spectrally similar in some conditions but lacks that geometric regularity. Skylights are also dark in NIR but are typically isolated, smaller, and framed by bright flashing. A classifier trained on spectral index plus local binary pattern or Gabor texture features can separate these three classes with published F1 scores above 0.90 on held-out urban test sets, though performance degrades on heavily soiled or shaded panels.
The 30 cm floor: why resolution is not a preference but a requirement
A standard residential PV module is approximately 1.65 m × 1 m. At 0.50 m GSD (SkySat), that module covers roughly three by two pixels in the colour image. Detection is possible for well-lit, clean panels on south-facing pitches, but sub-panel spectral variation, shadow from adjacent panels, and panel-edge confusion with flashing reduce accuracy meaningfully. At 0.30 m GSD (Pléiades Neo, WorldView-3), the same module covers five by three pixels, which is enough to capture the interior spectral signature without edge contamination.
Below 0.30 m GSD, the physics works; above 1.5 m GSD (SPOT 7, Sentinel-2), individual residential panels are sub-pixel and cannot be detected directly. Sentinel-2 at 10 m is occasionally used to flag dense solar districts by looking for anomalously low NIR reflectance across whole roof clusters, but that is a penetration index, not a panel count. Buyers should be clear which product they actually need: a count of installations, an estimated installed capacity, or a district-level penetration rate. Each has a different minimum sensor requirement and a different price point.
From pixel to property record: the classification pipeline
The standard workflow runs in four stages. First, a building-footprint mask is applied so the classifier only examines rooftop pixels, suppressing ground-mounted arrays and false positives from dark-coloured vehicles. Footprints come from OpenStreetMap, national cadastral datasets, or are derived from the imagery itself using a separate roof segmentation model. Second, a spectral index layer (typically a modified bare-soil index inverted for dark surfaces, or a purpose-built PV index) is computed per pixel. Third, a texture layer is computed at the panel scale. Fourth, a random forest or convolutional neural network classifier assigns each rooftop segment a binary label and, where panel geometry is clear enough, estimates array area in square metres.
Array area converts to approximate installed capacity using a published conversion factor: roughly 150–200 Wp per square metre for standard commercial silicon modules, a figure that has been stable enough to use as a planning assumption. The resulting per-property attribute joins to a cadastral or address database, producing a dataset that a valuer, grid operator, or local authority can query directly. The honest caveat is that orientation and tilt are inferred, not measured, from a nadir or near-nadir image; capacity estimates carry an uncertainty of perhaps ±20 % without additional LiDAR or stereo elevation data to confirm pitch angle.
Property valuation and grid planning: two different questions, one dataset
For property valuers, the question is whether a solar installation reduces the effective energy cost of occupation and therefore supports a premium in automated valuation models. The satellite-derived attribute is binary at the property level (installed or not) and area-estimated where the imagery resolves it. That is enough to flag a property as likely solar-equipped and to estimate the system size class, which correlates with annual generation potential when combined with irradiance data from services such as the European Commission's PVGIS tool.
Grid planners ask a different question: where is distributed generation concentrated, and where is penetration low enough that new connections will not stress the local network? For that, the per-property dataset aggregates to transformer-zone or substation-catchment level, producing a penetration rate map. Utilities in several European countries have used satellite-derived PV inventories precisely because self-installed systems are frequently not registered with the distribution network operator. The satellite sees what the registry misses. That gap between registered and actual capacity is, in some suburban districts, estimated at 10–25 % of total installed capacity, though published figures vary by country and regulatory regime.
Honest limits and the conditions that defeat the method
Cloud is the primary operational constraint. A single cloud-free acquisition over a dense urban area is all that is needed for a static inventory, but scheduling that acquisition in persistently overcast climates (northern Europe in winter, for instance) can add weeks to a project timeline. Archive imagery can substitute where a recent cloud-free scene exists, but archive depth at 0.30 m GSD is thinner than at coarser resolutions.
Panel soiling and age degrade the spectral signature. Heavily soiled panels reflect more in NIR than clean ones, shifting them toward the felt-and-membrane cluster in feature space. Very old panels with significant degradation or discolouration can be misclassified. Flat rooftops with ballasted panel arrays at low tilt angles are harder to detect than pitched-roof installations because the panel face is partially obscured in a nadir view. Finally, the method cannot distinguish an operational system from one that has been disconnected or is faulty; the spectral signature is the same either way.
Typical figures
| Minimum spatial resolution for panel-level detection | 0.30 m GSD (Pléiades Neo, WorldView-3); 0.50 m marginal for large commercial arrays |
| Multispectral bands used | Red (630–690 nm) and near-infrared (750–900 nm) primary; blue and green for false-colour confirmation; SWIR for spectral unmixing on mixed rooftops (WorldView-3 only) |
| Revisit / tasking latency | Pléiades Neo: daily capacity; WorldView-3: 1–4.5 days; SkySat: same-day on-demand. Cloud-free acquisition adds variable delay in overcast climates |
| Minimum detectable array size | Approximately 4–6 m² (two to three standard modules) at 0.30 m GSD under good illumination and clean panel conditions |
| Installed capacity estimation accuracy | ±20 % from area-based conversion at 150–200 Wp/m²; improves with stereo or LiDAR pitch data |
| Archive depth at VHR | WorldView-3: from 2014; Pléiades Neo: from 2021; SkySat: from 2016. Coverage of any specific urban area varies; tasking history is not uniform |
| Typical area coverage per acquisition | WorldView-3 strip: up to 13.1 km wide; Pléiades Neo: 14 km swath. City-scale surveys typically require mosaic of two to five strips |
| Deliverable formats | GeoPackage or Shapefile per-property polygon with PV flag and area estimate; GeoTIFF classification raster; CSV joined to UPRN or cadastral ID; aggregated penetration rate by postcode or transformer zone |
Analytics Satellize can run
| Per-property PV presence flag | Spectral index (NIR-based PV index) combined with building-footprint mask; binary classification per roof polygon | GeoPackage or Shapefile attribute joined to address or cadastral reference |
| Rooftop array area estimate | Roof segmentation followed by connected-component analysis of classified PV pixels; area computed in m² | Per-property numeric field in the property polygon layer |
| Approximate installed capacity estimate | Area-to-capacity conversion at published 150–200 Wp/m² module density; reported as a range reflecting tilt and orientation uncertainty | Per-property capacity range (kWp) in the property dataset |
| District-level penetration rate map | Aggregation of per-property flags to postcode, transformer zone or local authority boundary; expressed as percentage of total roof polygons with detected PV | Choropleth-ready GeoJSON or CSV by zone, suitable for grid-planning dashboards |
| Registered vs. detected installation gap analysis | Spatial join of satellite-derived PV inventory against utility or local-authority registration data; unmatched records flagged as potentially unregistered | Tabular report with per-zone gap count and estimated unregistered capacity |
| Change detection: new installations between two dates | Pixel-level differencing of classified PV rasters from two cloud-free acquisitions; new detections attributed to property records | Change polygon layer with acquisition dates and estimated new capacity added |
Who does the work
We can get this done for you. Satellize runs its own analyst desk and a strong science team. You do not buy a data feed and work out what it means; our people source the imagery, run the analysis described on this page, and hand you the answer with its confidence limits stated. Discuss this requirement.