Metainformationen zur Seite
Workshop: Neophyten-Erfassung in Naturschutzgebieten um Stadtroda
Ausgangslage: Eine untere Naturschutzbehörde will wissen, wo in ihren Naturschutzgebieten invasive Neophyten stehen. Vorhanden: QGIS, ein WFS mit den Gebietsgrenzen, ein Geländemodell, ein Tag Zeit.
Ergebnis: eine GeoPackage-Arbeitsdatenbank, ein Erfassungslayer mit Formular und Eingaberegeln, die automatische Zuordnung Punkt zu Schutzgebiet, Höhen aus dem DGM und ein Maßnahmenblatt je betroffenem Gebiet.
Datenpaket Neophyten Stadtroda (25 MB)
Im Paket: Geländemodell, Gebietsgrenzen, leeres Arbeitsprojekt (01_start) und fertiges Referenzprojekt (02_loesung). Die Fundpunkte darin sind frei erfunden – Übungsmaterial, keine realen Nachweise.
Das Geländemodell liegt im Hauptpaket als eine Datei über alle drei Gebiete (daten/dgm_nsg.tif). Das Zusatzpaket enthält dasselbe Modell je Gebiet einzeln – nur nötig, wenn ein Gebiet für sich weitergegeben oder bearbeitet wird.
Aufgaben
| Block | Aufgabe | Werkzeug / Ort | ca. |
|---|---|---|---|
| 0 | Projekt anlegen, KBS EPSG:25832, Hintergrundkarte einbinden | Projekt → Eigenschaften, Layer → Layer hinzufügen → WMS | 10 min |
| 1 | Naturschutzgebiete aus dem WFS holen und als GeoPackage materialisieren | Layer hinzufügen → WFS, Rechtsklick → Exportieren → Objekte speichern als… | 30 min |
| 2 | Erfassungslayer nach Datenmodell anlegen | Layer → Layer erstellen → Neuer GeoPackage-Layer… | 20 min |
| 3 | Formular bauen: Wertelisten, Standardwerte, Constraints, Gruppenboxen | Layereigenschaften → Attributformular | 50 min |
| 4 | 10–15 Fundpunkte digitalisieren, konzentriert auf die drei Gebiete | Bearbeitungsmodus, Punktwerkzeug | 20 min |
| 5 | Punkt kennt sein Schutzgebiet | Layereigenschaften → Felder → Neues Feld (virtuell) | 20 min |
| 6 | Funde je Gebiet zählen, betroffene Gebiete auswählen | virtuelles Feld, Objekte über Ausdruck wählen | 20 min |
| 7 | Geländemodell darstellen und auswerten | Renderer Schummerung + Einkanal-Pseudofarbe, Ansicht → Höhenprofil | 35 min |
| 8 | Höhe in die Fundpunkte holen | virtuelles Feld mit raster_value() | 20 min |
| 9 | Heatmap als Darstellungsvariante | Renderer Wärmekarte | 10 min |
| 10 | Maßnahmenblatt je betroffenem Gebiet | Drucklayout A4 quer, Atlas | 45 min |
| 11 | Relative Pfade, Puffer, Fragen | Projekt → Eigenschaften → Allgemein | 20 min |
Datenmodell ''neophyten_funde''
Punktlayer, EPSG:25832, im selben GeoPackage wie die Schutzgebiete.
| Feld | Typ | Widget | Regel |
|---|---|---|---|
art | Text (60) | Werteliste | Nicht-Null, erzwingen |
datum | Datum | Datum/Zeit, dd.MM.yyyy | Ausdruck, erzwingen |
deckung_prozent | Ganzzahl | Bereich 1–100, Schritt 5, Schieberegler | Ausdruck, erzwingen |
massnahme | Text (40) | Werteliste | – |
bearbeiter | Text (60) | Textbearbeitung | Nicht-Null, erzwingen |
bemerkung | Text (254) | Textbearbeitung, mehrzeilig | – |
Wertelisten – gespeichert wird der Code, angezeigt der Klartext:
art | Anzeige |
|---|---|
heracleum_mantegazzianum | Riesen-Bärenklau (Unionsliste) |
impatiens_glandulifera | Drüsiges Springkraut (Unionsliste) |
lupinus_polyphyllus | Vielblättrige Lupine (Unionsliste) |
reynoutria_japonica | Japanischer Staudenknöterich |
solidago_gigantea | Späte Goldrute |
robinia_pseudoacacia | Robinie |
massnahme: keine / beobachten / mechanische_entfernung / dringend_pruefen
Die Artenliste muss nicht abgetippt werden: Werteliste → Daten aus Datei laden und die mitgelieferte arten_werteliste.csv wählen. Aufbau der Datei – Spalte 1 der gespeicherte Wert, Spalte 2 die Anzeige, keine Kopfzeile. Zerlegt der Import die Umlaute, hilft der Umweg über Daten aus Layer laden: die CSV zuvor als Getrennte Textdatei ins Projekt laden.
Gruppenboxen im Drag-and-drop-Designer: Fund (art, datum, bearbeiter) und Bewertung (deckung_prozent, massnahme, bemerkung).
Ausdrücke
| Block | Ort | Ausdruck |
|---|---|---|
| 3.3 | Standardwert datum | to_date(now()) |
| 3.3 | Standardwert bearbeiter | @user_full_name |
| 3.4 | Constraint datum | „datum“ ⇐ to_date(now()) |
| 3.4 | Constraint deckung_prozent | „deckung_prozent“ >= 1 AND „deckung_prozent“ ⇐ 100 |
| 3.5 | Sichtbarkeit Gruppe „Bewertung“ | „art“ IS NOT NULL |
| 4 | Punktgröße datengesteuert | scale_linear(„deckung_prozent“, 1, 100, 2.2, 6.5) |
| 5 | virt. Feld nsg_name (Text) | array_to_string(overlay_intersects('Naturschutzgebiete', „NAME“)) |
| 6 | virt. Feld anzahl_funde (Ganzzahl) | array_length(overlay_intersects('Neophyten-Funde', $id)) |
| 6 | virt. Feld flaeche_ha (Dezimal) | round($area/10000, 1) |
| 6 | Objektauswahl | „anzahl_funde“ > 0 |
| 8 | virt. Feld hoehe (Dezimal) | round(raster_value('DGM', 1, $geometry), 1) |
| 10.2 | Atlas-Filter | „anzahl_funde“ > 0 |
| 10.5 | Atlas-Dateiname | concat('Massnahmenblatt_', replace(„NAME“, ' ', '_')) |
Layout-Beschriftungen:
Maßnahmenblatt Neophyten: [% "NAME" %]
[% "anzahl_funde" %] Fundpunkt(e) · [% format_number("flaeche_ha", 1) %] ha · NSG seit [% to_string(to_int("JAHR")) %] · Stand [% format_date(now(),'dd.MM.yyyy') %]
Nachgewiesene Arten: [% array_to_string(array_sort(array_distinct(overlay_intersects('Neophyten-Funde', represent_value("art")))), ', ') %]
Werkzeuge
| Werkzeug | Wofür |
|---|---|
Rasteranalyse → Hangneigung | Mahdfähigkeit, Erosion, Zugänglichkeit |
Rasteranalyse → Exposition | wärmebegünstigte Südhänge |
Rasteranalyse → Rasterwerte abfragen | Höhe dauerhaft statt virtuell schreiben |
Rasteranalyse → Zonenstatistik | Höhenspanne je Gebiet in die Polygone |
Extraktion → Konturen | Höhenlinien als Vektor |
Vektoranalyse → Punkte in Polygon zählen | dauerhafte Zählung statt virtuellem Feld |
Interpolation → Heatmap (Kerndichteschätzung) | echte Dichteberechnung als Raster |
Ansicht → 3D-Kartenansicht | DGM als Geländequelle |
Stolperstellen
- In
overlay_intersects()undraster_value()steht der Layername, wie er im Layerbereich erscheint – nicht der Tabellenname im GeoPackage. Nach dem Umbenennen eines Layers liefern die Felder stillschweigend NULL. - Die Schummerung ist reine Darstellung. Die Bandwerte bleiben Höhen in Metern – deshalb liest
raster_value()aus eben diesem Layer echte Höhen. format_number()macht aus der Jahreszahl 1961 ein „1.961“. Stattdessento_string(to_int(…)).represent_value()holt aus der Werteliste den Klartext; ohne das erscheint der gespeicherte Code.- Attributtabellen im Layout schneiden bei der Voreinstellung 10 pt stillschweigend ab. Spaltenbreiten und Schriftgröße von Hand setzen.
- Der BfN-WFS liefert maximal 1000 Objekte je Anfrage – vor dem Verbinden auf den Zielraum zoomen und „Nur Objekte, die den aktuellen Ansichtsbereich schneiden“ aktivieren.
Die drei Gebiete
| Naturschutzgebiet | Fläche | NSG seit | Höhenspanne | Charakter |
|---|---|---|---|---|
| Waldecker Schloßgrund | 61,2 ha | 1961 | 250–349 m | Bachtal |
| Dohlenstein und Pfaffenberg | 84,5 ha | 1981 | 157–404 m | Bergsturzhang über der Saale |
| Alter Gleisberg | 116,4 ha | 2000 | 168–349 m | Bewaldete Kuppe |
Daten und Dienste
| Bezeichnung | Typ | Adresse |
|---|---|---|
| BfN Schutzgebiete, NSG Stand 2023, EPSG:25832 | WFS | https://geodienste.bfn.de/ogc/wfs/schutzgebiet |
| basemap.de, topographische Hintergrundkarte | WMS | https://sgx.geodatenzentrum.de/wms_basemapde |
| DGM1 Thüringen, 1 m, 1×1-km-Kacheln | Download | https://geoportal.geoportal-th.de/gaialight-th/_apps/dladownload/dl-dhm.html |
Quellen und Lizenzen
- Schutzgebiete: © Bundesamt für Naturschutz (BfN), NSG-Stand 2023, dl-de/by-2.0
- Höhendaten: DGM1 © GDI-Th, Freistaat Thüringen, TLVermGeo, dl-de/by-2.0
- Hintergrundkarte: basemap.de / © BKG, dl-de/by-2.0
- Fundpunkte: frei erfunden, Übungsmaterial