Xingmin Wang, University of Michigan
0. Introduction
- Visualization is more important than you think
- Platform tends to have a really large impact, particularly open-source (I know multiple persons known for developing widely-used open-source toolkits getting really good positions)
- A good platform can facilitate a series of research works (we have data, vehicle, and perception platforms in our group)
1. What we have developed
A data platform digesting and processing vehicle trajectory data, including several main modules:
Our application: view data, processing data
2. Suggestions
- Identify the essential functions and needs, learn to communicate well with your advisor
- Turn to the open-source community first! Try to find existing code before developing your own!
- Find the proper template (minimize your development efforts)
- What we need eventually might be several specific simple features, such as showing certain shapes on the map or some simple animations
- Balance the scalability and the development efficiency. You might need to spend much more effort to get a scalable framework. Getting a preliminary version is usually much easier
- Data structure and standards are very important
- How do you store your data offline? What is your in-memory data structure (e.g., Python classes)?
- For example, we define our own data structure including 1) vehicle trajectory (table data); 2) map data (OpenStreetMap), and 3) SPaT (several binding tables )
- Try to follow the commonly-used data format (e.g., for map data, there are multiple convertible formats such as geojson, OpenStreetMap, etc.)
- DataFrame: Pandas and GeoPandas, MySQL
- JSON dictionary file, MongoDB
- I/O functions
- Code management is very important, particularly for collaborative development
- GitHub
- There are many GUI-based tools for GitHub
3. Resources that might be helpful