Partitionen
Inhaltsverzeichnis
Objektebene
Partitionen verschneiden & aufbereiten
Das Verschneiden von Polygonen in einem GIS-System (Geoinformationssystem) kann aus mehreren Gründen eine komplexe und herausfordernde Aufgabe sein:
- Geometrische Komplexität
- Polygone können sehr komplexe Formen mit vielen Kanten, Löchern oder Inseln haben.
- Selbst kleine Ungenauigkeiten in den Geometrien können zu unerwarteten Ergebnissen führen.
- Topologische Inkonsistenzen
- Überlappungen, Lücken oder nicht exakt aufeinanderliegende Kanten können zu fehlerhaften oder unerwarteten Schnittoperationen führen.
- GIS*Systeme erwarten oft eine saubere Topologie, was bedeutet, dass Polygone sich korrekt berühren oder überlappen müssen.
- Rechenaufwand bei großen Datensätzen
- Wenn sehr viele Polygone beteiligt sind, steigt der Rechenaufwand enorm.
- Besonders bei hochaufgelösten Geodaten (z. B. Flurstücken, Landnutzungsdaten) kann das zu langen Berechnungszeiten führen.
- Genauigkeitsprobleme durch Floating-Point-Darstellung
- GIS-Software speichert Koordinaten oft mit begrenzter numerischer Genauigkeit, was zu kleinen Abweichungen führt.
- Diese Abweichungen können dazu führen, dass Polygone nicht exakt aufeinander liegen und somit keine korrekten Schnittflächen gebildet werden.
- Softwareabhängige Algorithmen
- Verschneidungswerkzeuge in verschiedenen GIS-Programmen (QGIS, ArcGIS, PostGIS) verwenden unterschiedliche Algorithmen, die zu leicht abweichenden Ergebnissen führen können.
- Fehlerhafte oder fehleranfällige Algorithmen können dazu führen, dass Polygone unerwartet abgeschnitten oder verändert werden.
- Fehlerhafte oder unsaubere Ausgangsdaten
- Polygone mit Selbstüberschneidungen, ungültigen Ringen oder nicht geschlossenen Geometrien können zu Problemen bei der Verschneidung führen.
- Eine vorherige Bereinigung der Daten ist oft notwendig, z. B. mit Werkzeugen wie "Topologie prüfen" oder "Geometrien reparieren".
Lösungsansätze
- Datenqualität prüfen: Vor dem Verschneiden Topologie*Checks durchführen.
- Koordinatensysteme angleichen: Einheitliches Projektsystem für alle Layer verwenden.
- Datenbereinigung: Ungültige Geometrien korrigieren und vereinfachen.
- Prozess aufteilen: Große Datensätze in kleinere Segmente zerlegen, um Rechenlast zu verringern.
| Fehler | Ursache | Lösung |
|---|---|---|
| Selbstüberschneidungen | Polygonkanten schneiden sich selbst | Geometrie reparieren oder manuell anpassen |
| Unvollständige Polygone | Nicht geschlossene Ringe | Geometrie reparieren oder neu zeichnen |
| Überlappungen | Polygone liegen übereinander | "Topologie prüfen" und Flächen bereinigen |
| Lücken zwischen Polygonen | Daten sind nicht exakt angepasst | "Lücken schließen" oder manuell nachbearbeiten |
Partitionsdaten aufbereiten und reparieren in ++SYSTEMS
Bei Verschneidungen können häufig Abstürze passieren, hierzu gibt es viele Fehlerquellen:
- Zu kleine Flächen <1m²
- überschneidende Polygone oder fehlerhafte Polygone
- Windungszahl
- Attribute werden nicht richtig übernommen
Es gibt verschiedene Möglichkeiten, die Fehler zu beseitigen, hier werden verschiedene Lösungswege aufgezeigt:
- strukturiertes Reparieren
- Merge.Lst
- QGIS: Gültigkeit prüfen
Strukturiertes Reparieren
Folgende Grundsätze sollten eingehalten werden, wenn der Reparaturalgorithmus aufgerufen wird.
- Nur eine Funktion nach einander aufrufen
- Zuerst Linien rekursiv löschen
- Einzugsgebiete kleiner x m² zusammenfassen
- hier kleine Schritte durchführen zum Beispiel 0,2 m², 0.4 m², 0.5 m², 1 m², etc...
Beispiel:
- Erst die Linien rekursiv löschen.
- Danach Einzugsgebiete mit 0.1 m² zusammenführen, danach 0.2 m² usw
- Bis man auf ca 1m² kommt.
- Dabei kann es vorkommen, dass hier das Programm abstürzt, weil neue Polygone entstehen können, daher zwischendurch speichern.
Merge.lst
Es kommt beim drücken von „Nein“ zu weiteren Verschneidungen und damit zu einem Absturz. Hier ist eine manuelle Überprüfung und löschen einzelner Linien notwendig, damit es funktioniert. Vorgehen wäre:
- Merge.lst schauen und sich den letzten Eintrag der Koordinaten geben lassen
- Marker mit dem gesuchten Marker setzen
- Versuchen mit der Löschung von einzelnen Linien die Verschneidung zu reparieren
In einigen Fällen wurde durch die Entwickler folgendes Vorgehen eingebaut (noch nicht alle Fälle abgedeckt): Beim ersten Eintrag in die MERGE.LST (aus der Hauptfunktion) wird an die entsprechende Stelle gesprungen, das Hauptfenster aktiv geschalten (um sich die Sache genauer anzusehen), die Progressbar ausgeblendet und gefragt, ob abgebrochen werden soll.
Wählt man den Abbruch, sollten sich die Partitionen wieder im Ausgangszustand befinden.
QGIS
In QGIS gibt es verschiedene Funktionen, um Flächenpolygone aufzubereiten und zu bearbeiten. Für eine erste Analyse gibt es die Möglichkeit mit der Funktion Gültigkeit prüfen fehlerhafte Polygone zu finden.
Attribut in früheren Versionen
Das Attribut „Polygon = n“ gibt die Anzahl der „Faces“ der Polygon-Datenstruktur an. Das ist erstmal verwirrend, weil in der Geometrie nur ein 3D-Körper mehrere „Faces“ (2D-Flächen, aus der sich die Außenseite eines Körpers zusammensetzt) haben kann – ein Würfel z.B. hat 6 Faces. Daher wurde das ab der Version V16 gelöscht.
Bereits zugewiesene Flächen in ein anderes Projekt übernehmen
Im ersten Schritt muss in der Partition, welche bereits eine Zuweisung zu den Abschnitten erhalten hat, ein Pointer gesetzt werden. Dabei müssen Sie für jede Fläche den Abschnittsnamen als Attribut speichern! Hierfür markiere ich mir zuerst alle Abschnitte (welche von Interesse sind) und markiere daraufhin die zugewiesenen Einzugsflächen.
Den Flächen gebe ich jetzt über „markierte ändern…“ ein neues Attribut mit sinnvollem Namen „ZugewiesenA“ und weise hier auf den Pointer Abschnitt.Name!
Dabei bekommen die ausgewählten Fläche den Namen des jeweiligen zugewiesenen Abschnittes.
Jetzt können diese Partitionen mit dem Attribut kopiert, per drag&drop oder exportiert (Shapefile) einem anderen Projekt übergeben werden. Um die Zuweisung in dem neuen Projekt wieder zu übernehmen müssen Sie die Flächen wiederum in der neuen Partition markieren und die Zuweisung über die Attribute gestalten. Hierfür einfach die Flächen markieren und über „markierte ändern…“ das Attribut Abschnitte = ZugewiesenA übergeben.
