{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.6.0\n" ] } ], "source": [ "import os\n", "import folium\n", "import pandas as pd\n", "\n", "print(folium.__version__)" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "df = pd.read_excel('res2.xlsx', sheet_name='dados')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
longitudelatitudeCOD_LOCALIDADE_TSENOM_LOCALIDADE_1NOM_BAIRRONUM_LOCALNOM_LOCALDES_ENDERECOCODIGOLQTD_SECOESLQTD_APTOSINDIGENASCVGRUPOSEFETIVO
0-56.104889-15.58941890670CUIABÁQUILOMBO2593COLÉGIO MAXIRUA ESTEVÃO DE MENDONÇA, 100019067025931663090002.0
1-56.098308-15.59255990670CUIABÁCENTRO1015INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNO...RUA ZULMIRA CANAVARROS, 9519067010152449160002.0
2-56.081131-15.57970890670CUIABÁALVORADA2488ESCOLA MUNICIPAL CÂNDIDO MARIANO DA SILVA RONDONRUA PIRATININGA, 1011906702488124571010012.0
3-56.113951-15.61320090670CUIABÁPORTO2844ESCOLA ESTADUAL JOSÉ BARNABÉ DE MESQUITARUA BARÃO DE MELGACO, 9451906702844134471010022.0
4-56.128743-15.61873690670CUIABÁCOOPHAMIL2810ESCOLA MUNICIPAL DE EDUCAÇÃO BÁSICA PROFESSOR ...RUA JOÃO PAULO DOS SANTOS, S/N19067028101243080032.0
\n", "
" ] }, "execution_count": 3, "metadata": { }, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "grupos = df.groupby('GRUPOS')['latitude', 'longitude'].mean()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
latitudelongitude
GRUPOS
0-15.600311-56.098059
1-15.588466-56.082202
2-15.613143-56.114460
3-15.614556-56.131003
4-15.595474-56.118742
\n", "
" ] }, "execution_count": 5, "metadata": { }, "output_type": "execute_result" } ], "source": [ "grupos.head()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "grupos2 = df.groupby('GRUPOS')['EFETIVO'].sum()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "GRUPOS\n", "0 38.653002\n", "1 12.000000\n", "2 3.000000\n", "3 6.000000\n", "4 2.000000\n", "Name: EFETIVO, dtype: float64" ] }, "execution_count": 7, "metadata": { }, "output_type": "execute_result" } ], "source": [ "grupos2.head()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
latitudelongitudeEFETIVO
GRUPOS
0-15.600311-56.09805938.653002
1-15.588466-56.08220212.000000
2-15.613143-56.1144603.000000
3-15.614556-56.1310036.000000
4-15.595474-56.1187422.000000
\n", "
" ] }, "execution_count": 8, "metadata": { }, "output_type": "execute_result" } ], "source": [ "grupos = pd.concat([grupos, grupos2], axis=1)\n", "grupos.head()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
GRUPOSlatitudelongitudeEFETIVO
00-15.600311-56.09805938.653002
11-15.588466-56.08220212.000000
22-15.613143-56.1144603.000000
33-15.614556-56.1310036.000000
44-15.595474-56.1187422.000000
\n", "
" ] }, "execution_count": 9, "metadata": { }, "output_type": "execute_result" } ], "source": [ "grupos = grupos.reset_index()\n", "grupos.head()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "from folium.plugins import MarkerCluster\n", "\n", "m = folium.Map(location=[-15.6, -56.1], zoom_start=7)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "def cor(efetivo):\n", " if efetivo < 10:\n", " return('lightgray')\n", " elif efetivo < 25:\n", " return('orange')\n", " else:\n", " return('red')" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 12, "metadata": { }, "output_type": "execute_result" } ], "source": [ "grupos.index[1]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "000, Efetivo: 038.7\n" ] } ], "source": [ "print(\"{:03.0f}, Efetivo: {:05.1f}\".format(grupos.index[0], grupos.EFETIVO[0]))" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "marker_cluster = MarkerCluster().add_to(m)\n", "\n", "def ad_local(coord):\n", " # print(coord)\n", " folium.Marker(location=coord[['latitude', 'longitude', 'EFETIVO']],\n", " popup=\"Grupo: {:03.0f}, Efetivo: {:05.1f}\".format(coord.GRUPOS, coord.EFETIVO),\n", " icon=folium.Icon(color=cor(coord.EFETIVO)),\n", " ).add_to(marker_cluster)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "0 None\n", "1 None\n", "2 None\n", "3 None\n", "4 None\n", "5 None\n", "6 None\n", "7 None\n", "8 None\n", "9 None\n", "10 None\n", "11 None\n", "12 None\n", "13 None\n", "14 None\n", "15 None\n", "16 None\n", "17 None\n", "18 None\n", "19 None\n", "20 None\n", "21 None\n", "22 None\n", "23 None\n", "24 None\n", "25 None\n", "26 None\n", "27 None\n", "28 None\n", "29 None\n", " ... \n", "670 None\n", "671 None\n", "672 None\n", "673 None\n", "674 None\n", "675 None\n", "676 None\n", "677 None\n", "678 None\n", "679 None\n", "680 None\n", "681 None\n", "682 None\n", "683 None\n", "684 None\n", "685 None\n", "686 None\n", "687 None\n", "688 None\n", "689 None\n", "690 None\n", "691 None\n", "692 None\n", "693 None\n", "694 None\n", "695 None\n", "696 None\n", "697 None\n", "698 None\n", "699 None\n", "Length: 700, dtype: object" ] }, "execution_count": 15, "metadata": { }, "output_type": "execute_result" } ], "source": [ "grupos.apply(ad_local, axis = 1)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ ], "source": [ "heat_data = [[row['latitude'],row['longitude'], row['EFETIVO']] for index, row in grupos.iterrows()]" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "38.653002126533636" ] }, "execution_count": 33, "metadata": { }, "output_type": "execute_result" } ], "source": [ "grupos['EFETIVO'].max()" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 34, "metadata": { }, "output_type": "execute_result" } ], "source": [ "from folium.plugins import HeatMap\n", "# https://python-visualization.github.io/folium/plugins.html\n", "HeatMap(heat_data, min_opacity=0.2, \n", " max_val=grupos['EFETIVO'].max(),\n", " max_zoom=1, \n", " radius=30, \n", " blur=15, \n", " gradient={0: 'grey', 1: 'red'}).add_to(m)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "m.save('Mapa_de_zona_quente.html')" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (Anaconda 5)", "language": "python", "name": "anaconda5" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.6" } }, "nbformat": 4, "nbformat_minor": 0 }