Malawi Atlas - eine SDI mit PostGIS, GeoServer und GeoExt
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 96 | |
Author | ||
License | CC Attribution 4.0 International: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/40673 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
10
17
18
20
22
32
33
41
45
55
56
62
69
71
78
79
82
84
85
88
92
00:00
Server (computing)Open sourceGeomaticsSoftware developerLecture/Conference
01:41
Message sequence chartInformationMathematical analysisSource codeVersion <Informatik>Geomatics
03:00
Digitale VideotechnikCodeWeb pageSource codeSocial classComputer animation
03:45
Web browserVECTOR <Programm>Server (computing)DesktopComputer animation
04:08
Web browserDesktopServer (computing)Client (computing)Web pageComputer animation
04:34
Digitale VideotechnikIndexPolygonPDF <Dateiformat>Smart cardDiagram
06:14
IndexMenu (computing)MIDIWebsiteMach's principleGebiet <Mathematik>Level (video gaming)PDF <Dateiformat>PostgreSQLTable (information)Plug-in (computing)Server (computing)Web pageXML
08:30
Project <Programm>Server (computing)Eigenvalues and eigenvectorsVector graphicsService (economics)Pyramid (geometry)Plug-in (computing)Lecture/ConferenceMeeting/Interview
11:17
IndexZoom lensPlug-in (computing)Web pageServer (computing)Source codeFRAMEWORK <Programm>Open sourceVersion <Informatik>XML
12:13
Zoom lensInformation securityComputer wormMenu (computing)MEGAIndexView (database)Mobile appClient (computing)Level (video gaming)WEBProject <Programm>Server (computing)DiagramComponent-based software engineeringWeb pageInterface (computing)Print <4->Web applicationVersion <Informatik>Plug-in (computing)Open sourcePDF <Dateiformat>Function (mathematics)XMLComputer animation
15:59
PDF <Dateiformat>Web pageVersion <Informatik>Source codeLecture/ConferenceMeeting/Interview
16:37
VECTOR <Programm>Web browserServer (computing)DesktopUploadingUploadingComputer animation
17:06
UploadingServer (computing)DesktopComputer animation
17:50
Server (computing)PostgreSQLService (economics)VECTOR <Programm>MetadataPrint <4->Graphical user interfaceWEBsedComputer animation
18:27
Server (computing)APIService (economics)Stack (abstract data type)DesktopWEBLösung <Mathematik>Computer animation
19:39
ExplosionGeometryArray data structureQuery languageGrand Unified TheoryGeodesicDatabaseLevel (video gaming)Component-based software engineeringContent (media)DiagramSupremumLecture/ConferenceMeeting/Interview
23:43
Inference
Transcript: German(auto-generated)
00:07
Dann darf ich als dritten Redner Jakob Mix begrüßen, er geht jetzt zurück zum Geo-Server, die ist mal fertig eingerichtet, in einer Applikation eingebettet. So, vielen Dank, ja, willkommen, ich stelle euch heute das Projekt Malawi Atlas vor,
00:26
das ist eine recht klassische Web-GIS-Applikation, der Source-Code ist auch offen, das zeige den Link, und es ist eine Kooperation mit ZGIS, wo ich arbeite, und den Hilfsorganisation Kopi
00:43
und Concern Worldwide. Und das Projekt, das gab es schon fünf Jahre vorher, und wir haben das jetzt eben neu aufgesetzt. Ich werde jetzt einen Überblick geben, welche Technologien wir benutzt haben, und am Schluss auch noch einen kurzen Ausblick geben, welche alternativen Technologien möglich gewesen wären. Kurz zu mir, genau, ich bin wissenschaftlicher
01:06
Mitarbeiter am ZGIST in Salzburg, Fachbereich für Geoinformatik, ich bin hauptsächlich der Programmierer bei uns in der Arbeitsgruppe und mache eben die ganzen geoinformatischen Fragestellungen, die eben anfallen. Zudem organisiere ich auch noch das Meetup MAP-Time
01:23
Salzburg, was wir heute noch vorstellen werden, und sonst, wie gesagt, ich mache alles, was mit Open Source Geoinformatik zu tun hat. Dann kurz zum ZGIS, wir sind eben ein
01:44
Fachbereich an der Universität Salzburg, es gibt 18.000 Studierende, 3.000 Mitarbeiter, und ZGIS ist sehr stark mittelfinanziert, wir bieten einen Master angewandten Geoinformatik an, es gibt etwa 35 Studierende jährlich, und wir haben auch ein sehr großes PhD-Programm
02:05
mit etwa 45 Doktoranden. Es gibt 7 Arbeitsgruppen, ich bin in der Arbeitsgruppe GI Science Lab, und das Projekt Malawi Atlas war in Kooperation mit der Arbeitsgruppe Integrated Spatial
02:21
Indicators. Erstmal zum Vergleich, 2014 und 2019 von der Oberfläche hat sich jetzt nicht sonderlich viel geändert, vielleicht links ist alles noch ein bisschen mit durchsichtig und lauter Windows, die so rumfliegen, und rechts alles ein bisschen kompakter, aber das ist eigentlich gar nicht so der große Punkt, sondern es geht eher drum,
02:43
was im Hintergrund passiert ist, und wie sich der Source Code geändert hat, weil es war, in der ersten Version war es im Prinzip ein paar lange JavaScript-Files, wo alles auch hervorragend funktioniert hat, und jetzt haben wir das alles ein
03:01
bisschen komponentenbasierter gemacht, sodass wirklich jeder Teil der Webseite eine eigene JavaScript-Datei ist, können wir kurz hinschauen. Genau, also hier ist der Source Code, könnte ich anschauen, und jetzt nur als groben Überblick, wie das aussieht,
03:32
hier sind eben halt die sichtbaren Komponente, und jedes Chart, das Layer, Feature Info, die Map, Sprinter, Layout, alles hat seine eigene Klasse und kann theoretisch wieder
03:41
verwendet werden und ist auch einigermaßen leicht zu maintainen. Dann gleich mal ein Überblick, und zwar wie das aussieht, es ist im Prinzip der Klassiker vom Open-Source-GIS, also wir haben eine Post-GIS-Datenbank, wo die ganzen Vektor-Daten gespeichert sind,
04:03
dann im File-System liegen die Rastadateien, und alles wird eben vom Geo-Server mittels WMS und WFS geteilt, und die Webseite liegt im ganz normalen Apache-Web-Server, und mit QGIS oder auch mit jedem anderen Client kann man eben auch diesen WMS und
04:26
WFS direkt einbinden. Und jetzt zeige ich euch einfach mal, wie das aussieht. Genau, also hier ist eben Malawi-Atlas, auf der linken Seite sieht man eben die ganzen Layers
04:44
sind insgesamt über 100, und die sind eben erstmal strukturiert nach Regionen, aber man kann sich hier auch vordefinierte Karten anschauen, der wird dann gleich hingezoomt und genau eben gezeigt. Man kann auf einzelne Features klicken,
05:07
kriegt dann links unten eine Info, rechts ist eben die Legende, noch ein anderes Beispiel, genau gleiche Region. Hier gibt es dann auch so Funktionen, dass wenn ich hier auf ein
05:24
Polygon klicke, dann wird dann direkt aus den Daten von diesem einzelnen Feature, wird dann unten links ein Diagramm erzeugt, das quasi dynamisch gerechnet wird. Dann Funktionen, ich kann jetzt hier auf Malawi zoomen, dann die einzelnen Distrikte,
05:46
genau und die einzelnen Regionen, was auch noch ganz nett ist, ich kann auch drucken, jetzt tun wir nur einen schönen Ausschnitt suchen, da kann ich jetzt mir einen
06:02
Titel wählen und Inhalt, wird dann erstellt, genau, normalerweise geht es ein bisschen flotter, wir warten einfach mal, genau und dann kann ich mir eben die Karte als PDF her, da kommt sie schon, und habe es dann wirklich zum ausdrucken und genommen. Das wird dann
06:27
auch mit einem Geo-Server Plugin gemacht, also am Anschluss zu dem allerersten Vortrag, da werde ich aber gleich noch drauf eingehen. Okay, jetzt haben wir noch eine Dokumentation
06:41
gemacht, das ist mit Sphinx, werde ich auch noch später erzählen, was es ist, das ist einfach, man kann damit in Textdokumente eben genau reinschreiben, was dargestellt werden soll, man kann GIFs einfügen und das kann man dann als eine Webseite erstellen, aber man kann es auch als PDF generieren. Okay, dann erkläre ich nochmal ein bisschen
07:05
ausführlicher die einzelnen Komponenten, also wie gesagt Postgres und PostGIS nehmen wir, wir nutzen, also Postgresql ist eine sehr mächtige Software, wir nutzen allerdings die relationalen Fähigkeiten nicht wirklich aus, wir haben im Prinzip 100 Layer, die als einzelne
07:24
Tabellen drin liegen und auch nicht miteinander verbunden sind, genau, aber es ist auch für diesen Zweck absolut gut. Was wir aber gemacht haben, wir haben 7 PostGIS Schemas, was im Prinzip auch nur Namespace sind und zwar anhand der unterschiedlichen Regionen
07:44
und wir haben uns auch überlegt, dass wir die Tabellen einheitlich benennen, weil als ich das Projekt übernommen habe, waren es eben über 100 Tabellen, die sehr einheitlich benannt wurden und da hat man sich irgendwann nicht mehr zurechtgefunden und da haben wir uns einfach ein Benennungsschema überlegt, ob das der Weisheit letzter Schluss ist,
08:04
jetzt sei mal dahingestellt, auf jeden Fall für unseren Anwängungsfall war es ganz praktisch, also erst hatten wir ganz am Anfang eben das Schema, wo eben die Layer in der bestimmten Region drin liegen, dann erst eine Grubebezeichnung, dann die genaue Quelle und ganz am Schluss des Jahres, dass man sich so halbwegs zurechtfindet. Dann genau,
08:27
von Tio Server haben wir eben ausführlich Gebrauch gemacht, also man kann damit eben die Vektordaten aus PostGIS laden, dann die Rastadaten haben wir einfach ganz normal auf dem Server im Fallsystem abgelegt und wir haben auch teilweise ziemlich große Rastadaten,
08:45
weil wir nämlich Befliegungen von Drohnen hatten und da ist es auf jeden Fall wichtig, dass man die Daten etwas vorprozessiert und zum Beispiel Pyramiden rechnet, damit es viel performanter gelesen werden kann. Teilweise haben wir auch unsere Daten
09:01
bei einem Service namens OpenArialMap hochgeladen, es ist ganz grob vergleichbar wie OpenStreetMap eben nur für Rastadaten, da kann man seine Daten hochladen und die dann über WMTS zum Beispiel zur Verfügung gestellt und was man machen kann, man kann dann ein Redirect machen, das Tio Server sozusagen diese WMTS Ressource liest und das dann so
09:26
aussieht, als ob es zum eigenen Tio Server kommt. Genau, dann das Styling haben wir mit SLD gemacht, davor eben auch mit QGIS, mit QGIS 3 kann man eben auch das meiste Styling vom
09:40
QGIS als SLD exportieren und dann auch wieder in Tio Server laden und da ist es auch enorm wichtig, dass man die SLD-Files, die dann immer zum jeweiligen Layer gehören, auch ordentlich benennt, weil als ich das Projekt z.B. auch übernommen habe, waren auch die SLDs oft ganz anders benannt als wiederum die Layer in Posgis und auch wiederum anders benannt als
10:03
der Layer dann in Tio Server heißt und genau nur als Botschaft, wenn ihr irgendwann viele Daten habt, macht euch frühzeitig Gedanken über ordentliche Benennung, weil das schlussig eben auszahlt. Genau, noch ein Tipp für Tio Server und zwar kann man einen externen
10:21
Ordner angeben, in dem alle Daten liegen sollen und das macht absolut Sinn, weil wenn man den Tio Server updatet, dann bleibt der externe Ordner einfach an seinem Ort und Tio Server wird neu abgedatet und das trennt eben die Programmlogik von den eigentlichen Daten. Genau und wir
10:41
haben eben noch mehrere Plugins benutzt, einmal, das habe ich jetzt vorher nicht gezeigt, aber man kann jeden einzelnen Layer auch exportieren und ich habe jetzt als Standard Geo-Package genommen, also normalerweise, wenn man was exportiert, dann ist es immer Shapefile, aber ich habe jetzt bewusst nur Geo-Package angeboten und auch noch keine Rückfrage für Shapefile bekommen, also ein kleiner Schritt eben,
11:01
langfristig eben das Shapefile abzulösen. Dann, genau, Druck ist eben eigenes Plugin und was ich vorher gezeigt habe, vielleicht habe ich es eh gerade noch offen, genau, z. B. diese Pie-Charts oder die Kuchendiagramme, die werden auch direkt von Tio Server gerendert
11:23
und das ist eben auch ein eigenes Plugin. Genau, dann für die Webseite haben wir das Framework XJS genommen, das ist ein hervorragendes Framework für den Anwendungsfall,
11:42
es hat eine Dual-License, also wenn man den kompletten Source Code der Webseite auch Open Source macht, dann ist es unter der Lizenz GPL verfügbar, ansonsten muss man sich das kaufen, aber genau, wir haben eben die Open Source Version genommen und es gibt eine sehr starre Struktur vor, aber wenn man sich eben dieser Struktur eben anpasst,
12:06
dann hat man ein recht leichtes Leben und ist eben gerade praktisch für sehr datenintensive Sachen, z. B. ich kann es nochmal zeigen, was hier passiert bei Zoom,
12:21
das hier wird direkt von WFS, von dem Tio Jason gelesen und wenn ich eben, ich musste eben einen sogenannten X-Data-Store definieren und ich habe eben halt diesen Data-Store für die Regionen und für die Subregionen definiert und wenn ich das einmal gemacht habe, dann kann ich mir aus einer Vielzahl von Komponenten mir meine
12:41
Web-Applikation zusammenstellen und habe dann relativ viel geschenkt bekommen, also muss ich eben nur einmal anpassen und dann ist es relativ leicht seine Webseite quasi mit den vorgefertigten Komponenten quasi zu erweitern.
13:00
Zum Kartendarstellen haben wir Open Layers genommen und es gibt eine Library GeoX, die sozusagen die Schnittstelle zwischen XJS und Open Layers definiert und da, was es im Prinzip tut, ist die Open Layers eben in diese spezielle Struktur von XJS zu
13:23
verbinden, z. B. alle Layer, die eben in einer Karte angezeigt werden, werden dann als XJS-Data-Store genommen und genau das macht eben das Leben sehr viel einfacher. Insgesamt haben wir die Web-Applikation war damals auf Open Layers 2,
13:40
mittlerweile ist es ja, wo ich das Projekt neu gemacht habe, war es Open Layers 4, mittlerweile ist es Open Layers 5 und bald kommt wieder Open Layers 6 raus und es war auch kurz die Idee, ob wir jetzt einfach die Web-App selber updaten, also einfach nur die Version ändern, aber der Sprung zwischen Open Layers 2 und Open Layers 3 ist sehr
14:01
groß und deswegen ist es im Prinzip ein komplettes Rewrite geworden. Genau, dann, man kann, wie gesagt, mit XJS kann man sehr leicht Diagramme machen, wenn eben die Daten in diesem XData-Store vorhanden sind, hat man eine Vielzahl von Diagrammen und mit vielen Darstellungsmöglichkeiten, genau, kann man ganz leicht machen. Dann die
14:26
Druckfunktion, die ich vorher gezeigt habe, die heißt Geo-Server Print Plugin und da ist im Prinzip basiert auf MapFish Print in der Version 2 und funktioniert auch einwandfrei und recht flott. Das Einrichten ist nicht ganz trivial, aber ist im Prinzip
14:44
auch möglich, also muss man sich vielleicht mal einen halben Tag hinsetzen. Mittlerweile gibt es schon MapFish 3, was ein komplettes Rewrite ist mit Chesape Reports, aber es ist nicht in Geo-Servers als Plugin direkt noch nichts drin, aber wie gesagt,
15:03
meine Erfahrung mit dem Geo-Server Print Plugin ist einwandfrei und wenn man so die bestehenden Möglichkeiten nimmt, dann hat man ein recht leichtes Leben und wie das erstellt wird, dieses PDF erstellt einfach im Client ein JSON, das eben definiert, welchen Ausschnitt genommen wird und welche Layer genommen werden und dann schickt
15:23
man dieses JSON an den Server und der Server schickt das PDF zurück, also relativ simpel. Genau, nochmal die Dokumentation. Früher war die Dokumentation eben nur als PDF und es liest, lesen wahrscheinlich nicht so viele Leute und jetzt haben wir es eben auf Sphinx genommen und Sphinx ist eben ein Dokumentationsengine, der in
15:46
ganz vielen Open Source Projekten, wie z.B. auch QGIS, genommen wird und eine wirklich Vielzahl an verschiedenen Funktionen hat. Wir haben da eh nur die allereinfachsten Funktionen genommen und man schreibt eben die Dokumentation in RST-Dateien, die ähnlich wie Markdown sind, ein bisschen weniger intuitiv,
16:05
aber im Prinzip ist man auch recht schnell drin und hat eben halt den super Vorteil, dass man sofort, man kann die Dokumentation als Webseite eben publizieren, man gibt einen Befehl mit der Kommando-Zeile, die dann den Source Code der Webseite generiert, aber man kann auch genauso guten PDF
16:21
draus erzeugen und man kann, wenn man z.B. neue Features einbaut, das dann direkt auch in die Dokumentation reinbauen und automatisch dann immer die aktuellste Version neu bauen, also kann ich sehr weiter empfehlen. Was ein bisschen problematisch ist, also was auf jeden Fall geht, ist der
16:40
Upload von Daten, aber es ist eben nicht super trivial. Wenn ich jetzt Daten uploaden will, dann nehmen wir das Beispiel von Vector-Daten, dann muss ich erst die Vector-Daten in die Postgres-Datenbank reinladen, das kann man mit QGIS relativ einfach machen, dann muss ich im Geo-Server in der Admin-Oberfläche auswählen, dass ein Layer publiziert werden soll, dann
17:04
muss ich ein Styling, entweder bin ich mit dem Styling zufrieden oder ich muss das Styling eben noch mal separat mit SLD erzeugen oder mit QGIS vorprozessieren lassen und auch dem Geo-Server wieder dann das Styling mitteilen und dann als schlussendlichen Schritt muss ich den
17:21
neu publizierten Layer in der Web-App einfügen, da haben wir eine JSON-Datei, wo alle Layer drinstehen und genau, also kann man alles machen, man kann neue Layer einfügen, aber es ist nicht so einfach und da habe ich jetzt z.B. auch gelernt, auf der Konferenz gibt
17:40
bei Geo-Server ein Import-Plugin, wo man scheinbar relativ leicht Daten importieren kann. Gut, nur ganz kurz als Ausblick, was für Alternativen möglich gewesen wären, das ist nur eine Infografik über Backend- und Frontend-Technologien, was möglich ist, nur erstmal das Backend, es gibt neben Geo-Server eben auch
18:04
noch QGIS-Server, Map-Server, Decree, was speziell an QGIS-Server spannend ist, ist, dass man eben das Styling über die GUI machen kann, also über das Programm und nicht in SLD exportieren und so weiter, das ist ein Vorteil und man kann eben PDF-Karten auch
18:23
Print Composer von QGIS direkt erstellen, das ist auch ein bisschen leichter. Metadaten haben wir jetzt z.B. direkt in den Source-Code reingeschrieben, was zwar pragmatisch ist und einwandfrei funktioniert, aber es wäre vielleicht schöner, wenn das jetzt in Zukunft über den CSW-Service, also den Catalog-Server for Web eben publiziert und noch als letzten
18:46
Kommentar zum Frontend, also wir haben auch überlegt, was können wir nehmen, dass man sich nicht alles selber bauen muss, da gibt es eben schon viele vordefinierten Frameworks, zwischen Map-Bender, Map-Store, Map-Fish, Geo-Mos und wir haben uns aber dafür entschieden, eben die
19:04
alles selber zu bauen, weil wir eben ein paar Sachen, wie z.B. Diagramma-Stellung, wirklich selber machen wollten, aber prinzipiell kann man fürs Frontend auch einfach vordefinierte Lösungen nehmen und wenn man will, kann man sich auch alles komplett selber bauen, wie Videos gemacht
19:21
haben, man nimmt sich ein Web-Framework, extra AS haben wir genommen, aber heutzutage nimmt man oft Angular, React oder Vue und eine Map-Library und kann dann quasi nach Herzenslust alles einbauen, was man will, aber hat relativ viel Aufwand. Dann wäre ich soweit durch und bedanke mich für eure Aufmerksamkeit.
19:45
Vielen Dank, da gibt es sicher noch Fragen dazu oder auch nicht.
20:03
Super Vortrag, wie funktioniert das mit dem Diagramm, ist das auf einem Canvas-Element oder ist das jetzt, also dieses Diagrammelement, was XJS ist? Ja, also XJS bietet eben viele Komponenten an und es ist eben eine vordefinierte Diagramm-Komponente und man
20:25
kann im Prinzip dann einfach sagen, diese spezielle Komponente soll jetzt ein Diagramm sein und kann dann eben mit dem JSON definieren, welche Daten genommen werden und wie die aussehen sollen und genau, also ist sehr framework-spezifisch.
20:57
Ist das an? Eine Frage zu dem Sphinx, wenn ich es richtig verstanden
21:03
habe, man hat also quasi eine Eingabendatei und kann dann die Ausgabe-Formate generieren, ist das jetzt nur quasi statischer Text, den man machen kann oder könnte man da z. B. auch dynamisch aus Inhalten der Datenbank jetzt irgendeinen Bericht erstellen, der jetzt quasi textlich gefüllt wird an bestimmten
21:23
Feldern mit Abfragen aus der Datenbank? Also ich glaube prinzipiell kann man das machen, ich weiß nur nicht, ob Sphinx dafür gebaut wurde, also es hat wirklich für Dokumentation gedacht und jetzt nicht für Report-Erstellung. Ich weiß nicht, wenn es jetzt um, also geht es um
21:42
Reports von irgendwie Geodaten speziell, ja genau, also wenn man das machen will, da gibt es eben Chesapeh, das ist eben eine Chava-Lösung, in der man eben generell Report generieren kann und es gibt eben jetzt auch dieses Map für Sprint 3, baut eben auf diesem Chesapeh auf und da erweitert
22:03
es eben sozusagen um Kartendokumente und da kann man auch wirklich sich ausgiebige Reports aus den Geodaten generiert machen lassen. Haben wir jetzt noch nicht benutzt, aber genau, ist prinzipiell möglich.
22:24
Noch eine kurze Frage zum Inhalt des Portals. Welche Desasterarten werden dort da überhaupt dargestellt, konnte ich von hinten nicht sehen und wie aktuell sind die Informationen? Ja, gute Frage. Also wie gesagt, ich habe es bewusst mich nicht auf den Inhalt fokussiert. Im Prinzip geht es um alle möglichen Naturgefahren
22:41
wie Dürre, Überschwemmungen, Stürme, genau und das wurden eben in Kooperation mit den Entwicklungshelfern vor Ort haben, die das eben aufgezeichnet, genau, teilweise ein paar
23:01
Jahre alt, teilweise aktueller, aber genau, ich muss ehrlich zugeben, ich habe mich mit den Daten an sich jetzt nicht intensiv beschäftigt, das haben wir andere gemacht. Ich war der Techniker, der das alles implementiert hat. Ja schon, ja, genau, also wir führen jetzt noch ein Training durch mit den Leuten vor
23:22
Ort, dass die eben auch ihre Daten hochladen können und das Ziel ist schon, dass es weitergeführt wird. Dankeschön. Gibt es noch Fragen? Sonst bedanke ich mich bei Jakob Micks und
23:41
ja, Dankeschön.