Как сгенерировать тепловую карту фолио из файла csv?

В настоящее время я пытаюсь создать тепловую карту в Leaflet.js, используя Folium в Python 2.7. Я думаю, что могу неправильно получить синтаксис long / lat, чтобы он отображался правильно.

Файл csv имеет следующий формат: имя, долгота, широта.

Пример:

incident1,-1.44986889,-48.48197937
incident2,-1.37189305,-48.44008189

Написанный мной код выглядит так:

import folium
import csv
from folium import plugins

heatmap_map = folium.Map(location=[51.67109, -1.28278], zoom_start=2)

with open('/tmp/geolocation.csv','rb') as f:
    reader = csv.reader(f)
    for row in reader:
        data = ([row[1]], [row[2]])
        hm = plugins.HeatMap(data)
        heatmap_map.add_children(hm)
f.close()

heatmap_map.save("/tmp/heatmap.html")

Программа запускается, сохраняет файл, но я не вижу тепловых карт, когда загружаю их в свой браузер. Я подтвердил, что могу создавать маркеры местоположения, чтобы карты загружались должным образом.

Боюсь, что я недостаточно знаю Leaflet.js, чтобы устранить неполадки в коде в создаваемом html-файле.

Может ли кто-нибудь помочь мне здесь и показать, что может быть не так в переменной данных, или, возможно, лучший способ перебора моего файла csv для создания необходимых тепловых карт?

заранее спасибо


person Swedish Mike    schedule 09.03.2016    source источник


Ответы (1)


Я считаю, что ваша проблема в форматировании точек данных. Следующее должно работать:

with open('/tmp/geolocation.csv','rb') as f:
    reader = csv.reader(f)
    data = [[row[1], row[2]] for row in reader]
        
hm = plugins.HeatMap(data)
heatmap_map.add_child(hm)
person Efrem Rensi    schedule 07.04.2016
comment
Это идеальный ответ. Я пытался добиться того же, используя фрейм данных pandas. Спасибо. - person Sreejith Menon; 31.08.2016