Zum Inhalt springen
AI Segmentation
QGIS
Tutorial

Solaranlagen in QGIS erkennen: 5 Methoden

Drei Ansichten derselben Vorstadtdächer: reines Luftbild, dieselben Dächer mit OpenStreetMap-Solargeneratoren als dünne Umrisse, und dieselben Dächer noch einmal mit jedem erkannten Array als eigenem Polygon.

Um Dach-Solar in zu kartieren, beginne mit dem, was bereits jemand kartiert hat. Öffne Vector > QuickOSM > QuickOSM…, trage generator:source in das Schlüsselfeld und solar in das Wertfeld ein und führe es für dein Gebiet aus. OpenStreetMap enthält 6.143.024 Objekte mit diesem Tag, Stand 3. September 2026, sodass du in einer gut erfassten Stadt in zwei Minuten fertig bist. Wo die Abdeckung dünn ist, erkennst du die Arrays selbst, und die Methode hängt von deinen Bändern und deiner Pixelgröße ab.

Wo das Netz falsch liegt

Drei Antworten kommen immer wieder, und jede kostet einen Tag, bis du es merkst.

"Nutze Sentinel-2." Sein Pixel ist 10 m und ein Modul ist 1 bis 2 m lang, also passt ein ganzes Dach in ein Pixel. Sentinel-2 findet Freiflächenanlagen und niemals Dächer.

"Klassifiziere dein Orthofoto mit SCP." Die FAQ des plugin schließt das aus: "You cannot use orthophotos with less than 4 bands". Ein RGB-Orthofoto oder eine Basiskarte ist das, was die meisten haben, und es ist genau die Eingabe, die SCP nicht annehmen kann.

"Zähle die Module, sobald du die Erkennung hast." Clark und Pacifici fanden einzelne Module "selbst bei 15,5 cm Auflösung schwer zu unterscheiden". Luftbilder liefern Arrays und Fläche. Modulzahl und Kilowatt kommen aus einem Register.

Die kurze Antwort

Deine EingabeMethodeKosten
Ein Gebiet, das OpenStreetMap bereits gut erfasstMethode 1, QuickOSMKostenlos
Multispektrale Bilder mit NahinfrarotbandMethode 2, Raster > Raster Calculator…Kostenlos, QGIS-Kern
Vier oder mehr Bänder und Zeit für TrainingsgebieteMethode 3, Semi-Automatic Classification PluginKostenloses plugin
Ein RGB-Orthofoto um 20 cm, und eine GPU oder GeduldMethode 4, Deepness plus sein Solar-PV-ModellKostenlos
Jeder raster, den der Canvas zeigt, auf jedem RechnerMethode 5, ein Cloud-Segmentierungsmodell3 km² pro Monat kostenlos, dann €39

Wie ich sie verglichen habe

Fünf Kriterien: benötigte Bänder, die Auflösung, unterhalb derer die Methode versagt, ob deine Bilder deinen Rechner verlassen, Kosten bis zum ersten Polygon und ob das Ergebnis Polygone oder Pixel sind. Preise, plugin-Versionen und Tag-Zahlen Stand 3. September 2026. Wir bauen eine der fünf, und es ist Methode 5.

Eine Aufgabe gebe ich ab. Für installierte Leistung in einem ganzen Land schlägt ein Anlagenregister jede Methode hier, weil es die Kilowatt kennt und Bilder nie.

Bevor du beginnst

Die Bodenauflösung entscheidet alles. Bradbury et al. bauten ihren Referenz-PV-Datensatz mit 30 cm, weil "Solarmodule typischerweise zwischen 1 und 2 Metern lang sind", was mehrere Pixel auf jedes legt. Das löst das Array auf, nicht die Module darin. Clark und Pacifici fanden einzelne Module "selbst bei 15,5 cm Auflösung schwer zu unterscheiden". Veröffentlichte Dach-PV-Arbeiten liegen zwischen 10 cm und 31 cm. Sentinel-2 mit 10 m ist für Farmen, niemals für Dächer.

Arbeite in einem projizierten CRS, weil zwei Schritte unten eine Fläche in layer-Einheiten nehmen.

Four crops of aerial imagery side by side, labelled: a real rooftop PV array, a dark flat roof, a run of roof skylights, and a solar thermal collector panel.
Four crops at the same scale. Only the first is photovoltaic. Every automatic method here confuses at least two of the other three.

Methode 1: Nimm, was bereits kartiert ist

QGIS hat seinen eigenen OSM-Downloader in 3.0 entfernt und Nutzer auf QuickOSM verwiesen, also installiere den zuerst.

Query the generators

Vector > QuickOSM > QuickOSM…, Schlüssel generator:source, Wert solar, ausführen auf deiner Ausdehnung oder einem benannten Gebiet. Dach-Arrays tragen power=generator und oft generator:method=photovoltaic.

Query the plants separately

Freiflächenanlagen sind mit power=plant und plant:source=solar getaggt, eine andere Abfrage. Lässt du sie weg, fehlt jede Farm in deinem layer.

Go to the registry for kilowatts

Deutschlands Marktstammdatenregister erscheint täglich als XML, unterdrückt aber Koordinaten für jede Einheit mit 30 kW oder weniger, sodass ein Dach auf einer Postleitzahl landet. Frankreichs Register stoppt auf IRIS-Zonenebene und fasst alles unter 36 kW in Aggregatzeilen zusammen.

The QuickOSM dialog in QGIS with key generator:source and value solar, and the resulting solar generator polygons drawn over aerial imagery of a small town.
One QuickOSM query, key generator:source, value solar. Where a local mapper has been through, this is the whole job.

Drei offene Datensätze dienen als Trainingsdaten oder Benchmark. Bradbury et al., 19.863 annotierte PV-Polygone über vier kalifornischen Städten mit 30 cm, CC0. BDAPPV, 28.807 französische Anlagen mit Masken, CC BY 4.0. DeepSolar zählte 1,47 Millionen Systeme in den zusammenhängenden USA, veröffentlichte aber Zählungen pro Census-Tract, keine Polygone.

Nutze es, wenn: jemand dein Gebiet erfasst hat oder du Leistung statt Formen brauchst.

Lass es, wenn: die Abdeckung lückenhaft ist, was du nur durch Hinsehen erfährst.

Methode 2: Schwellenwert im raster calculator

Raster > Raster Calculator…, Algorithmus-ID native:rastercalc. Module sind dunkel und im Nahinfrarot viel dunkler als ein dunkles Dach, daher trennt ein normalisierter Index zwischen Rot- und NIR-Band sie in den meisten Szenen. Dann entfernt gdal:sieve das Rauschen und gdal:polygonize erzeugt Polygone.

Auf drei RGB-Bändern scheitert das, weil ein dunkles Dach und ein Modul dieselben Werte teilen. Textur ist die übliche Rettung. grass:r.texture berechnet dreizehn GLCM-Maße, und Arrays punkten hoch bei Kontrast und niedrig bei inversem Differenzmoment. GRASS liegt dem Windows-Installer bei und nicht dem macOS-Bundle.

Nutze es, wenn: du ein Nahinfrarotband und eine saubere Szene hast.

Lass es, wenn: die Bilder RGB sind oder die Schwellenwerte über ein Mosaik aus verschiedenen Tagen halten müssen.

Methode 3: Überwachte Klassifikation mit SCP

Das Semi-Automatic Classification Plugin fügt ein SCP-Menü und ein SCP Dock hinzu. Baue einen Band-Satz, zeichne ROIs über Module und über jeden Lookalike, dann klassifiziere mit Maximum Likelihood, Minimum Distance, Spectral Angle Mapping, Random Forest, Support Vector Machine oder einem Multi-layer Perceptron. Version 8.5.0 ist das, was QGIS 3.x installiert, GPL v3, 2.644.482 Mal heruntergeladen.

Seine eigene FAQ schließt die Eingabe aus, die die meisten haben. "You cannot use orthophotos with less than 4 bands", weil die Algorithmen unter vier die Klassen nicht trennen können.

Nutze es, wenn: du vier oder mehr Bänder hast und eine wiederholbare, dokumentierte Klassifikation willst.

Lass es, wenn: deine Eingabe ein RGB-Orthofoto oder eine Basiskarte ist.

Methode 4: Ein lokales Modell in Deepness

Deepness führt ONNX-Modelle in QGIS aus, kostenlos und Apache 2.0, und sein Modell-Zoo liefert ein Solar PV Segmentation-Modell mit 20 cm/px, trainiert von Kleebauer et al. und gehostet von Fraunhofer. Richte es auf dein Orthofoto und du erhältst eine Panelmaske, kein Konto, nichts verlässt deinen Rechner.

Geschwindigkeit ist der Haken. Ein Nutzer maß dasselbe Modell mit "80+ minutes for a digital Orthophoto tile (20 cm resultion, 5000 points in each direction)" auf einer CPU, und das Issue ist noch offen. Jenseits davon gibt es kein gut gepflegtes offenes Dach-PV-Modell.

Nutze es, wenn: nichts den Rechner verlassen darf und dein Ortho nahe 20 cm liegt.

Lass es, wenn: du keine NVIDIA-Karte hast und einen Stadtteil abdecken musst.

Methode 5: Ein Cloud-Segmentierungsmodell

Ein Segmentierungsmodell hat gelernt, wie ein Array aussieht, also trennt es eines von einem dunklen Dach, wo Methoden 2 und 3 es nicht können. Wir bauen eines davon, AI Segmentation. Dieser Abschnitt handelt von unserem eigenen Tool.

Zeichne eine Zone über jeden raster, den der Canvas zeigt, tippe solar panel, und jedes Array kommt als Polygon im Projekt-CRS mit Fläche und Konfidenzwert zurück. Das Modell läuft auf unseren Servern in Europa, also keine Karte und keine Python-Umgebung.

A farm building roof on aerial imagery in QGIS, with five separate solar panel groups each outlined as its own coloured polygon and the bare roof between them untouched.
One run on a farm roof. Five array groups, each its own polygon, the bare roof between them left alone.

Zwischen dem 5. Juli und dem 1. September 2026 führten 47 Personen außerhalb unseres Teams solar panel 104 Mal aus, und 15,6 % der Kacheln kamen leer zurück. Über 96 exportierte Läufe fand das Modell 40.088 Kandidaten und sie behielten 14.245 oder 35,5 %, entsprechend 496.931 m² Panel.

Tippe solar panel, nicht solar farm. Das zweite fragt nach der Anlage, und das Modell antwortet mit einer einheitlichen Fläche oder nichts. In den wenigen Läufen, die wir haben, ließ es 21 von 24 Kacheln leer.

Am besten für: Dach-Arrays über einen Stadtteil, auf jedem Rechner.

Nicht für: eine Modulzahl. Ein dichtes Array kommt als eine Fläche zurück, also teile es in QGIS oder dividiere durch die dir bekannte Modulgrundfläche. Ein Wohnmodul ist etwa 1,7 m mal 1,1 m.

Preis: 3 km² pro Monat kostenlos, keine Karte. Pro ist €39 pro Monat ohne MwSt.

Läuft auf: unseren Servern, in Europa.

Installation: dem plugin-Manager, QGIS 3.22 oder neuer, dann vom Panel aus anmelden.

Die fünf Methoden im Vergleich

QuickOSMRaster calculatorSCPDeepnessAI Segmentation
Benötigte BänderKeineNIR hilftVier oder mehrDreiDrei
Bilder bleiben lokalJaJaJaJaNein
GPUNeinNeinNeinEmpfohlenNein
ErgebnisOSM-Polygoneraster-MaskeKlassen-rasterPanelmaskePolygon pro Array
KostenKostenlosKostenlosKostenlosKostenlosKostenlose Stufe, dann €39

Was zu merken ist

Frage OpenStreetMap vor allem anderen ab, weil eine erfasste Stadt in zwei Minuten fertig ist und keine Erkennung einen Mapper schlägt, der vor Ort war.

Wenn die Bilder den Rechner nicht verlassen dürfen, bleiben dir nur Deepness und sein lokales Solar-PV-Modell.

Auf einer RGB-Basiskarte sind der raster calculator und SCP raus, weil keiner ein Modul allein per Wert von einem dunklen Dach trennt.

Etwa 30 cm löst ein Array auf und nichts löst die Module darin auf, also kartiere Flächen und zähle niemals Module aus Bildern.

Kilowatt kommen aus einem Anlagenregister, niemals aus einem Bild, und sowohl das französische als auch das deutsche Register verwischen den Standort kleiner Dacheinheiten.

Try it free in QGIS, no card needed

Fragen, die oft kommen

Kann QGIS Solarmodule allein erkennen?

Nein. Kern-QGIS hat Schwellenwertbildung und Polygonisierung, die einen spektralen Unterschied brauchen, sodass eine RGB-Basiskarte dir nichts liefert. Erkennung kommt aus einem plugin, Deepness lokal oder unserem in der Cloud.

Welche Bildauflösung brauche ich?

Etwa 30 cm löst ein Array auf, nach Bradbury et al. Einzelne Module sind selbst bei 15,5 cm schwer, also plane Arrays und Flächen zu kartieren statt Module zu zählen.

Wie unterscheide ich ein Solarmodul von einem dunklen Dach?

Gar nicht, auf drei Bändern, allein per Wert. Nutze ein Nahinfrarotband, ein Texturmaß wie grass:r.texture oder ein Modell, das gelernt hat, wie ein Array aussieht.

Findet es auch Freiflächenanlagen?

Ja, und in OpenStreetMap sind sie eine separate Abfrage, power=plant mit plant:source=solar. Mit einem Modell tippe auch für die Farm solar panel, weil es jedes Panel erkennt statt des Standorts.

Kann ich zählen, wie viele Module installiert sind?

Nicht aus Bildern. Erkennung liefert Umrisse und Fläche. Modulzahl und Kilowatt kommen aus einem Register, und in Frankreich stoppt das auf IRIS-Zonenebene.

Der Gebäudegrundriss-Leitfaden erklärt den Filterschritt vollständig, und der SAM in QGIS-Beitrag zeigt, welche Objekte diese Modelle gut finden. Der QGIS AI-Hub vergleicht die plugin, und die Produktseite ist AI Segmentation.