Verschneiden von Flächen

Allgemeines zu PostgreSQL.
Antworten
nickel
Neuer Benutzer
Beiträge: 1
Registriert: Mo 16. Sep 2019, 07:28

Verschneiden von Flächen

Beitrag von nickel » Mo 16. Sep 2019, 07:42

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

akretschmer
Erfahrener Benutzer
Beiträge: 7677
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Verschneiden von Flächen

Beitrag von akretschmer » Mo 16. Sep 2019, 08:50

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
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Gisman
Erfahrener Benutzer
Beiträge: 1140
Registriert: Fr 20. Jan 2006, 15:30
Wohnort: Pfalz
Kontaktdaten:

Re: Verschneiden von Flächen

Beitrag von Gisman » Mi 18. Sep 2019, 16:16

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 ;)
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

Antworten