I have list of GPS coordinates, which provide the Speed, Lat, Lng, Course (angle due north).

In my case I have determined if the user has taken a turn by storing the changes in course value.

Lets say I allow a 5 degree angle window. If the location points stay in this angle window, I increment my stable variable. If the location points goes out of 5 degrees, I assume user is changing lanes or trying to take a turn.

So, the output looks something like this for a 90 degree turn.

3, 1, 2, 1, 3

This means, the user was travelling under a 5 degree window for 3 location points and then started turning so the angle kept changing (1, 2, 1). After the turn is complete, the user is again in the same direction for 3 coordinates.

Now I have a bunch of these blocks of coordinates, which provide the info, that user has taken a turn. The next thing is calculate the lateral acceleration from these to know whether the turn was a rash one or not.

I already know that out of 10 curves we found in our location data 3 were rash/careless turns. So I can setup a threshold and compare with a larger database,

But I am not sure how to go around calculating lateral acceleration

  • $\begingroup$ How often is a course value updated? Every 100 meters? Every 5 seconds? $\endgroup$
    – scott
    Mar 1 '17 at 22:26
  • $\begingroup$ every second or may be early.. actually these are coming from an iPhone so we need readings as frequent as possible. $\endgroup$
    – nr5
    Mar 2 '17 at 6:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.