Курсовая работа на тему кластерный анализ геоданных.
-
База данных
- БД postgres в docker
- В базе одна таблица с 44 столбцами
- Каждая строка таблицы - это событие ДТП
- Структура таблицы: report_number VARCHAR (100), local_case_number VARCHAR(255), agency_name VARCHAR(255), acrs_report_type VARCHAR( 255), crash_date_time DATE, hit_run VARCHAR(5), route_type VARCHAR(255), mile_point DECIMAL, mile_point_direction VARCHAR(10), lane_direction VARCHAR(10), lane_number INTEGER, lane_type VARCHAR(255), number_of_lanes INTEGER, direction VARCHAR(10), distance DECIMAL, distance_unit VARCHAR(10), road_grade VARCHAR(255), nontraffic VARCHAR( 5), road_name VARCHAR(255), cross_street_type VARCHAR(100), cross_street_name VARCHAR(255), off_road_description VARCHAR(255), municipality VARCHAR(100), related_non_motorist VARCHAR(50), at_fault VARCHAR(20), collision_type VARCHAR(100), weather VARCHAR(30), surface_condition VARCHAR(50), light VARCHAR(30), traffic_control VARCHAR(50), driver_substance_abuse VARCHAR(150), non_motorist_substance_abuse VARCHAR(150), first_harmful_event VARCHAR(100), second_harmful_event VARCHAR(100), fixed_object_struck VARCHAR(100), junction VARCHAR(50), intersection_type VARCHAR(50), intersection_area VARCHAR(50), road_alignment VARCHAR(30), road_condition VARCHAR(30), road_division VARCHAR(150), latitude DECIMAL, longitude DECIMAL, geolocation VARCHAR(150)
- Датасет для бд хранится по урлу https://data.montgomerycountymd.gov/Public-Safety/Crash-Reporting-Incidents-Data/bhju-22kf
-
Фронтенд
- HTML форма с картой google maps. На карте отображаются точки (кластера).
- Фронт получает данные для отрисовки (широта и долгота) по ручке предоставляемой бэком. Ручек четыре:
- кластера по ДТП с пешеходами и велосипедистами, собранные с помощью алгоритма k-means
- кластера по всем событиям из базы, собранные с помощью алгоритма k-means -* кластера по ДТП с пешеходами и велосипедистами, собранные с помощью алгоритма DBSCAN -* кластера по всем событиям из базы, собранные с помощью алгоритма DBSCAN
- Карту можно скролить, при этом кластера на карте должны "на лету" перерисовываться. 4*. На HTML форме можно выбрать какой алгоритм использовать для отрисовки кластеров - выпадающий список + кнопка для запуска алгоритма.
-
Бэкенд
- Бэкенд предоставляет для фронта ручку для получения кластеров (алгоритм k-means), при этом предварительно фильтрует данные по столбцу в базе related_non_motorist 2*. Бэкенд предоставляет для фронта для получения кластеров (алгоритм DBSCAN), при этом предварительно фильтрует данные по столбцу в базе related_non_motorist
- Бэкенд должен реализовать алгоритм k-means кластеризации геоданных 4*. Бэкенд должен реализовать алгоритм DBSCAN кластеризации геоданных
- Бэкенд предоставляет для фронта ручку для получения кластеров (алгоритм k-means) без фильтрации по столбцу в базе related_non_motorist, то есть кластера стоятся по всем событиям в базе. 6*. Бэкенд предоставляет для фронта ручку для получения кластеров (алгоритм DBSCAN) без фильтрации по столбцу в базе related_non_motorist, то есть кластера стоятся по всем событиям в базе. 7*. Для алгоритма DBSCAN точки, относящиеся к кластеру должны отрисовываться разными цветами
Приложение доступно по урлу http://localhost:8080/diploma/
На момент 28-04-2021 выполнены все пункты, кроме пунктов со звездочкой.
-
Фронтенд
- HTML форма с картой google maps. На карте отображаются точки (кластера).
- Фронт получает данные для отрисовки (широта и долгота) по ручке предоставляемой бэком. Ручек четыре:
- кластера по ДТП с пешеходами и велосипедистами, собранные с помощью алгоритма k-means
- кластера по всем событиям из базы, собранные с помощью алгоритма k-means
- Карту можно скролить, при этом кластера на карте должны "на лету" перерисовываться. 4*. На HTML форме можно выбрать какой алгоритм использовать для отрисовки кластеров - выпадающий список + кнопка для запуска алгоритма.
-
Бэкенд
- Бэкенд предоставляет для фронта ручку для получения кластеров (алгоритм k-means), при этом предварительно фильтрует данные по столбцу в базе related_non_motorist
- Бэкенд должен реализовать алгоритм k-means кластеризации геоданных
- Бэкенд предоставляет для фронта ручку для получения кластеров (алгоритм k-means) без фильтрации по столбцу в базе related_non_motorist, то есть кластера стоятся по всем событиям в базе.
- docker
- postgres
- java 17
- Датасет https://data.montgomerycountymd.gov/Public-Safety/Crash-Reporting-Incidents-Data/bhju-22kf
- Установить docker и docker-compose
- Выполнить docker-compose up --build