Giter Site home page Giter Site logo

michigg / lector_backend Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 11.23 MB

Lector Backend

License: GNU Affero General Public License v3.0

Dockerfile 0.01% Java 47.70% Shell 0.15% CSS 0.28% HTML 0.08% JavaScript 50.38% Python 1.41%
django django-rest-framework drf networkx osmnx shapely visibility-graph

lector_backend's Introduction

BA_Backend

Installation Guide

    1. Optional: CHANGE ENVS in docker/lector/dev.env for Customation (e.g. change univis semester)
    1. RUN docker-compose up -d
    1. OPEN Browser on localhost:8888 for Backend API or for Graphhopper localhost:8989

Run Tests

    1. RUN docker-compose up -d
    1. RUN docker-compose exec lector sh
    1. RUN python3 manage.py tests

lector_backend's People

Stargazers

 avatar

Watchers

 avatar  avatar

lector_backend's Issues

OSM Data Open Spaces Update

Die heruntergeladenen Daten sollten an den Open Spaces erweitert werden.

Aus Graser:
Open Space base algorithm:

1  foreach open space polygon P do
2    extract all nodes N of P;
3    create edges between all N;
4    foreach edge between all N do
5      set edge from_id and to_id to the respective node IDs;
6      avoid duplication of edges by checking node_from_id < node_to_id;
7    end
8    remove edges which are not within P;
9    insert all remaining edges into the routing graph.;
10 end

Extended algorithm for adding only relevant visibility graph edges to the routing graph

1 foreach open space polygon P do
2   execute lines 2-8 of the base algorithm;
3   identifiy all nodes Nc which connect to the existing routing graph;
4   compute shortest paths between all Nc;
5   remove edges which are not on the shortest paths;
6   insert all remaining edges into the routing graph; 
7 end

BBox Polygon abstraction removes to much nodes

Wenn das Straßennetz innerhalb des Polyons, dass durch eine BBox abstrahiert wurde, gelöscht wird, gehen zu viele knoten des Originalen Netzwerkes verloren.
Besser wäre es das walkable Polygon direkt als Abgrenzung zu nehmen.
osmnx.core.graph_from_polygon(polygon)

Eintrag Feki

Die Feki eintragen.

  • Freiflächen
  • Gebäude
  • Entries

automatic osm public pedestrian open space detection

Begehbare Freifläche sollten automatisch als solche erkannt werden und in das Wegenetz hinzugefügt werden.

Probleme und Lösungen:

Detektion der begehbaren und ggf. nicht begehbaren Freiflächen

Es dürfen nur Freiflächen erkannt werden, die auch öffentlich begehbar sind. Falls in den Freiflächen nicht begehbare Freiflächen erkannt wurden, müssen diese ebenfalls berücksichtigt werden.

Lösung:

  • In OSM werden areas als geschlossene Wege mit den entsprechenden Tags definiert. (Overpass Tag Liste)
  • Um die Flächen aus OSM lesen zu können bietet sich die Overpass API an
  • TODO: Freiflächen Tags, ...
  • Beispiel anfrage für Freiflächen

Erkennen der Zugangspunkte zur Freifläche

Die Zugangspunkte (Punkte die sich zum aktuellen Wegenetz verbinden sollen) müssen vor dem Einfügen definiert sein.

Lösung

  • Aktuell kein Lösungsansatz voranden

Einfügen der Freifläche

Einfügen den Freifläche in das Wegenetz

Lösung

Einbindung in die bestehende Implementation für geojson formatierte Freiflächen

Fix bamberg data

Graphhopper meldet "IndexOutOfBounceError -1" wenn osm daten eingelesen werden sollen.

Aktuell als funktionierend festgestellte OSM daten:

  • '350 5th Ave, New York, New York', network_type='all'
  • 'Berlin, 10117, Deutschland', network_type='all'
  • oberfranken von geofabrik

Alle funktionierenden Daten sind nicht praktikabel. Auch oberfranken. Da diese zu groß sind um sinnvoll damit arbeiten zu können

Advanced Lecture Result split

Die Vorlesungsergebnisse werden aktuell nur anhand ihrer Uhrzeit aufgeteilt. Dies führt dazu, dass Vorlesungen, die an einem anderen Tag stattfinden vor Vorlesungen am richtigen Tag angezeigt werden

Indoor Map Generierung

Es wird ein Indoor Map Generator benötigt.

Hierfür werden die Eingänge kartiert und Raumbereiche hinzugefügt.

  • Erfassung der Raumbereiche
  • Erfassung der Eingänge
  • Erstellung der Map

Reducing Route Transfers

Route wird bei jedem erkannten Positionswechsel angefragt. Dies führt hohen Traffic.

Besser wäre es die Route nur bei deutlichem Positionswechsel anzufragen (z.B. 30m)

blocked entry

Wenn ein Eingang als blockiert markiert wird, soll dieser beim nächsten Graph build nicht dem Wegenetz hinzugefügt werden.

Readable Logo

Das Logo sollte auch für alle ersichtlich sein. ^^

Optional Map Centering

Bei jedem Standort Update wird die Karte zentriert. Dies sollte eine Optionale (Opt Out) Funktion sein.

Manipulation der OSM Daten

Die OSM Daten müssen durch den Visibility Graph aufbereitet werden.

Die Daten sollen mit folgenden Informationen ausgestattet werden.

  • Visibility Graph für Freiflächen
  • Fehlende Eingänge
  • Indoor Netzwerk

blocking areas

Manche Flächen müssen gesperrt werden. Diese Sperrflächen dürfen auch nicht berührt werden.

Advanced Voice

  • Bessere Synthetische Stimme
  • Wartezeit zwischen den Ausgaben
  • Bei geringen Abstand zum nächsten Punkt, nächsten Punkt vorlesen

m3n keller

In UnivIS sind die K Gebäude als -1 ausgezeichnet. Daher sollten diese Räume auch geändert werden.

Advanced inter building links

Die Querverweise zwischen den Gebäuden und Freiflächen und innerhalb von Gebäuden zwischen Treppenhäusern sollte noch verbessert werden, um die Exploration des Platzes besser zu ermöglichen.

connected staircases

Die Knoten der Treppenhäuser sollten verbunden sein, um ein alternative Wege anbieten zu können.

Import der UnivIS Raumdaten

Die Daten von UnivIS sollen entweder in der Datenbank gespeichert oder von UnivIS direkt abgefragt werden.

  • UnivIS queries
  • Abfrage der Raumdaten
  • Abfrage der Veranstaltungen

blocked staircase

wird ein staircase als blockiert markiert, so soll dieser nicht mehr dem Wegenetz hinzugefügt werden. Die vom Treppenhaus verwalteten Räume werden zufällig dem nächsten Treppenhaus übergeben (bzw. das Treppenhaus, das alle Stockwerke umfasst).

bicycle parking lots

Für die Fahrrad Navigation wäre eine Erfassung der Fahrradparkplätze sinnvoll.

Route -> Fahrradparkplatz -> Vorschlag Fußgängernavigation -> Navigation

Aktuelle Probleme und Lösungsansätze:

Einzeichnung der Fahrradparkplätze

Fahrradparkplätze nur selten in den OSM Daten vorhanden. Für die Unistandorte fehlt diese Auszeichnung komplett.

Lösung

Daher müssten sie selbst modelliert werden oder in den OSM Daten nachgetragen werden. Hierfür gibt es auch einen speziellen OSM tag Tag:amenity=bicycle_parking OSM Referenz

Fahrradparkplatzauswahl

Faktoren, die die Fahrradparkplatzauswahl beeinflussen können:

  • Zeit (Auslastung der Parkplätze ist im Zeitverlauf unterschliedlich)
  • Auslastung der Parkplätze (Erfassung der genauen Auslastung nötig)
  • Weg Differenz (Berücksichtigung des noch zu laufenden Weges)

Lösung

Aktuell keine sinnvolle Lösung, da vor allem die Daten für eine solche Auswahl fehlt. Daher wäre aktuelle die Route mit der kürzesten zu Fuß Route die beste approximation.

Verbindung des Fahrradparkplatzes zur Straße

Die meisten Fahrradparkplätze befinden sich auf in einer Freifläche. Es ist wünschenswert, dass die Fahrrad Route nur den kürzesten Weg von der angrenzenden Straße zum Fahrradparkplatz ausbildet.

Lösung

Noch keine gefunden.

delayed load

Wenn man zu lange bei der Eingabe wartet, kann es passieren, das nach dem gewünschten Ergebnis die vorherige Suche angezeigt wird.

user informations

Um die Aktionen dem Nutzer greifbar zu machen sollte eines eine Übersicht geben zu den aktuellen Build:

  • Eingebundene Freiflächen:
    • Anzahl
    • Pro Freifläche
      • Name
      • von OSM oder selbst gemapped
      • Anzahl Verbindungen zum Straßennetz
      • Anzahl der blockierten Flächen
      • Anzahl der eingeschränkten Flächen
  • Eingebundene Treppenhäuser
    • Anzahl
    • Anzahl der blockierten Treppenhäuser
    • Anzahl behindertengerechter Treppenhäuser (Mit Aufzug)
    • pro Gebäude
      • Gebäude id: Treppenhaus namen
      • Anzahl
      • Anzahl der blockierten Treppenhäuser
      • Anzahl behindertengerechter Treppenhäuser (Mit Aufzug)

Automatischer Graphhopper Neustart

Nachdem die OSM Daten heruntergeladen wurden und die neuen Daten in das Graphhopper Verzeichnis gelegt wurden, soll die Routing Engine automatisch neu gestartet werden.

custom open space edges name

Die neuen Kanten sollten den Namen der Freifläche erhalten. Falls dieser nicht vorhanden reicht "Freifläche" oder "Open Space"

Await Destination Point response

Wenn ein Raum ausgewählt wird, erscheint der Zielpunkt kurz rot, obwohl noch nicht klar ist, ob es diesen Raum wirklich nicht gibt.

Durch abwarten auf die Antwort, sollte dies verhindert werden.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.