Ce site présente des éléments complémentaires à l’article « Topographies réticulaires » soumis à la revue Réseaux en juillet 2015.
Il permet entre autres de consulter les images utilisées, les images produites ainsi que la source du code Python.
Ce projet utilise comme source deux projets d’Eric Fisher Languages on Twitter et Mobile Devices + Twitter Use, eux même issus du projet plus général Six billion tweets.
Ces images ont été utilisées pour créer deux représentations de la densité et la diversité de l’agglomération parisienne.
Ce premier projet propose de représenter la répartition des tweets selon la langue utilisée. Le projet ayant été inité aux Etats-Unis, les langues principales sont l’anglais et l’espagnol. Les autres langues figurent dans la partie « autres langues ». Dans le cas de l’agglomération parisienne, le français est donc représenté dans la partie « Autres », avec d’autres langues, dont la présence est néanmoins peu significative.
Ce deuxième projet propose de représenter la répartition des tweets selon l’OS utilisé. Les OS considérés sont Android, iOS et BlackBerry OS.
Cette carte présente la densité des tweets. Elle correspond à la superposition des tweets pour toutes les langues et tous les OS. Elle correspond sensiblement à l’ensemble des tweets, bien qu’elle soit produite par accumulation des traces selon l’OS et la langue utilisée.
Cette carte présente la densité des tweets. Elle correspond à la supperposition des tweets pour toutes les langues et tous les OS. Les tweets ne sont représentés que lorsque les trois langues et les trois OS sont présents.
Cette carte présente la densité des tweets, en utilisant un fond permettant de les localiser plus précisément (Mapbox). Il apparait que les tweets présentant la plus grande diversité se situent essentiellement dans les gares, aéroports et lieux touristiques (Champs-Elysées, Disneyland Paris, Chatelet...). Le quartier d'affaire de La défense apparait aussi comme l'un de ceux qui présente la plus importante diversité.
# -*- coding: utf-8 -*-
import PIL.Image
OSa = PIL.Image.open("originals/large/os-android.png")
OSb = PIL.Image.open("originals/large/os-black_b.png")
OSi = PIL.Image.open("originals/large/os-iphone.png")
LNe = PIL.Image.open("originals/large/ln-english.png")
LNs = PIL.Image.open("originals/large/ln-spanish.png")
LNo = PIL.Image.open("originals/large/ln-other.png")
(largeur, hauteur)= OSa.size
def does_os_exist(map,x,y,):
(red,green,blue,alpha) = map.getpixel((x,y))
if not(red<10 and green<10 and blue<10) and red!=green:
return 1
else:
return 0
def does_ln_exist(map,x,y,):
(red,green,blue,alpha) = map.getpixel((x,y))
if not(red>200 and green>200 and blue>200):
return 1
else:
return 0
intensity_map = PIL.Image.new("RGB", (largeur, hauteur), (0,0,0))
alterity_map = PIL.Image.new("RGB", (largeur, hauteur), (0,0,0))
for x in range (0, largeur):
for y in range (0, hauteur):
isOSa=isOSb=isOSi=isLNe=isLNs=isLNo=intensity=alterity=0
isOSa=does_os_exist(OSa,x,y)
isOSb=does_os_exist(OSb,x,y)
isOSi=does_os_exist(OSi,x,y)
isLNe=does_ln_exist(LNe,x,y)
isLNs=does_ln_exist(LNs,x,y)
isLNo=does_ln_exist(LNo,x,y)
intensity=255*(isOSa+isOSb+isOSi+isLNe+isLNs+isLNo)/6
if intensity==255:
alterity=255
else:
alterity=0
intensity_map.putpixel((x,y),(intensity,intensity,intensity))
alterity_map.putpixel((x,y),(alterity,alterity,alterity))
if x%10==0:
print (x)
#alterity.show()
#urbanity.show()
intensity_map.save("generated/intensity.tiff", "TIFF")
alterity_map.save("generated/alterity.tiff", "TIFF")