Verschneiden von Flächen

Hallo miteinander,

ich habe bisher noch gar nicht mit PostgreSQL gearbeitet; bin also diesbezüglich “Anfänger” und am überlegen unsere Datenbanken umzustellen.
Bisher verwende ich die Datenbanken in Kombination mit ArcGIS und GIS-Anwendungen.

Hier meine Frage: Wenn ich jetzt PostgreSQL mit PostGIS-Erweiterung verwende und meine Flächen alle auch in der Datenbank abspeichere, kann ich dann auch GIS-typische Untersuchungen ohne das GIS ausführen. Also konkreter:

Könnte ich 2 “Ebenen” mit Flächen miteinander verschneiden und die prozentualen Anteile auslesen ohne dabei das GIS zu bemühen. Also z.B. ein Programm schreiben, dass nur auf die Datenbank zugreift?

Über Antwort und/oder ein paar Tipps, wie man so etwas angehen sollte bzw. was man dabei beachten muss, wäre ich euch dankbar.

Ahoi

Ja, das geht. PostGIS ist sehr umfangreich - und hat eine umfangreiche Doku. Was Du ansprichst geht z.B. via https://postgis.net/docs/ST_Intersection.html und anderen Funktionen, siehe https://postgis.net/docs/reference.html

Mit etwas Übung bekommst du das besser hin als am Desktop.

select t1.id, st_area(t1.geom) as a1,
st_area(st_intersection(t1geom, t2.geom))/st_area(t1.geom) as anteil_a2
from poly1 t1, poly2 t2
where st_intersects(t1.geom, t2.geom)

So ähnlich sollte das aussehen. Ohne Gewähr aus dem hohlen Bauch :wink:
Es wird die ID und die Fläche aus t1 gelesen, mit den überlappenden Elementen wird die Schnittmenge gebildet und der Flächenanteil an t1 berechnet. Als Ergebnis bekommst du eine Tabelle in der für jeden Verschnitt eines Elements aus t1 mit einem Element aus t2 eine Zeile mit den Werten steht.
Gruß Uwe