Published July 24, 2026 | Version v3

OpenPVMapper: A Multi-source, Nationwide Database of Rooftop Photovoltaic Systems in France

Authors/Creators

Description

Summary

OpenPVMapper is an open, multi-source database of rooftop photovoltaic installations in mainland France. It aggregates DeepPVMapper detections (AI pipeline on IGN BD ORTHO imagery), OpenStreetMap, FRPV (per-cadastral-parcel probability), and manual corrections, resolved via a fixed hierarchy (correction > OSM > DeepPVMapper > third-party detections).

1,135,850 installations, ~15.0 GWp estimated installed capacity. Coverage : metropolitan France

CRS: EPSG:4326 (WGS84) for all files.

Format: GeoJSON, packaged as .zip.

Licence: CC-BY.

Last update: July 2026.

The full data descriptor is available here : https://arxiv.org/abs/2607.25153

Data validation

Precision was assessed via manual review of 1,862 installations (two independent stratified samples: by source combination and by power class). Global precision, weighted by true stratum population: ~74-75%. Corroboration across sources matters a lot: precision goes from 71.5% (single source) to 96.9% (2 sources) to 98.2% (3 sources). 430,940 installations (~38% of the database) are corroborated by 2 or more independent sources.

File organization

raw.zip
├── D001_2020/
│   └── arrays_characteristics_D001_2020.geojson
├── D001_2022/
│   └── arrays_characteristics_D001_2022.geojson
├── ...  (one folder per département × available vintage)
└── index.json          # {"D001": [2020, 2022], "D002": [2021], ...}

enriched.zip
├── enriched-national.geojson       # 1,135,850 installations
└── regions/
    ├── ile-de-france.geojson
    ├── ... (12 mainland regions)

latest-dpvm.geojson.zip
└── latest-dpvm.geojson             # 593,671 installations

Attributes

raw/ — raw detections by département and vintage

One row = one DeepPVMapper detection for a given département and vintage, before any cross-source matching.

Field Description
array_id Unique detection identifier
insee INSEE commune code
dpt Département
rnb_id Building identifier (Référentiel National des Bâtiments), if matched
surface Polygon surface area (m²)
tilt Estimated tilt (degrees)
azimuth Estimated azimuth (degrees)
kWp Estimated installed capacity

year (vintage) is not a column in the file itself — it is carried by the folder/file name (D0xx_20xx) and by index.json, not duplicated on every row.

raw/index.json: {"D0xx": [year, year, ...], ...} — availability index to navigate without unpacking all of raw.zip.

enriched/ — resolved national database, all sources

One row = one installation, after cross-source matching (IoU / centroid distance) and resolution to a single reference geometry. Schema shared by enriched-national.geojson and the regional exports.

Field Description
array_id Unique installation identifier
insee INSEE commune code
dpt Département
rnb_id Building identifier, if matched
sources List of contributing sources (DPVM, OSM, FRPV, correction)
surface Polygon surface area (m²), rounded to 2 decimals
tilt Tilt (degrees), integer
azimuth Azimuth (degrees), integer
kWp Estimated installed capacity, rounded to 2 decimals
frpv_proba FRPV probability (0–1, floored to 2 decimals), if available
first_seen / last_seen First / last vintage in which the installation is detected
false_positive_source Manual validation status (normal / false / unknown), if reviewed

Note: nom (commune name) was dropped — redundant with insee.

latest-dpvm.geojson.zip — single-vintage export, DPVM only

Simplified export: one row per installation detected by DeepPVMapper on its latest available vintage only (no multi-source merge, no history). This is the export used in the upcoming analysis of grid connection data paper.

Field Description
array_id Unique identifier
insee INSEE code
nom Commune name
dpt Département
rnb_id Building identifier (RNB), if matched
surface Polygon surface area (m²)
tilt Estimated tilt (degrees)
azimuth Estimated azimuth (degrees)
kWp Estimated installed capacity
year Detection vintage
dpt_source Source département (3-digit code, e.g. "001")

The yield_kwh / kwp_approx fields from the previous release have been dropped.

Record counts

File Number of rows
enriched-national.geojson 1,135,850
latest-dpvm.geojson 593,671
raw/ (total, all départements × vintages) not counted — see index.json for the per-département breakdown

Sources & citation

  • DeepPVMapper: detection pipeline built for this project. Source code: https://github.com/gabrielkasmi/deeppvmapper/. The code used to build this database (multi-source aggregation, geometry resolution) will be released soon.
  • OpenStreetMap: © OpenStreetMap contributors.
  • FRPV: NEROT, Boris; THEBAULT, Martin, 2024, "FRPV - Presence of Rooftop Photovoltaic (RPV) systems on French buildings.", https://doi.org/10.57745/BXXYW4, Recherche Data Gouv, V3.

Code availability

DeepPVMapper source code (detection, segmentation, characterization): https://github.com/gabrielkasmi/deeppvmapper/. The code used to build this database (source aggregation, resolution, export) will be released separately, soon.

Files

enriched.zip

Files (1.0 GB)

Name Size
md5:090397d7a77e8cd36f4cee483bb5631b
298.5 MB Preview Download
md5:217635aa3168220b6429fbb5736fb5ca
59.1 MB Preview Download
md5:66732d33da4e8a48ab87d972f3d0e893
651.3 MB Preview Download

Additional details

Related works

Continues
Thesis: https://theses.hal.science/tel-04909303/ (URL)
Is described by
Preprint: arXiv:2607.25153 (arXiv)
Is new version of
Conference paper: arXiv:2207.07466 (arXiv)

Software

Repository URL
https://github.com/gabrielkasmi/deeppvmapper
Development Status
Active