Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
probe_data_map_matching
.gitignore
README.md
dist_functions.py
environment.yml
final_xgboost.py
graph_classes.py
link_classes.py
map_matching.ipynb
point_to_link.py
st_map_matching.ipynb
st_map_matching.py
trajectory_map_matching.ipynb
trajectory_map_matching.py
xgboost_heading.ipynb
xgboost_simple.ipynb
xgboost_st.ipynb

README.md

EECS 495 Geospatial Vision

Nick Paras | Kapil Garg

Probe Data Analysis for Road Slope

Install python 3.6 and conda

We use Python 3.6 with the conda package manager. To install this, we recommend following this guide up until you must run conda info.

Create a conda env with required packages

Open Terminal and navigate to the project folder. Run conda create --name probe-data -f environment.yml to create a new conda env and install all the required packages for our project. Then, run source activate probe-data to start the virtual environment. Note that you will need to source the environment each time you wish to use or view our code.

XGBoost can either be installed with

$ pip install xgboost

or by building from source and installing the python binds separately as described on the main website.

Setup API Keys

We use the Google Maps API to plot our probe data and their matched links on a map. In order to pass the required keys to our code, create config.json in the root of the project and populate with the following information:

{
   "google-maps-key": "YOUR_API_KEY"
}

where YOUR_API_KEY is from the link above.

Working with Jupyter Notebooks

We have provided several notebooks to document our thought process:

  1. map_matching.ipynb: exploratory data analysis and implementation/visualization of point-to-link matching
  2. trajectory_map_matching.ipynb: implementation/visualization of point-to-link with heading matching
  3. st_map_matching.ipynb: implementation/visualization of st-matching found in Map-Matching for Low_sampling-Rate GPS Trajectories
  4. xgboost_simple.ipynb: training a slope model on the simple-matched probe data
  5. xgboost_heading.ipynb: training a slope model on the heading-matched probe data
  6. xgboost_st.ipynb: training a slope model on the ST-matched probe data

To launch a notebook, run jupyter notebook notebookname.ipynb where notebookname.ipynb is replaced with one of the above names. This will start a Jupyter notebook server and launch the notebook in your defauly web browser.

Running executable script

We have additionally included executable scripts for each of our notebooks about. Respectively, they are:

  1. point_to_link.py
  2. trajectory_map_matching.py
  3. st_map_matching.py
  4. final_xgboost.py

Run them with the following: python script_name.py where script_name.py is the name of the script from above.

Final Matched Results Files

Lastly, the map-matched probe points are included in three text files accompanying this submission:

  1. simple_match.csv
  2. final_match.csv (Heading Algorithm)
  3. st_linked_data.csv

The final results are generated by the heading algorithm, and are the ones we use in the final xgboost model to compute the slopes as well.

You can’t perform that action at this time.