Giter Site home page Giter Site logo

krakow-tram-lines's Introduction

krakow-tram-lines

Simulation of Kraków's Tram Lines

Opis

krakow-tram-lines to projekt symulujący krakowską sieć tramwajową, dane zebrane zostały za pomocą następujących stron:

Symulacja została stworzona w środowisku Godot 4, za pomocą zebranych wcześniej danych. W symulacji możemy obserwować połączenia między tramwajami, jak i tramwaje przemieszczające się po nich. Symulacja posiada kilka dodatkowych funkcjonalności:

  • Możliwość nawigowania po mapie, przybliżania i oddalania.
  • Możliwość podejrzenia danych tramwaju o konkretnym ID.
  • Możliwość zatrzymania symulacji, przejścia do następnego kroku.
  • Możliwość podglądnięcia lub schowania nazw przystanków.
  • Możliwość wyświetlenia specyficznej linii tramwajowej.

Instrukcja instalacji

Instrukcja generacji danych

Podstawą naszego backendu jest python (3.12), w związku z czym stworzyliśmy paczkę ktl. Komenty muszą być użyte w głównym working directory projektu.

  1. Instalacja dependency pythona.
pip install -r .\requirements.txt         # Wymagane paczki wymagane do zbudowania i sprawdzenia projektu

pip install -r .\requirements_dev.txt     # Wymagane paczki do testowania paczki
  1. Instalacja paczki projektu
pip install -e .
  1. (Opcjonalne) Sprawdzenie Flake8:
flake8 .
  1. (Opcjonalne) Sparwdzenie pylint:
pylint src
  1. (Opcjonalne) Sprawdzenie PyTest:
pytest .
  1. (Opcjonalne) Sprawdzenie całości przy pomocy tox:
tox .
  1. (Opcjonalne) Budowa dokumentacji:
sphinx-apidoc -o docs/source src/ktl
sphinx-build -M html docs/source/ docs/build/

Zbieranie danych

Aby zbudować wszyskie dane wejściowe modelu należy:

  1. Odpalić następujący program po zainstalowaniu paczki:
python .\src\ktl\acquisition\__main__.py -c ./res/config.json -s ./data/generated -f True 

gdzie:

  • [-c] to config do API i webscrapperów.
  • [-s] to folder gdzie zapisać dane.
  • [-f] to aby nadpisać ten folder jeżeli trzeba.
  • [-o] to w jakim formacie zapisać - wymagany jest mimium pickle, a excel jest do wglądu w schemat danych.

Wszyskie dane są już umieszczone w repozytorium, także w przypadku niepowodzenia w instalacji jes możliwość odtworzenia jak działał program.

Program następnie zbierze i stworzy odpowiednie dane w poodanym folderze.

Przetwarzanie danych

Stworzy dane dotyczące konkretnych pojezdów oraz ich rozkładów.

python ./src/ktl/aggregation/merge/tram_data_mergere.py

Stworzy informacje dotyczące obróbki pozycji przystanków.

python ./src/ktl/aggregation/create_json_lines.py

Aby wygenerować własny plik zawierający informacje o pasażerach symulacji linii tramwajowych należy

  1. Uruchomić następujący program
python .\src\ktl\model\simulate_people.py 

Wygenerowany zostanie plik people.json na podstawie ustalonych parametrów w folderze ./data/generated/json

  1. Można zwizualizować funkcję generacji programem
python .\src\ktl\model\probability.py 

Instrukcja symulacji

Projekt symulacji znajduje się w folderze src/ktl/visualisation/ktl-godot. Odpalony w środowisku Godot 4 można podejrzeć projekt od podszewki. W samym projekcie, w folderze Data znajdują się pliki json, będące kopią tych z poprzedniego kroku. Można je podmienić, jeśli ktoś chce wykorzystać inne dane. Sama aplikacja znajduje się w GITHUB REALISES. Należy pobrać całą zawartość tego folderu i odpalić element krakow-tram-line.exe.

Autorzy

krakow-tram-lines's People

Contributors

forneus57 avatar haarmeggido avatar didgetpl avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

haarmeggido

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.