An Attempt to Create Heatmap of Ankara 2014 Elections by Google Fusion Tables

EDIT: This attempt failed because Google could not find the right location of many ballot boxes. This was due to two reasons. One stems from bogus CHP STS dataset such as typos, acronyms, unofficial namings of institutions, wrong/old names, etc.. Second, GFTM (or Google Maps API) could not be able to find some addresses even if they are correct, especially in the cases where an address is not close to the city center (e.g. Ayas, Cubuk, Kalecik, Elmadag, Akyurt, etc.); many of these addresses mapped to a single location somewhere in downtown Ankara.

The unfortunate thing is that GFTM did not report these cases during the import and I could not find a way of detecting, counting and correcting these other than finding spots where many different addresses mapped to (black holes) and manually correcting location info of each ballot box address. You can play with the heatmap available here.

In my previous study, I created a ballot box map of Ankara where the color of a marker denotes the winner at that location. Yet, vote shares or vote differences is not reflected in that map. We cannot differentiate, say, if AKP has %0.5 or %20 more voters than CHP without clicking on a particular marker. My first intention by creating heatmaps of AKP and CHP was to reflect their vote share and vote difference. Unfortunately, I cannot do this with Google Fusion Tables Maps (GFTM hereafter) because it represents the densities but not the values of the points:

Heatmaps display colors on the map to represent the density of points from a table.

GFTM page says. It however allows these points to be weighted. Based on my experiments, weights are normalized (how much I increased their weight, nothing seems changed). The effect of weight is defined as follows:

The optional Weight column adjusts each point’s importance by multiplying its intensity by the specified column value

Since how densities are computed is not revealed, reverse engineering is not applicable (i.e. giving lower weights to points at higher densities) to remove the bias of the clustered boxes. Weights should always be positive, otherwise GFTM places a red square to that location.

GFTM limits the number of points for a heatmap to 1000 because images are rendered on our local browsers (unlike markers). So I had to merge (sum up) the ballot boxes in the same address first, this indeed solved boxes’ superpositioning problem while reducing the granularity. After this process I realized that there are ~1600 unique addresses. Then I removed the towns which are not central (Beypazarı, Çamlıdere, Evren, Güdül, Haymana, Kızılcahamam, Nallıhan, Polatlı and Şereflikoçhisar listed as so here, I indeed added one more victim, Bala) which gave me 1001 locations.

GFTM heatmap have two sliders, one for radius the other is for setting the opacity. GFTM also does not allow this map to be published. In this post I share some captured heatmaps, please let me know if you have any ideas on what/how/where to look at. I hope this post helps anyone :-)

So my this much functional hammer (GFTM-heatmapper) is here and my nails (filtered dataset) are there.

Filtered: An address is included only if the party under examination won there.
Weighted: A weight applied to each address instead of just looking at their density. Weights are always positive.

  • A heatmap of no weight just gives the density of the ballot box locations. No weight and no filter (all addresses in the dataset represented)
All Locations No Weight

All Locations No Weight

  • All ballot box locations weighted by valid votes
All locations weighted by valid votes

All locations weighted by valid votes

  • All locations weighted by particular vote counts
All locations weighted by AKP votes

All locations weighted by AKP vote counts

All weighted by CHP vote counts

All locations weighted by CHP vote counts

  • Party won locations only (filtered), weighted by its vote counts
AKP only weighted by tis vote counts

AKP only weighted by its vote counts

CHP only weighted by vote counts

CHP only weighted by vote counts

  • akp_share = akp_votes/valid_votes , chp_share = chp_votes / valid_votes . Filtered locations. Weight = share differences
AKP locations weighted by AKP share - CHP share

AKP locations weighted by AKP share – CHP share

CHP locations weighted by CHP share - AKP share

CHP locations weighted by CHP share – AKP share

 

You may also like...