*density of gps events across germany*

We get for each user a line with x and y coordinates, device type, accuracy in meters and time zone. For each coordinate pair we create an octree index for the given accuracy

ts | id | type | x | y | accuracy | tz | octree | n |
---|---|---|---|---|---|---|---|---|

1556146040 | 00002af79399fef8e… | 0 | 52.2833 | 7.93245 | 17 | 7200 | 314223124321441 | 1 |

From the positions we calculate the densities grouping by octrees and we remove one octree digit every time the number of events is smaller than a threshold.

In between we calculate the average position and time for each box.

octree | n | x | y | ts |
---|---|---|---|---|

422331313214 | 35 | 7.5405 | 47.712 | 1554083921 |

We can than convert the octrees in polygons and display the density values with a color map rendering first the large boxes.

*densities in the city*

We can clearly distinguish users driving on main roads

*density on the streets*

We pivot all entries by the user id and we create a new dataframe where on each line we have *id*, *time-space matrix*, *n* trajectory points, *bounding box* in octrees, *time interval*

id | tx | n | bbox | dt |
---|---|---|---|---|

933a58bfed63df92570… | `[[1556210261, 13.497, 52.395], [155626...` |
976 | 423 | 15562 |

*trajectory country*

All trajectories are defined by a bounding box which makes spatial filtering efficient

*densities and trajectories*

We create a dataframe each day to know how many users we see in the country

id | ts |
---|---|

00002af79399fef8eb17522aedba3cedc45bb3cd193a34… | 85 |

*user frequency*

If we look at the distribution of events per users we notice extreme numbers and the median drops to 19

*user distribution*

We iterate over all trajectories and calculate the point to point space-time difference. We derive than the speed, the angle and the chirality of the segment.

octree | n | speed | angle | chirality |
---|---|---|---|---|

423144344341423 | 1.0 | 0.000008 | 0.957055 | 1.0 |

Where we calculate the speed as a normal equation of motion

*speed calculation*

To calculate the segment speed we need first to smooth the input variables inducing correlation between the points. Without smoothing data are too noisy to be processed

*speed, no smoothing*

If we use a running average space-time and their derivatives are better defined

*speed, running average*

If we use a Kaiser smoothing we have smooth profiles across all variables.

*speed, kaiser smoothing*

In this way we can calculate the speed density across the city and clearly see the network infrastructure

*speed density*

We can also observe the distribution of chirality across the city

*chirality density*

and the distribution of angles, interesting there are some spots strongly polarized

*angle density*

If we set a speed threshold depending on the particular use case (long/short trips) we can divide motion from dwelling. We cluster the speed profiles when a velocity cross a threshold value. Below the threshold we have a dwelling, above a movement.

mean values

m_dt | m_x | m_y | m_speed | m_angle | m_chirality | m_m | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|

4165 | 13.448 | 52.397 | 1.31E-06 | 1.33 | 0.5 | 1.80E-07 | 1248.57 |

standard deviations

s_dt | s_x | s_y | s_speed | s_angle | s_chirality | s_m |
---|---|---|---|---|---|---|

0.00026 | 2.58E-05 | 2.62E-06 | 0.553 | 0.234 | 0 |

first and last signal

x1 | y1 | t1 | x2 | y2 | t2 | sr |
---|---|---|---|---|---|---|

13.44 | 52.3 | 2285.5 | 13.44 | 52.397 | 5196.57 | 0.000143 |

User defined definition of activities and trips

*speed profile and the threshold defining activities*

We can display the dwelling and the trips across the city

*dwelling and moving across the city*

Changing the threshold we can distinguish different types of movemens and we have completely different figures

*moving and dwelling*

We sum up relations grouping first on destinations and than on origins and iterate coarsing the geometry until we reach similar counts per leg.

We have many relations for each node

*inner city relations*

Dwelling can be disconnected from the octree index

*dwelling heatmap*

We want to compare mobile antenna connections with gps signal density,

*retail areas and densities*

Compared to mobile data we have a completely different ranking of locations

*re shuffling of ranking of retail areas*

__