Giter VIP home page Giter VIP logo

fdudatavisfinal-2023's Introduction

Final Project of FDU Data Visualization 2023

项目介绍

驾驶画像可视分析、交通数据可视分析系统,使用 Flask 搭建后端应用,HTML+JS 编写前端页面,实现多视图展示+联动的效果。

使用方法

  1. 数据准备。准备好交通态势可视分析任务的原始数据,修改src/models.py第十行的变量为数据的路径,默认为相对路径"data/题目1-2 交通态势可视分析/交通态势可视分析",即按网盘中的目录结构存储在项目根目录下名为data的目录中。
  2. 环境配置。安装 python3 和所需包:pip install -r requirement.txt
  3. 启动后端。在项目根目录执行:python app.py以开启 web 应用。
  4. 访问前端。浏览器访问http://127.0.0.1:5100查看前端界面。

目录、文件介绍

  • data:原始数据
  • merged_data_ids:数据聚合标识(见下文运行细节一节)
  • scripts:部分预处理数据的脚本(未维护)
  • src:后端应用运行所需的代码
  • static:前端静态文件,包括数据data、图片images、代码js三个子文件夹和网页图标文件favicon.ico
  • templates:前端网页代码main.html
  • app.py:后端运行入口
  • requirements.txt:后端运行所需依赖

数据使用

本项目中所有数据均由后端预读取至内存,当前端发出请求(如拖动车流量视图或点击平行坐标线)时通过网络发送到前端。除原始数据外,本项目运行时还使用以下三类数据:

  1. 第一次运行时会按一定的时间间隔聚合数据,生成聚合标识(见下节运行细节)。
  2. 任务 1.2 驾驶画像分析的原始数据经处理后存储在static/data目录中供运行时读取
  3. 任务 1.3 多个子图所需的数据已提前处理好并存储在static/data目录中供运行时读取。

其中第一类的数据处理逻辑写在src/util.pymerge_data函数,初次运行后会保存在项目根目录下merged_data_ids目录中;第二类数据处理为小组成员各自完成,数据处理的脚本整理在scripts目录中,但只保持了早期版本,并未维护,由于后期的目录改动可能不能正常运行;第三类数据只保留了处理结果,没有保留处理脚本。

运行细节

初次运行会自动聚合数据,提供 0.5s、1s、2s、5s 和 10s 聚合五种不同时间间隔的选择(也可自由扩展不同的聚合选择)。运行时可选择聚合时间间隔(app.py中的interval变量),越短的时间间隔意味着更精确的车辆位置、速度等信息。由于运行时后端将所有数据直接读入内存,1s、2s 聚合对内存占用较高,8G 内存的机器在 2s 聚合时内存即稍显紧张,请根据电脑状况选择聚合的时间间隔。

为弥补长间隔数据间隔带来的无数据的时间段,主视图中采用动画自动差值来填补两条记录之间的车辆位置信息,默认动画长度为 2s(mainfig.js第 517 行duration(2000)),因此在选择的时间间隔不为 2s 时,动画效果相比实际时间有减慢或加快的现象。

小组成员

陈潦 陈学添 付一宸 贾睿囡 李文烨 芦胤

fdudatavisfinal-2023's People

Contributors

nlx0021 avatar chenxuetian avatar vegetablest-dog avatar ap2749919 avatar

Watchers

 avatar

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.