In [ ]:
import folium
from folium import plugins
import numpy as np
from matplotlib import pyplot as plt
In [ ]:
from elasticsearch import Elasticsearch
from elasticsearch import helpers as eshelper
from elasticsearch_dsl import Search, Q
In [ ]:
client = Elasticsearch(hosts='http://')
In [ ]:
analysis = [a for a in Search(using=client, index='analysis').scan()]
restaurant_analysis = {a.id: a for a in analysis}
In [ ]:
lyon = [(r, restaurant_analysis.get(r.meta.id)) for r in Search(using=client, index='restaurants').query('match', city='Genève').scan() if restaurant_analysis.get(r.meta.id)]
len(lyon)
In [ ]:
lat = []
lng = []
values = []
for r, analyse in lyon:
print(r)
try:
print(analyse.total["Matières grasses"])
lat.append(r.lat)
lng.append(r.lng)
values.append(analyse.total["Matières grasses"].quantity)
except KeyError:
pass
In [ ]:
plt_values = np.array(values)
In [ ]:
plt_values.max() - plt_values.min()
In [ ]:
plt_values = plt_values[np.abs(plt_values - plt_values.mean()) / plt_values.std() < 3]
In [ ]:
plt_values.max() - plt_values.min()
In [ ]:
plt_values = 1 * (plt_values - plt_values.min()) / (plt_values.max() - plt_values.min())
In [ ]:
In [ ]:
plt.plot(plt_values)
plt.show()
In [ ]:
map_ = folium.Map(location=[46.599505, 3.480752], zoom_start=6)
In [ ]:
plugins.HeatMap(zip(lat, lng, plt_values), radius = 20, max_val=1).add_to(map_)
In [ ]:
map_.save('restaurants.html')
In [ ]: