<!DOCTYPE html>
<html>
<head>
<title>Presidential Election, El Salvador 2014, 1st Round</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<script src="//code.jquery.com/jquery-1.8.2.min.js"></script>
<script>
// see //leafletjs.com/reference.html
L_PREFER_CANVAS = true;
</script>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css">
<link rel="stylesheet" href="//cdn.leafletjs.com/leaflet-0.6.4/leaflet.css" />
<!--[if lte IE 8]>
<link rel="stylesheet" href="//cdn.leafletjs.com/leaflet-0.6.4/leaflet.ie.css" />
<![endif]-->
<script src="//cdn.leafletjs.com/leaflet-0.6.4/leaflet.js"></script>
<!--<script type="text/javascript" src="//mbostock.github.com/d3/d3.js?1.29.1"></script>-->
<style type="text/css">
html, body, #map {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
.leaflet-tile-pane {
opacity: .3
}
</style>
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="#">Presidential Election, El Salvador 2014, 1st Round</a>
</div>
</div>
</div>
<div style="position:fixed;top:50px;z-index:1000;">
<div class="alert alert-info" >
The <strong>size</strong> of bubbles represents number of voters, the <strong>color</strong> represents the winner and the <strong>oppacity</strong> the margin of victory.
<span style="color:#800">Salvador Sánchez Cerén (FMLN)</span> vs. <span style="color:#008">Norman Noel Quijano González (ARENA)</span> (99 % of votes counted)
</div>
</div>
<div id="map" style="margin-top:40px;"></div>
<script type="text/javascript">
// Create the map
var map = L.map('map',{zoomControl: false}).setView([13.68,-88.78], 9);
map.addControl( L.control.zoom({position: 'topright'}) );
// add an OpenStreetMap tile layer
// also see //wiki.openstreetmap.org/wiki/Tiles
//L.tileLayer('//{s}.tile.osm.org/{z}/{x}/{y}.png', {
L.tileLayer('//{s}.www.toolserver.org/tiles/bw-mapnik/{z}/{x}/{y}.png', {
attribution: '© <a href="//osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
//add circles
//$.getJSON( "cz_president_2013_both_2_ring.json", function (data) {
$.getJSON( "sv_2014_1_ring.json", function (data) {
$.each(data, function (index, value) {
sum = 0;
descr = '';
$.each(value['person'], function (i,d) {
sum = sum + parseInt(d['population']);
descr += d['name'] + " (" + d['population'] + ")<br>";
})
circle = L.circle(
[value.coordinates[0], value.coordinates[1]],
Math.sqrt(sum*600),
{
color: values2color(value['winner']),
fillColor: values2color(value['winner']),
fillOpacity: 2*(Math.max(parseInt(value.person.p6.population),parseInt(value.person.p9.population)) / (parseInt(value.person.p6.population)+parseInt(value.person.p9.population))-0.5),
//fillOpacity: .8,
weight: 0.1,
//className: value.classname, //this does not seem to work, so hacked by class2color
}).addTo(map);
circle.bindPopup("<strong>" + value.name + "</strong><br>" + "<strong>" + value.winner + '</strong><br>' + descr);
});
});
function values2color(w) {
if (w == 'Salvador Sánchez Cerén (FMLN)') return '#f00';
if (w == 'Norman Noel Quijano González (ARENA)') return '#00f';
}
</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-8592359-13', 'ocks.org');
ga('send', 'pageview');
</script>
</body>
</html>
# -*- coding: utf-8 -*-
import json
import csv
import string
data = []
i = 0
with open("geocoded_adj.csv","r") as fin:
finreader = csv.reader(fin,delimiter="\t")
for row in finreader:
if i>0:
if (int(row[2]) >= int(row[6])):
winner = "Salvador Sánchez Cerén (FMLN)"
else:
winner = "Norman Noel Quijano González (ARENA)"
item = {
'id': string.join([row[9],row[10]],sep="-"),
'coordinates': [row[7],row[8]],
'person': {'p6': {"population": row[2], "name": "Salvador Sánchez Cerén (FMLN)"}, 'p9': {"population": row[6], "name": "Norman Noel Quijano González (ARENA)"}},
'name': string.join([row[9],row[10]],sep="-"),
'winner': winner#,
#'classname': winner.lower()
}
data.append(item)
#print data
#raise Exception()
i = i + 1
with open('sv_2014_1_ring.json', 'w') as outfile:
json.dump(data, outfile)
print i
# -*- coding: utf-8 -*-
import csv
outfile = open('data_towns.csv', 'wb')
outwriter = csv.writer(outfile, quoting=csv.QUOTE_NONNUMERIC)
i = 0
data = {}
with open('data.csv','r') as f:
csvreader = csv.reader(f,delimiter="\t")
for row in csvreader:
#print row
if i > 0:
try:
data[row[1]]
except:
print row[1]
data[row[1]] = {}
data[row[1]][row[2]] = [row[1],row[2],int(row[5]),int(row[6]),int(row[7]),int(row[8]),int(row[9])]
else:
try:
data[row[1]][row[2]]
except:
data[row[1]][row[2]] = [row[1],row[2],int(row[5]),int(row[6]),int(row[7]),int(row[8]),int(row[9])]
else:
d = data[row[1]][row[2]]
#print d
data[row[1]][row[2]] = [d[2]+int(row[5]),d[3]+int(row[6]),d[4]+int(row[7]),d[5]+int(row[8]),d[6]+int(row[9])]
data[row[1]][row[2]] = [row[1],row[2]] + data[row[1]][row[2]]
#print data[row[1]][row[2]]
# if i>5:
# raise Exception('vv')
# print i
i = i + 1
for key1 in data:
for key2 in data[key1]:
print (data[key1][key2])
outwriter.writerow(data[key1][key2])
"SAN MIGUEL","SAN MIGUEL",52942,10922,189,405,24013
"SAN MIGUEL","SAN RAFAEL ORIENTE",3510,665,7,32,1664
"SAN MIGUEL","SAN JORGE",2309,175,5,8,2207
"SAN MIGUEL","SAN ANTONIO DEL MOSCO",1397,36,2,5,1330
"SAN MIGUEL","LOLOTIQUE",3887,809,13,15,1169
"SAN MIGUEL","CHIRILAGUA",4413,379,10,30,2841
"SAN MIGUEL","NUEVA GUADALUPE",2351,360,7,12,703
"SAN MIGUEL","SAN LUIS DE LA REINA",1192,67,1,5,1022
"SAN MIGUEL","EL TRANSITO",4219,359,8,21,3373
"SAN MIGUEL","CIUDAD BARRIOS",5577,694,13,49,3214
"SAN MIGUEL","SAN GERARDO",1506,41,1,5,1369
"SAN MIGUEL","CHINAMECA",5227,616,17,35,4133
"SAN MIGUEL","MONCAGUA",6254,709,7,24,2284
"SAN MIGUEL","COMACARAN",1137,72,1,5,540
"SAN MIGUEL","ULUAZAPA",888,97,0,3,542
"SAN MIGUEL","CHAPELTIQUE",2808,174,7,26,1056
"SAN MIGUEL","SESORI",2261,227,10,23,1159
"SAN MIGUEL","NUEVO EDEN DE SAN JUAN",852,75,2,4,725
"SAN MIGUEL","QUELEPA",1732,126,0,7,956
"SAN MIGUEL","CAROLINA",1867,79,2,10,1636
"LA LIBERTAD","ZARAGOZA",4665,1570,38,33,4131
"LA LIBERTAD","CIUDAD ARCE",12399,3380,86,101,8837
"LA LIBERTAD","LA LIBERTAD",9487,2174,42,99,6205
"LA LIBERTAD","HUIZUCAR",2324,472,15,14,2398
"LA LIBERTAD","QUEZALTEPEQUE",13598,3062,86,102,8192
"LA LIBERTAD","TALNIQUE",1299,436,5,20,1224
"LA LIBERTAD","COMASAGUA",2643,375,7,31,2168
"LA LIBERTAD","SACACOYO",2997,620,12,37,3080
"LA LIBERTAD","SANTA TECLA",30094,8136,308,300,33687
"LA LIBERTAD","SAN JUAN OPICO",14891,3865,95,156,10548
"LA LIBERTAD","COLON",19888,6191,171,194,18106
"LA LIBERTAD","ANTIGUO CUSCATLAN",6647,1990,56,78,13431
"LA LIBERTAD","TAMANIQUE",2255,510,12,67,2652
"LA LIBERTAD","TEPECOYO",2480,622,17,37,1737
"LA LIBERTAD","SAN PABLO TACACHICO",4298,459,9,25,4025
"LA LIBERTAD","SAN JOSE VILLANUEVA",3041,869,19,32,2634
"LA LIBERTAD","JICALAPA",883,353,10,15,1521
"LA LIBERTAD","NUEVO CUSCATLAN",2382,435,10,29,2800
"LA LIBERTAD","CHILTIUPAN",2003,257,11,8,2622
"LA LIBERTAD","JAYAQUE",2852,502,15,29,2361
"LA LIBERTAD","SAN MATIAS",1692,259,6,10,1196
"LA LIBERTAD","TEOTEPEQUE",1470,533,12,23,2378
"RES. EN EL EXTERIOR","VOTO POSTAL",148,12,1,2,60
"CHALATENANGO","SAN LUIS DEL CARMEN",222,81,0,4,276
"CHALATENANGO","CHALATENANGO",7011,1648,22,65,6698
"CHALATENANGO","SAN JOSE CANCASQUE",534,55,2,3,342
"CHALATENANGO","TEJUTLA",2768,736,15,26,2532
"CHALATENANGO","LA REINA",1581,374,18,20,1725
"CHALATENANGO","ARCATAO",1043,99,0,4,387
"CHALATENANGO","SAN FRANCISCO LEMPA",255,36,0,0,222
"CHALATENANGO","AGUA CALIENTE",1343,525,7,31,1422
"CHALATENANGO","LA PALMA",2742,278,3,14,2772
"CHALATENANGO","SANTA RITA",913,187,3,6,1050
"CHALATENANGO","LAS FLORES",921,10,0,1,21
"CHALATENANGO","CONCEPCION QUEZALTEPEQUE",1553,226,8,8,1535
"CHALATENANGO","EL CARRIZAL",748,91,2,5,507
"CHALATENANGO","NOMBRE DE JESUS",1426,96,2,6,676
"CHALATENANGO","OJOS DE AGUA",631,247,4,6,772
"CHALATENANGO","SAN MIGUEL DE MERCEDES",452,578,4,7,312
"CHALATENANGO","SAN FRANCISCO MORAZAN",951,144,3,2,614
"CHALATENANGO","POTONICO",547,50,1,0,425
"CHALATENANGO","EL PARAISO",1880,865,7,31,1976
"CHALATENANGO","LA LAGUNA",813,166,4,4,1147
"CHALATENANGO","SAN RAFAEL",847,433,7,19,844
"CHALATENANGO","NUEVA CONCEPCION",6113,1147,23,45,6317
"CHALATENANGO","SAN ISIDRO LABRADOR",297,14,1,1,31
"CHALATENANGO","AZACUALPA",296,36,0,1,323
"CHALATENANGO","SAN FERNANDO",505,81,0,7,564
"CHALATENANGO","COMALAPA",872,131,3,6,975
"CHALATENANGO","SAN ANTONIO LOS RANCHOS",554,44,1,1,18
"CHALATENANGO","SAN ANTONIO DE LA CRUZ",492,63,1,3,384
"CHALATENANGO","LAS VUELTAS",837,25,0,0,95
"CHALATENANGO","CITALA",916,86,1,4,1287
"CHALATENANGO","DULCE NOMBRE DE MARIA",946,409,8,13,1120
"CHALATENANGO","NUEVA TRINIDAD",849,44,1,1,146
"CHALATENANGO","SAN IGNACIO",1975,125,5,8,2039
"USULUTAN","SANTA ELENA",3351,1267,16,25,2175
"USULUTAN","NUEVA GRANADA",1599,188,5,16,1305
"USULUTAN","ALEGRIA",3076,369,11,17,1357
"USULUTAN","JUCUAPA",3956,477,15,20,3051
"USULUTAN","BERLIN",4326,739,16,41,2571
"USULUTAN","EREGUAYQUIN",1218,249,8,13,1087
"USULUTAN","PUERTO EL TRIUNFO",3448,550,11,14,1984
"USULUTAN","JUCUARAN",2981,301,12,32,1453
"USULUTAN","SAN FRANCISCO JAVIER",1622,171,4,12,931
"USULUTAN","SAN BUENAVENTURA",1324,118,4,2,846
"USULUTAN","MERCEDES UMAÑA",3176,245,6,19,2130
"USULUTAN","SAN AGUSTIN",1520,178,2,5,986
"USULUTAN","SAN DIONISIO",957,277,3,12,688
"USULUTAN","USULUTAN",12866,4634,87,160,9678
"USULUTAN","SANTIAGO DE MARIA",4430,808,21,37,2551
"USULUTAN","EL TRIUNFO",1744,180,2,6,975
"USULUTAN","CONCEPCION BATRES",2262,367,6,10,1876
"USULUTAN","ESTANZUELAS",2223,306,4,15,1543
"USULUTAN","OZATLAN",3042,377,7,20,1640
"USULUTAN","TECAPAN",1896,256,2,14,1126
"USULUTAN","SANTA MARIA",1777,634,9,22,1318
"USULUTAN","JIQUILISCO",12955,1148,26,58,5293
"USULUTAN","CALIFORNIA",493,52,1,3,501
"CABAÑAS","SENSUNTEPEQUE",5615,2009,30,78,8602
"CABAÑAS","TEJUTEPEQUE",1604,181,4,10,1433
"CABAÑAS","DOLORES",842,278,2,10,1184
"CABAÑAS","JUTIAPA",1479,225,27,4,1953
"CABAÑAS","GUACOTECTI",1203,484,17,17,733
"CABAÑAS","VICTORIA",2699,246,8,19,3026
"CABAÑAS","CINQUERA",544,64,0,2,280
"CABAÑAS","ILOBASCO",8332,4449,55,117,13686
"CABAÑAS","SAN ISIDRO",1555,380,5,11,1720
"SAN SALVADOR","AYUTUXTEPEQUE",8674,1536,54,62,6579
"SAN SALVADOR","ILOPANGO",25405,6233,131,169,21285
"SAN SALVADOR","AGUILARES",4348,970,16,48,4493
"SAN SALVADOR","NEJAPA",6933,1842,34,80,3829
"SAN SALVADOR","SANTIAGO TEXACUANGOS",3911,1018,20,28,4337
"SAN SALVADOR","SOYAPANGO",66073,15752,393,485,50705
"SAN SALVADOR","MEJICANOS",39951,8323,222,342,30128
"SAN SALVADOR","PANCHIMALCO",8677,1375,47,82,8207
"SAN SALVADOR","ROSARIO DE MORA",2570,485,13,29,2210
"SAN SALVADOR","SAN MARTIN",17664,3930,80,141,15984
"SAN SALVADOR","SAN SALVADOR",83875,18190,521,877,97421
"SAN SALVADOR","TONACATEPEQUE",15447,3854,73,100,13176
"SAN SALVADOR","EL PAISNAL",3423,542,10,17,1857
"SAN SALVADOR","SANTO TOMAS",6248,1440,30,31,6067
"SAN SALVADOR","APOPA",30030,7399,190,294,24179
"SAN SALVADOR","SAN MARCOS",16471,3617,111,116,12755
"SAN SALVADOR","CUSCATANCINGO",17978,3862,209,136,13605
"SAN SALVADOR","GUAZAPA",5368,1149,24,33,3714
"SAN SALVADOR","CIUDAD DELGADO",25190,5862,152,166,21006
"AHUACHAPAN","GUAYMANGO",5324,1121,12,35,2675
"AHUACHAPAN","SAN PEDRO PUXTLA",2405,571,6,8,1363
"AHUACHAPAN","ATIQUIZAYA",7428,1503,33,58,5580
"AHUACHAPAN","EL REFUGIO",1814,648,11,21,1986
"AHUACHAPAN","TACUBA",6120,1794,24,48,3952
"AHUACHAPAN","SAN FRANCISCO MENENDEZ",8005,1799,36,80,7054
"AHUACHAPAN","APANECA",1633,392,1,10,2334
"AHUACHAPAN","CONCEPCION DE ATACO",2804,426,9,31,3392
"AHUACHAPAN","AHUACHAPAN",23995,8659,228,235,16190
"AHUACHAPAN","JUJUTLA",5420,1341,17,65,3365
"AHUACHAPAN","TURIN",1870,778,12,17,1431
"AHUACHAPAN","SAN LORENZO",2066,437,11,15,1939
"SAN VICENTE","SAN VICENTE",10266,3458,41,128,9253
"SAN VICENTE","SANTA CLARA",1201,216,3,14,782
"SAN VICENTE","TEPETITAN",1040,136,1,3,708
"SAN VICENTE","SAN ILDEFONSO",2363,134,4,6,1070
"SAN VICENTE","APASTEPEQUE",3378,2110,18,48,2628
"SAN VICENTE","SAN ESTEBAN CATARINA",1898,303,2,8,599
"SAN VICENTE","GUADALUPE",967,649,9,10,829
"SAN VICENTE","TECOLUCA",6973,487,14,25,3061
"SAN VICENTE","VERAPAZ",1798,205,5,4,1287
"SAN VICENTE","SANTO DOMINGO",1229,350,7,12,1379
"SAN VICENTE","SAN SEBASTIAN",3054,355,5,14,2941
"SAN VICENTE","SAN LORENZO",1468,262,6,11,1070
"SAN VICENTE","SAN CAYETANO ISTEPEQUE",1211,151,1,10,1146
"MORAZAN","SAN CARLOS",1006,163,2,9,752
"MORAZAN","PERQUIN",1125,142,2,12,889
"MORAZAN","SAN SIMON",2931,537,14,20,1097
"MORAZAN","TOROLA",874,257,2,14,299
"MORAZAN","GUATAJIAGUA",2325,550,11,20,1551
"MORAZAN","CHILANGA",1896,804,5,28,1343
"MORAZAN","MEANGUERA",2686,139,1,9,586
"MORAZAN","JOCORO",2875,301,7,12,2007
"MORAZAN","ARAMBALA",1159,122,3,8,596
"MORAZAN","CACAOPERA",2886,554,11,40,1213
"MORAZAN","YAMABAL",680,168,6,8,651
"MORAZAN","SENSEMBRA",435,64,2,2,434
"MORAZAN","GUALOCOCTI",995,157,4,11,589
"MORAZAN","JOCOAITIQUE",1325,61,1,3,519
"MORAZAN","YOLOAIQUIN",740,96,0,7,840
"MORAZAN","CORINTO",2611,344,8,36,2359
"MORAZAN","SAN FERNANDO",467,176,3,6,272
"MORAZAN","SOCIEDAD",2822,201,10,23,1433
"MORAZAN","JOATECA",753,217,6,25,770
"MORAZAN","EL ROSARIO",405,168,2,5,257
"MORAZAN","SAN ISIDRO",768,190,5,10,360
"MORAZAN","EL DIVISADERO",2099,196,6,14,1195
"MORAZAN","SAN FRANCISCO GOTERA",4611,1013,19,47,3993
"MORAZAN","OSICALA",1688,497,11,31,1614
"MORAZAN","DELICIAS DE CONCEPCION",880,368,2,13,1042
"MORAZAN","LOLOTIQUILLO",1060,141,3,9,865
"CUSCATLAN","EL ROSARIO",552,270,4,4,999
"CUSCATLAN","TENANCINGO",1706,246,6,20,1119
"CUSCATLAN","MONTE SAN JUAN",1630,1324,17,35,1787
"CUSCATLAN","SANTA CRUZ MICHAPA",2289,1119,23,25,1879
"CUSCATLAN","ORATORIO DE CONCEPCION",633,254,8,6,755
"CUSCATLAN","SAN BARTOLOME PERULAPIA",2246,344,6,6,1641
"CUSCATLAN","EL CARMEN",2556,874,7,14,2955
"CUSCATLAN","SAN JOSE GUAYABAL",1799,568,8,33,2166
"CUSCATLAN","SAN CRISTOBAL",1879,458,15,10,1878
"CUSCATLAN","SUCHITOTO",8516,506,10,32,2776
"CUSCATLAN","SAN RAMON",1352,325,8,10,1472
"CUSCATLAN","SAN PEDRO PERULAPAN",9885,2986,100,73,9274
"CUSCATLAN","CANDELARIA",1499,1150,13,19,2089
"CUSCATLAN","SANTA CRUZ ANALQUITO",403,243,2,11,551
"CUSCATLAN","SAN RAFAEL CEDROS",3287,795,15,21,3617
"CUSCATLAN","COJUTEPEQUE",10187,3794,82,93,11065
"SANTA ANA","SAN ANTONIO PAJONAL",505,144,2,2,708
"SANTA ANA","COATEPEQUE",5304,2256,41,79,4948
"SANTA ANA","EL CONGO",4654,1710,38,74,4348
"SANTA ANA","CANDELARIA DE LA FRONTERA",2934,1731,37,55,4464
"SANTA ANA","EL PORVENIR",1579,793,17,21,1240
"SANTA ANA","SANTIAGO DE LA FRONTERA",784,174,4,12,1501
"SANTA ANA","MASAHUAT",421,524,11,19,488
"SANTA ANA","TEXISTEPEQUE",2811,1394,25,48,3066
"SANTA ANA","METAPAN",9501,3533,71,193,10608
"SANTA ANA","SANTA ROSA GUACHIPILIN",367,225,5,10,1138
"SANTA ANA","SANTA ANA",56888,15778,354,487,38168
"SANTA ANA","CHALCHUAPA",13881,3380,120,163,13194
"SANTA ANA","SAN SEBASTIAN SALITRILLO",3601,952,24,36,2878
"SONSONATE","CALUCO",2363,626,8,13,1410
"SONSONATE","SAN JULIAN",4164,880,17,39,2704
"SONSONATE","SANTO DOMINGO DE GUZMAN",1508,417,7,20,1165
"SONSONATE","SAN ANTONIO DEL MONTE",6458,2011,25,42,2260
"SONSONATE","NAHUIZALCO",14178,2248,36,63,4715
"SONSONATE","ACAJUTLA",13557,2340,58,97,5000
"SONSONATE","CUISNAHUAT",2343,823,15,19,1193
"SONSONATE","ARMENIA",6553,1683,27,62,6584
"SONSONATE","SALCOATITAN",1460,525,12,13,925
"SONSONATE","SONSONATE",18172,5360,80,135,10479
"SONSONATE","SANTA CATARINA MASAHUAT",2882,549,8,27,893
"SONSONATE","SANTA ISABEL ISHUATAN",1582,593,8,19,1776
"SONSONATE","NAHUILINGO",2449,536,8,14,1267
"SONSONATE","JUAYUA",5703,2382,30,62,3109
"SONSONATE","IZALCO",14621,4226,81,110,11744
"SONSONATE","SONZACATE",6141,2002,32,41,3923
"LA UNION","PASAQUINA",3653,606,11,44,2495
"LA UNION","POLOROS",1439,163,4,25,1565
"LA UNION","NUEVA ESPARTA",1882,283,12,39,1441
"LA UNION","CONCHAGUA",7424,1119,29,61,4507
"LA UNION","EL SAUCE",1249,155,4,13,1574
"LA UNION","LISLIQUE",1427,184,8,25,2043
"LA UNION","ANAMOROS",2919,339,14,34,2685
"LA UNION","SANTA ROSA DE LIMA",6896,1018,19,49,5220
"LA UNION","BOLIVAR",832,237,6,9,835
"LA UNION","YAYANTIQUE",1451,328,10,25,706
"LA UNION","EL CARMEN",2757,592,5,22,1428
"LA UNION","SAN ALEJO",4044,378,16,24,2322
"LA UNION","SAN JOSE LAS FUENTES",506,134,5,7,462
"LA UNION","CONCEPCION DE ORIENTE",1221,48,7,20,1556
"LA UNION","LA UNION",7607,1489,29,80,4695
"LA UNION","YUCUAIQUIN",1683,90,3,7,1453
"LA UNION","MEANGUERA DEL GOLFO",249,109,1,3,578
"LA UNION","INTIPUCA",1522,118,7,13,859
"LA PAZ","SAN EMIGDIO",567,134,3,2,694
"LA PAZ","CUYULTITAN",1223,265,5,7,1144
"LA PAZ","SAN LUIS LA HERRADURA",4190,842,15,33,3103
"LA PAZ","SAN RAFAEL OBRAJUELO",2390,367,8,15,1472
"LA PAZ","SANTIAGO NONUALCO",8702,2158,40,80,5246
"LA PAZ","TAPALHUACA",931,133,2,1,842
"LA PAZ","SANTA MARIA OSTUMA",1086,377,8,23,1221
"LA PAZ","SAN LUIS TALPA",4631,1592,23,48,3188
"LA PAZ","SAN JUAN TEPEZONTES",699,273,10,2,803
"LA PAZ","SAN ANTONIO MASAHUAT",1038,106,3,2,1091
"LA PAZ","SAN FRANCISCO CHINAMECA",1014,344,2,8,1805
"LA PAZ","PARAISO DE OSORIO",495,289,9,6,676
"LA PAZ","ZACATECOLUCA",14640,3030,63,111,10949
"LA PAZ","SAN PEDRO MASAHUAT",6077,667,27,38,3626
"LA PAZ","SAN JUAN TALPA",1487,392,8,13,1519
"LA PAZ","EL ROSARIO",3698,606,10,25,2551
"LA PAZ","SAN MIGUEL TEPEZONTES",1329,172,4,5,1180
"LA PAZ","SAN PEDRO NONUALCO",1799,390,6,11,1774
"LA PAZ","SAN JUAN NONUALCO",4140,557,12,16,2702
"LA PAZ","MERCEDES LA CEIBA",187,39,1,1,528
"LA PAZ","JERUSALEN",840,49,0,0,584
"LA PAZ","OLOCUILTA",5965,1556,21,46,5453
<?php
//$addresses = array($_GET['address']);
$language = (isset($_GET['language']) ? $_GET['language'] : 'es') ;
$region = (isset($_GET['region']) ? $_GET['region'] : 'sv') ;
$fin = fopen("data_towns.csv","r");
$fout = fopen("geocoded.csv","w+");
while (($row = fgetcsv($fin, 1000, ",")) !== FALSE) {
$address = $row[1] . ', ' . $row[0];
//print_r($row);die();
ob_implicit_flush(true);
ob_end_flush();
$url = "http://maps.googleapis.com/maps/api/geocode/json?address=". urlencode($address ) . "&sensor=false®ion={$region}&language={$language}";
$obj = json_decode(grabber($url));
//$okres_obj = g_find_type($html,'administrative_area_level_2');
$kraj_obj = g_find_type($obj,'administrative_area_level_1');
$town_obj = g_find_type($obj,'locality');
//$country_obj = g_find_type($html,'country');
//echo $address . ";" . $country_obj->long_name . ";" . $kraj_obj->long_name . ";" . $okres_obj->long_name . "<br/>\n";
$out = $row;
$out['lat'] = $obj->results[0]->geometry->location->lat;
$out['lng'] = $obj->results[0]->geometry->location->lng;
$out['town'] = $town_obj->long_name;
$out['kraj'] = $kraj_obj->long_name;
fputcsv($fout,$out);
echo $row[0].$row[1]."<br/>\t";
ob_flush();flush();
sleep(1);
//die();
}
/**
* extracts given area type from google geocoing response object
* @object the google response object (json_decode from json)
* @param type type of the area
*
* @return object containg of the (1st) type in the object
*
* example: g_find_type('locality')
*/
function g_find_type($object, $type) {
$array = $object->results[0]->address_components;
foreach ((array) $array as $component) {
foreach ((array) $component->types as $t) {
if ($t == $type) {
return $component;
}
}
}
}
/**
* curl downloader, with possible options
* @return html
* example:
* grabber('http://example.com',array(CURLOPT_TIMEOUT,180));
*/
function grabber($url,$options = array())
{
$ch = curl_init ();
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_TIMEOUT, 120);
if (count($options) > 0) {
foreach($options as $option) {
curl_setopt ($ch, $option[0], $option[1]);
}
}
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0); //this option is important here!!
$out = curl_exec($ch);
curl_close ($ch);
return $out;
}
province town Salvador Sánchez Cerén (FMLN) Elias Antonio Saca Gonzalez (Unidad) José Oscar Morales Lemus (FPS) René Alcidez Rodriguez Hurtado (PSP) Norman Noel Quijano González (ARENA) lat lng town province
SAN MIGUEL SAN MIGUEL 52942 10922 189 405 24013 13.47321 -88.176987 San Miguel San Miguel
SAN MIGUEL SAN RAFAEL ORIENTE 3510 665 7 32 1664 13.376918 -88.352604 San Rafael Oriente San Miguel
SAN MIGUEL SAN JORGE 2309 175 5 8 2207 13.41337 -88.339539 San Jorge San Miguel
SAN MIGUEL SAN ANTONIO DEL MOSCO 1397 36 2 5 1330 13.389411 -88.028991 San Antonio San Miguel
SAN MIGUEL LOLOTIQUE 3887 809 13 15 1169 13.5570718 -88.3494328 Lolotique San Miguel
SAN MIGUEL CHIRILAGUA 4413 379 10 30 2841 13.220278 -88.138611 Chirilagua San Miguel
SAN MIGUEL NUEVA GUADALUPE 2351 360 7 12 703 13.5333333 -88.35 Nueva Guadalupe San Miguel
SAN MIGUEL SAN LUIS DE LA REINA 1192 67 1 5 1022 13.812131 -88.346671 San Luis de la Reina San Miguel
SAN MIGUEL EL TRANSITO 4219 359 8 21 3373 13.35 -88.35 El Transito San Miguel
SAN MIGUEL CIUDAD BARRIOS 5577 694 13 49 3214 13.762926 -88.270163 Ciudad Barrios San Miguel
SAN MIGUEL SAN GERARDO 1506 41 1 5 1369 13.808486 -88.409066 San Gerardo San Miguel
SAN MIGUEL CHINAMECA 5227 616 17 35 4133 13.5122699 -88.3506468 Chinameca San Miguel
SAN MIGUEL MONCAGUA 6254 709 7 24 2284 13.529204 -88.255435 Moncagua San Miguel
SAN MIGUEL COMACARAN 1137 72 1 5 540 13.529289 -88.066954 Comacarán San Miguel
SAN MIGUEL ULUAZAPA 888 97 0 3 542 13.50245 -88.069847 Uluazapa San Miguel
SAN MIGUEL CHAPELTIQUE 2808 174 7 26 1056 13.63601 -88.26358 Chapeltique San Miguel
SAN MIGUEL SESORI 2261 227 10 23 1159 13.71702 -88.36026 Sesori San Miguel
SAN MIGUEL NUEVO EDEN DE SAN JUAN 852 75 2 4 725 13.8242243 -88.485189 Nuevo Edén de San Juan San Miguel
SAN MIGUEL QUELEPA 1732 126 0 7 956 13.5215874 -88.2327303 Quelepa San Miguel
SAN MIGUEL CAROLINA 1867 79 2 10 1636 13.8462374 -88.3057061 Carolina San Miguel
LA LIBERTAD ZARAGOZA 4665 1570 38 33 4131 13.589754 -89.288771 Zaragoza La Libertad
LA LIBERTAD CIUDAD ARCE 12399 3380 86 101 8837 13.8536285 -89.4535357 Ciudad Arce La Libertad
LA LIBERTAD LA LIBERTAD 9487 2174 42 99 6205 13.4856 -89.325737 La Libertad La Libertad
LA LIBERTAD HUIZUCAR 2324 472 15 14 2398 13.5902564 -89.2360234 Huizúcar La Libertad
LA LIBERTAD QUEZALTEPEQUE 13598 3062 86 102 8192 13.8333333 -89.2666667 Quezaltepeque La Libertad
LA LIBERTAD TALNIQUE 1299 436 5 20 1224 13.6666865 -89.4085891 Talnique La Libertad
LA LIBERTAD COMASAGUA 2643 375 7 31 2168 13.6369401 -89.3760304 Comasagua La Libertad
LA LIBERTAD SACACOYO 2997 620 12 37 3080 13.7326971 -89.470673 Sacacoyo La Libertad
LA LIBERTAD SANTA TECLA 30094 8136 308 300 33687 13.6833333 -89.2833333 Nueva San Salvador La Libertad
LA LIBERTAD SAN JUAN OPICO 14891 3865 95 156 10548 13.874636 -89.359353 San Juan Opico La Libertad
LA LIBERTAD COLON 19888 6191 171 194 18106 13.707793 -89.3487791 Colón La Libertad
LA LIBERTAD ANTIGUO CUSCATLAN 6647 1990 56 78 13431 13.6640938 -89.2514718 La Libertad
LA LIBERTAD TAMANIQUE 2255 510 12 67 2652 13.5965323 -89.4186473 Tamanique La Libertad
LA LIBERTAD TEPECOYO 2480 622 17 37 1737 13.7002778 -89.4677778 Tepecoyo La Libertad
LA LIBERTAD SAN PABLO TACACHICO 4298 459 9 25 4025 13.97263 -89.339401 San Pablo Tacachico La Libertad
LA LIBERTAD SAN JOSE VILLANUEVA 3041 869 19 32 2634 13.57342 -89.2658469 San José Villanueva La Libertad
LA LIBERTAD JICALAPA 883 353 10 15 1521 13.569964 -89.5078768 Jicalapa La Libertad
LA LIBERTAD NUEVO CUSCATLAN 2382 435 10 29 2800 13.65 -89.2666667 Nuevo Cuscatlan La Libertad
LA LIBERTAD CHILTIUPAN 2003 257 11 8 2622 13.589497 -89.467687 Chiltiupán La Libertad
LA LIBERTAD JAYAQUE 2852 502 15 29 2361 13.6732694 -89.4387562 Jayaque La Libertad
LA LIBERTAD SAN MATIAS 1692 259 6 10 1196 13.884904 -89.315368 San Matías La Libertad
LA LIBERTAD TEOTEPEQUE 1470 533 12 23 2378 13.5852778 -89.5183333 Teotepeque La Libertad
CHALATENANGO SAN LUIS DEL CARMEN 222 81 0 4 276 13.958431 -88.970614 San Luis del Carmen Chalatenango
CHALATENANGO CHALATENANGO 7011 1648 22 65 6698 14.0333333 -88.9333333 Chalatenango Chalatenango
CHALATENANGO SAN JOSE CANCASQUE 534 55 2 3 342 13.9740684 -88.8515028 San José Cancasque Chalatenango
CHALATENANGO TEJUTLA 2768 736 15 26 2532 14.1696312 -89.1026858 Tejutla Chalatenango
CHALATENANGO LA REINA 1581 374 18 20 1725 14.1959529 -89.1503566 La Reina Chalatenango
CHALATENANGO ARCATAO 1043 99 0 4 387 14.0938889 -88.7494444 Arcatao Chalatenango
CHALATENANGO SAN FRANCISCO LEMPA 255 36 0 0 222 13.9725525 -89.0017985 San Francisco Lempa Chalatenango
CHALATENANGO AGUA CALIENTE 1343 525 7 31 1422 14.18652 -89.2223659 AGUA CALIENTE Chalatenango
CHALATENANGO LA PALMA 2742 278 3 14 2772 14.31821 -89.168297 La Palma Chalatenango
CHALATENANGO SANTA RITA 913 187 3 6 1050 14.1285819 -89.0047868 Santa Rita Chalatenango
CHALATENANGO LAS FLORES 921 10 0 1 21 14.0501734 -88.8377035 San José Las Flores Chalatenango
CHALATENANGO CONCEPCION QUEZALTEPEQUE 1553 226 8 8 1535 14.089184 -88.9581432 Concepción Quezaltepeque Chalatenango
CHALATENANGO EL CARRIZAL 748 91 2 5 507 14.1768739 -88.9204311 El Carrizal Chalatenango
CHALATENANGO NOMBRE DE JESUS 1426 96 2 6 676 14.0082761 -88.7289492 Nombre de Jesús Chalatenango
CHALATENANGO OJOS DE AGUA 631 247 4 6 772 14.1803778 -88.8922742 Ojos de Agua Chalatenango
CHALATENANGO SAN MIGUEL DE MERCEDES 452 578 4 7 312 14.0092855 -88.9401893 San Miguel de Mercedes Chalatenango
CHALATENANGO SAN FRANCISCO MORAZAN 951 144 3 2 614 14.1833333 -89.05 San Francisco Morazán Chalatenango
CHALATENANGO POTONICO 547 50 1 0 425 13.9655539 -88.8922742 Potonico Chalatenango
CHALATENANGO EL PARAISO 1880 865 7 31 1976 14.1070716 -89.0728633 El Paraíso Chalatenango
CHALATENANGO LA LAGUNA 813 166 4 4 1147 14.1631729 -88.9425836 La Laguna Chalatenango
CHALATENANGO SAN RAFAEL 847 433 7 19 844 14.1359255 -89.0251022 San Rafael Chalatenango
CHALATENANGO NUEVA CONCEPCION 6113 1147 23 45 6317 14.12458 -89.293171 Nueva Concepción Chalatenango
CHALATENANGO SAN ISIDRO LABRADOR 297 14 1 1 31 14.0095669 -88.8425038 San Isidro Labrador Chalatenango
CHALATENANGO AZACUALPA 296 36 0 1 323 13.9891678 -88.9856574 Azacualpa Chalatenango
CHALATENANGO SAN FERNANDO 505 81 0 7 564 14.3081093 -89.02331 San Fernando Chalatenango
CHALATENANGO COMALAPA 872 131 3 6 975 14.1378221 -88.9575449 Comalapa Chalatenango
CHALATENANGO SAN ANTONIO LOS RANCHOS 554 44 1 1 18 14.0061818 -88.8946713 San Antonio Los Ranchos Chalatenango
CHALATENANGO SAN ANTONIO DE LA CRUZ 492 63 1 3 384 14.0151198 -88.7908717 San Antonio de La Cruz Chalatenango
CHALATENANGO LAS VUELTAS 837 25 0 0 95 14.0939595 -88.8892777 Las Vueltas Chalatenango
CHALATENANGO CITALA 916 86 1 4 1287 14.3764417 -89.2146237 Citala Chalatenango
CHALATENANGO DULCE NOMBRE DE MARIA 946 409 8 13 1120 14.151691 -89.010685 Dulce Nombre de María Chalatenango
CHALATENANGO NUEVA TRINIDAD 849 44 1 1 146 14.0731548 -88.7884686 Nueva Trinidad Chalatenango
CHALATENANGO SAN IGNACIO 1975 125 5 8 2039 14.3384961 -89.1765517 San Ignacio Chalatenango
USULUTAN SANTA ELENA 3351 1267 16 25 2175 13.3797782 -88.4137279 Santa Elena Usulután
USULUTAN NUEVA GRANADA 1599 188 5 16 1305 13.6 -88.45 Nueva Granada Usulután
USULUTAN ALEGRIA 3076 369 11 17 1357 13.5073403 -88.4863991 Alegría Usulután
USULUTAN JUCUAPA 3956 477 15 20 3051 13.5166667 -88.3833333 Jucuapa Usulután
USULUTAN BERLIN 4326 739 16 41 2571 13.494353 -88.530402 Berlín Usulután
USULUTAN EREGUAYQUIN 1218 249 8 13 1087 13.35 -88.3833333 Ereguayquin Usulután
USULUTAN PUERTO EL TRIUNFO 3448 550 11 14 1984 13.2833333 -88.55 Puerto El Triunfo Usulután
USULUTAN JUCUARAN 2981 301 12 32 1453 13.25115 -88.244904 Jucuarán Usulután
USULUTAN SAN FRANCISCO JAVIER 1622 171 4 12 931 13.417486 -88.573121 San Francisco Javier Usulután
USULUTAN SAN BUENAVENTURA 1324 118 4 2 846 13.5399448 -88.383412 San Buenaventura Usulután
USULUTAN MERCEDES UMAÑA 3176 245 6 19 2130 13.5666667 -88.5 M
# -*- coding: utf-8 -*-
import csv
import requests
from lxml import html
import copy
outfile = open('data.csv', 'w')
outwriter = csv.writer(outfile, quoting=csv.QUOTE_NONNUMERIC)
def scrape(url,level,names,domain,outwriter):
page = requests.get(url)
domtree = html.fromstring(page.text)
if (level == 4):
trs = domtree.xpath('//table[@id="TVOTOS"]/tbody/tr');
trs.pop(0)
for item in trs:
title = item.xpath('th/@title')[0].strip()
n = names[:]
n.append(title.encode('utf-8','ignore'))
tds = item.xpath('td')
tds.pop(0)
res = []
#print tds
for it in tds:
res.append(it.xpath('text()')[0].replace(",",""))
out = n+res
#print out
outwriter.writerow(out)
#raise Exception('wwe')
else:
ths = domtree.xpath('//table[@id="TVOTOS"]/tbody/tr/th');
ths.pop(0)
for item in ths:
title = item.xpath('@title')[0].strip()
link = item.xpath('a/@href')[0].lstrip('.').lstrip('/')
print names
n = names[:]
print n
print title
n.append(title.encode('utf-8','ignore'))
print n
scrape (domain + link, level + 1, n, domain,outwriter)
# print item
#raise Exception('www')
#scrape("http://elecciones2014.tse.gob.sv/resultados/99/DPR999999.htm",1)
domain = "http://elecciones2014.tse.gob.sv/resultados/"
scrape("http://localhost/michal/dev/sv2014/DPR999999.htm",1,['Total nacional'],domain,outwriter)