Como é feito o ranking do projeto Repasse?

Um dos projetos que contribuímos ativamente é o Repasse. Em outra hora falaremos sobre as funcionalidades do projeto, pois nessa postagem vamos focar em uma das características mais importantes do repasse, o Ranking.

Com essa funcionalidade podemos ver os municípios que mais arrecadaram dinheiro do governo federal em termo per capita. O gráfico também adiciona os dados de IDH(Índice de Desenvolvimento Humano) para que tenha uma ideia se municípios que mais precisam estão recebendo em troca do governo federal.

É claro que somente o IDH não é necessário, pois outros números podem esclarecer a realidade do município em questão, no entanto, para evitar uma aplicação poluída e cheia de números perdidos, nesse primeiro momento focamos somente em colocar o IDH.

O funcionamento do gráfico envolve uma consulta a toda a massa de dados de repasses e de população. O IDH é buscado posteriormente, não sendo possível na mesma consulta trazer o IDH, já que ele não é coletado anualmente pela nossa fonte, que é o Atlas do Desenvolvimento Humano no Brasil.

A consulta no banco depende de um dado essencial que é a população de cada cidade. A cada ano temos que atualizar os dados de população de acordo com as estimativas do IBGE.

A maior dificuldade, no entanto, está em cruzar os dados que vêm do portal da transparência. Algumas cidades podem ter nomes diferentes na base do IBGE. As bases não são padronizadas e há mudanças nos nomes da cidade, por exemplo:

http://g1.globo.com/sao-paulo/noticia/2011/05/plebiscito-decide-que-embu-passa-se-chamar-embu-das-artes.html

De qualquer forma, esses são os passos necessários para formar esse ranking:

  • Buscar os dados na base do Repasse e somar por anos(os dados são mensais), dividir pela quantidade de habitantes daquele município e ordenar por esse valor. Essa consulta leva aproximadamente 30 segundos, são milhões de linhas envolvidas nela;
  • Ao retornar os dados, buscamos as informações de IDH para cada um dos municípios;
  • O IDH e o Ranking são organizados em um objeto que é salvo em um cache, ou seja, a primeira consulta leva um tempo, mas as subsequentes são praticamente imediatas;
  • Retornamos esse objeto em um serviço web e usamos a ótima biblioteca Highcharts para mostrar os dados. Esses dados obviamente são organizados em formatos aceitos pela biblioteca…

Essa é a explicação superficial do funcionamento do ranking. Para programadores, o código está no github!

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.