By using the credentials in the decrypted file, we were able to download the journalist's accelerometer data from their Stepinator device from the time of the kidnapping. Local officials have provided us with a city map and traffic light schedule. Using these along with the journalist's accelerometer data, find the closest intersection to where the kidnappers took their hostage.
Downloads:
- Relevant information for solving the problem (README.txt)
- Acceleration data (stepinator.json)
- City map and traffic light schedule (maps.zip)
Enter the avenue of the intersection. (ie. Avenue F & 3rd st, enter F)
Enter the street of the intersection (ie. Avenue F & 3rd st, enter 3)
- README.txt - Provided relevant information
- stepinator.json - Provided acceleration data
- maps.zip - Provided city map and traffic light schedule
- maps/ - Unzipped maps directory
- annotated_stepinator.json - Annotated acceleration data
- solution.txt - Task solution
Let's start by reading the extra information provided in README.txt
. It provides a few crucial pieces of information:
- The kidnappers start by driving East
- We have accelerometer data for every second in m/s^2
- Each city block is about 100m long
- The speed limit was 13 m/s, right turns on red are not allowed, and traffic laws were followed
- Look for slow-downs as a sign of turning
- Traffic lights alternate every 30 seconds, light maps are provided
We should be able to figure out how many blocks are traveled and where some turns happen from looking at only the acceleration data, and then apply that to the map to narrow down the possible directions. Instead of breaking down the whole thing, I'll give an example of how I interpreted the acceleration data. Here are the first 30 seconds:
[1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.5, -3.375, -4.5, -4.5, -0.625, 0]
At the start, there are 9 seconds of acceleration as the car gets up to the speed limit. Then there are 15 seconds of no acceleration, indicating that the car has reached the limit and is traveling at a constant speed. It then slows down to a full stop as it waits for a light to change. At this point, since the car is stopped, we have no idea if the car is going to go straight or turn left or right when the light changes to green.
To get the distance traveled, we need to know how to calculate distance from acceleration. the formula is x = (v_final + v_initial) * time / 2
. Our equation looks like this: (13 * 9 / 2) + (13 * 15) + (13 * 5 / 2) = 286
. About 3 city blocks have been traveled. Applying this method to the rest of the data, here's what I came up with:
Time Block | Movements |
---|---|
0-29s | 3 blocks, stop at light |
30-59s | 1 block, stop at light |
60-89s | 1 block, turn, 1 block, turn, 1 block, slow down for light |
90-119s | 4 blocks, stop |
It's possible for more turns to occur if the kidnappers turn after stopping at a light, so we need to keep that in mind when plotting all possible routes. Let's apply this data to the city map and the light cycles. city_map.png
shows us that the starting location is 14th and F. We know that the kidnappers moved 3 blocks East and then stopped at a light. Does that line up with the charts we have?
This should be our final destination!
H Avenue and 7th is probably where the journalist was taken.