View the Project on GitHub FabianRuefenacht/DEFVIS
Fabian Rüfenacht Lucas Wunderli Nathan Matzinger
Muttenz, 12.03.2024
Inhaltsverzeichnis
Dieses Konzept beschäftigt sich mit der Entwicklung einer Geodateninfrastruktur durch Geomatik-Studierende an der Fachhochschule Nordwestschweiz. Ziel ist die Visualisierung von dreidimensionalen Verschiebungsvektoren in einem WebGIS. Im Backend soll die nutzerabhängige Speicherung verschiedener Messsessionen und die Berechnung der Verschiebungen möglich sein. Das Projekt wird durch Coaching und Peer-Learning unterstützt.
Dieses Projekt konzentriert sich auf die Entwicklung einer benutzerfreundlichen WebGIS-Umgebung, die es den Nutzenden ermöglicht, Geodaten effizient zu verwalten, zu visualisieren und zu analysieren. Die Hauptfunktionen umfassen die Erstellung und Verwaltung von Projekten sowie die Integration von Punkten und Messungen in diese Projekte.
Benutzer und Benutzerinnen haben die Möglichkeit, verschiedene Arten von Daten in die Plattform zu importieren und diese dann auf einer interaktiven Karte anzeigen zu lassen. Ferner wird ein 3D-Viewer integriert, um eine immersive Visualisierung von geografischen Informationen zu ermöglichen.
Ein wesentlicher Aspekt des Projekts ist die Unterstützung von Überwachungsaufgaben, beispielsweise für Bauwerke wie Staumauern. Durch die Integration von mehreren Messungen können Anwendende die Entwicklung und Veränderung der Überwachungsdaten über die Zeit hinweg verfolgen. Dies wird durch die Darstellung der Daten mithilfe von Zeitreihenanalysen (ZRA) oder Vektoren in der WebGIS-Umgebung erleichtert.
Folgende URL führt zum Projekt: https://github.com/FabianRuefenacht/6230_FRNMLW
Das Hauptziel der Geodateninfrastruktur besteht darin, Deformationsmessungen zu verwalten und dreidimensionale Verschiebungen zu visualisieren, um eine wirkungsvolle Überwachung und Analyse von geophysikalischen Veränderungen in Echtzeit zu ermöglichen. Die Darstellung dieser Daten im dreidimensionalen Kontext bietet den Nutzern und Nutzerinnen eine intuitive und umfassende Sicht auf die Daten, was zu fundierteren und informierteren Entscheidungen führt.
Die Implementierung dieser Funktionen zielt darauf ab, eine effiziente und effektive Datenanalyse sowie eine ansprechende Visualisierung zu ermöglichen, wodurch die Anwendung eine breite Palette von Anwendungsgebieten abdecken kann, von Infrastrukturüberwachung hin zu Umweltmanagement.
Die zentrale Frage dieses Projekts lautet: Wie können Punktverschiebungen effektiv dreidimensional visualisiert werden, um die Analyse und Interpretation von Bewegungs- und Verformungsmustern zu erleichtern und zu verbessern? Dabei ist es von entscheidender Bedeutung, geeignete Techniken und Methoden zu identifizieren, die eine detaillierte, präzise und benutzerfreundliche Darstellung ermöglichen.
Diese Fragestellung zielt darauf ab, die Herausforderungen bei der Visualisierung von raumbezogenen Daten zu adressieren und Lösungen zu entwickeln, die es den Benutzenden ermöglichen, komplexe geophysikalische Veränderungen besser zu verstehen und fundiertere Entscheidungen zu treffen.
Indem diese Fragestellung näher untersucht wird, sollen nicht nur die technischen Aspekte der Visualisierung von Punktverschiebungen berücksichtigt werden, sondern auch die Bedürfnisse und Anforderungen der Benutzer im Hinblick auf die Benutzerfreundlichkeit der dargestellten Informationen.
Die Anwendungsarchitektur beschreibt die Struktur und Organisation der Softwareanwendung, einschliesslich der Patterns, Techniken und Komponenten, die bei der Entwicklung verwendet werden.
Diese klar strukturierte Architektur ermöglicht eine nahtlose Integration von Frontend und Backend, um eine leistungsstarke und benutzerfreundliche WebGIS-Anwendung zu schaffen.
Das Frontend des WebGIS bietet eine Vielzahl von Funktionalitäten, die es den Benutzern und Benutzerinnen ermöglichen, Geodaten intuitiv zu verwalten, zu visualisieren und zu analysieren:
Das Backend des WebGIS bietet die notwendige Infrastruktur und Logik, um die Funktionalitäten des Frontends zu unterstützen:
Das Frontend wird mit dem JavaScript-Framework Next.js gemacht. Next.js bietet die Unterstützung des serverseitigen Renderings. Somit lassen sich Cookies leicht erstellen und abfragen, was die Zugriffsberechtigung zu einzelnen Projekten erleichtert. Im Frontend wird die Programmiersprache TypeScript verwendet. Gegenüber JavaScript ermöglicht TypeScript die Definition von Datentypen, was die Stabilität des WebGIS erhöht. Die Darstellung des User-Interfaces wird mit Tailwind CSS gemacht. Die Zugriffsberechtigung wird mit Cookies geregelt. Die Cookies werden mit bcrypt.js erstellt. Vom Backend werden die Anforderungen an das Cookie gesendet. Im Frontend wird geprüft, ob das Cookie den Anforderungen entspricht.
Die Darstellung der Punkte und Verschiebungen wird mit einer JavaScript-Bibliothek realisiert. Dafür kommen derzeit die Bibliotheken OpenLayers und Leaflet infrage. Im Laufe der Umsetzung gilt zu klären, welche Bibliothek sich am besten eignet.
Die Visualisierung der dreidimensionalen Verschiebung soll ebenfalls über eine JavaScript-Bibliothek erfolgen. Derzeit ist nicht geklärt, welche Bibliotheken sich dafür eignen. Gleiches gilt für die Visualisierung der Zeitreihen.
Die Kommunikation zwischen Fronend und Backend wird durch FastAPI geführt. Die Typendefinition der ein- und ausgehenden JSON-Formate wird mit pydantic geregelt, um semantische Richtigkeit zu gewährleisten.
Für die Verwaltung von Nutzerprofilen, Projekten, Sessionen und Punkten wird auf eine SQLite-Datenbank gesetzt. SQLite ist eine schlanke Datenbank mit wenigen Funktionen. Dadurch ist sie schnell und leistungsstark. Aufgrund der geringen Menge an Geodaten kann auf eine räumliche Datenbankstruktur verzichtet werden.
Die Berechnungen im Backend werden von Grund auf selbst programmiert und durch die Verwendung von NumPy auf die höchstmögliche Effizienz gehoben.
Der Mockup- und GUI-Aufbau skizziert die Benutzeroberfläche der Anwendung, einschliesslich der verschiedenen Fenster und Pop-ups. Das Styling der Komponenten wird im Endprodukt überarbeitet.
Login-Fenster
Das Login-Fenster ermöglicht Nutzenden, sich anzumelden oder neu zu registrieren (siehe Abbildung 1 Login-Fenster Button „New“). Fehlerhafte Anmeldeinformationen oder eine fehlende Registrierung werden durch entsprechende Meldungen signalisiert.
Login-Fenster |
---|
Quelle: Screenshot vom 02. März 2024 aus QT-Designer |
Main-Fenster
Das Hauptfenster (Main-Fenster) präsentiert die Hauptansicht der Anwendung mit einer anpassbaren Hintergrundkarte. Links davon befindet sich das Registermenü, darunter sind Funktionen angeordnet, die es Benutzern ermöglichen, verschiedene Informationen aufzurufen. Standardmässig werden Informationen zu den Punkten des Projekts angezeigt.
Main-Fenster |
---|
Quelle: Screenshot vom 02. März 2024 aus QT-Designer |
Zeitreihenanalyse
Durch Klicken auf den „ZRA“-Button wird eine Analyse der Zeitreihen für die Punkte im Projekt angezeigt.
Zeitreihenanalyse |
---|
Quelle: Screenshot vom 02. März 2024 aus QT-Designer |
3D-Fenster
Der „3D“-Button öffnet das 3D-Fenster, in dem die Punkte und Vektoren dreidimensional visualisiert werden.
3D-Fenster |
---|
Quelle: Screenshot vom 02. März 2024 aus QT-Designer |
Neues Projekt
Das Pop-up „Neues Projekt“ ermöglicht es Benutzenden, ein neues Projekt zu erstellen, indem sie Projektname, die oder den Hauptverantwortliche/n und Kundeninformationen eingeben und dann auf „Projekt erstellen“ klicken.
neues Projekt |
---|
Quelle: Screenshot vom 02. März 2024 aus QT-Designer |
Projekteröffnung
In diesem Pop-up werden alle vorhandenen Projekte aufgelistet. Nutzende können ein Projekt auswählen und durch einen Klick auf „Projekt öffnen“ laden.
Projekteröffnung |
---|
Quelle: Screenshot vom 02. März 2024 aus QT-Designer |
Datei hochladen
Das Pop-up „Datei hochladen“ dient zum Hochladen von Dateien.
Datei hochladen |
---|
Quelle: Screenshot vom 02. März 2024 aus QT-Designer |
Das Flussdiagramm veranschaulicht den sequenziellen Ablauf der wichtigsten Funktionen und Interaktionen in der Anwendung. Es bietet einen klaren Überblick über die verschiedenen Schritte, die Benutzer und Benutzerinnen durchlaufen, und zeigt, wie die einzelnen Komponenten miteinander verbunden sind.
Flussdiagramm |
---|
Quelle: Screenshot vom 02. März 2024 aus OneNote |
Dieses Kapitel stellt zwei typische Benutzerprofile (User Persona) vor, beschreibt ihre Nutzung der Webanwendung und beschreibt mögliche inkorrekte Interaktionen.
Beschreibung:
Nutzung der Webanwendung durch Max:
Mögliche inkorrekte Interaktionen:
Beschreibung:
Nutzung der Webanwendung durch Melanie:
Mögliche inkorrekte Interaktionen:
Die in der Webanwendung verwendeten Geodaten umfassen verschiedene Quellen:
User-generierte Daten:
OpenData:
Durch die Kombination dieser verschiedenen Geodatensätze bietet die Webanwendung eine umfassende und detaillierte Darstellung der geografischen Umgebung und der durchgeführten Messungen.
Die Punktdaten/Sessionen, welche vom Projektersteller/der Projekterstellerin bereitgestellt werden, haben die Attribute Punktnummer, Ost-Wert, Nord-Wert, Höhe und Zeitstempel. Der Zeitstempel wird für die Zeitreihenanalyse benötigt.
Die Landeskarte und das Orthofoto werden direkt als WMS-Dienst von der Swisstopo eingebunden. Der WMS-Dienst verfügt über den GetMap-Aufruf. Damit kann die gewünschte Karte abgerufen werden. (swisstopo 2021)
Die Hintergrundkarte von OpenStreetMap kann über XYZ-Tiles bezogen werden.
SwissSURFACE3D ist ein Höhenmodell der Swisstopo. Es können Kacheln mit der Ausdehnung 1 km2 bezogen werden. Der Inhalt der Kacheln ist eine klassierte Punktwolke. (swisstopo 2024).
Eine umfassende Dokumentation des WebGIS wird mithilfe von GitHub-Pages erstellt.
GitHub-Pages ist eine Plattform zum Erstellen, Bearbeiten und Veröffentlichen von Büchern und technischer Dokumentation. Mit Markdown geschriebene Inhalte können in verschiedenen Formaten exportiert werden.
In diesem Abschnitt werden die einzelnen Aufgaben, der geschätzte Zeitaufwand und der Zeitplan für die Umsetzung des Projekts dargestellt.
Task | Beschreibung | Geschätzter Zeitaufwand (Stunden) |
---|---|---|
Login-Bildschirm | Implementierung des Anmelde- und Registrierungsformulars | 5 |
Grundgerüst der Website (Layout) | Entwicklung des grundlegenden Layouts der Webanwendung | 8 |
Einbettung der Karten | Integration von Karten-APIs für die Anzeige von Geodaten | 10 |
Interaktive Diagramme für ZRA | Entwicklung von interaktiven Diagrammen für die Zeitreihenanalyse | 20 |
Interaktive 3D-Visualisierungen | Implementierung interaktiver 3D-Visualisierungen der Verschiebungen | 20 |
Visualisierungskonzept für 2 + 1D | Konzeption und Umsetzung einer Visualisierung für 2+1D-Daten | 10 |
Autorisierung Login | Einrichtung von Benutzerkonten und Authentifizierungssystem | 20 |
Berechnungen | Implementierung der erforderlichen Berechnungen und Algorithmen | 15 |
Datenbankschema | Entwurf und Implementierung des Datenbankschemas | 10 |
Datenaufbereitung JSON | Vorbereitung und Formatierung von Daten im JSON-Format | 20 |
Zusammenführen Frontend und Backend | Integration und Abstimmung von Frontend- und Backend-Entwicklungen | 20 |
Quelle: private Ablage
Auszug aus dem Zeitplan |
---|
Quelle: Screenshot vom 05. März 2024 aus Exceltabelle Zeitplan.xlsx |
Siehe kompletten Zeitplan im Anhang: Zeitplan.pdf, Stand vom 12. März 2024.
swisstopo (2021) Web-Map-Tiling Services WMTS: Verfügbare Dienste und Daten. Verfügbar über: https://www.geo.admin.ch/de/wmts-verfuegbare-dienste-und-daten (Letzter Zugriff: 11.03.2024).
swisstopo (2024) swissSURFACE3D. Verfügbar über: https://www.swisstopo.admin.ch/de/hoehenmodell-swisssurface3d (Letzter Zugriff: 11.03.2024).