Press "Enter" to skip to content

Proyecto da datos abiertos – Padrón Electoral 2016

Durante el 2016 se realizaron las elecciones municipales chilenas. Por ley, el Servicio Electoral (SERVEL) debe publicar el padrón auditado en el cuál se detalla por comuna los ciudadanos habilitados para sufragar. Históricamente, este proceso se realiza a través del portal del servicio. En éste se publica el padrón de todo el país la información por medio de archivos PDF. Cuando supe de esto y acordándome de las polémicas que generaron los sitios que utilizaron los padrones previos, me propuse realizar una prueba de concepto para determinar cuanto tiempo me tomaría obtener dicha información de forma estructurada.

La primera dificultad es obtener el Padrón. El portal del SERVEL no facilita la búsqueda de información de estos archivos. De hecho, lo único obtenible a través de una navegación rápida son datos agregados de las elecciones, pero no el padrón en si. Realicé varias búsquedas internas y a través de google, pero no me fue posible dar con los archivos desde los servidores de SERVEL. Supongo que para evitar polémicas, han obscurecido esa información.

Por suerte, siempre existimos los nerds que piensan en esto 🙂 y luego de varias búsquedas en google logré dar con alguien que publicó el compilado de los PDF del Padrón 2016 en Pirate Bay. Después de un par de horas de descarga, ya tenía los PDF en mi poder.

La segunda dificultad es el formato PDF en si, ya que la especificación es extensa y la gran cantidad de librerías que existen hace decidir cuál usar una tarea de investigación. Sin embargo y al igual que la conversión a otros formatos, siempre hay gente en la comunidad que ya pasó por este tipo de problemáticas y generan herramientas de conversión de formatos!. Da la casualidad que en mi ubuntu viene una herramienta llamada pdftotext que permite llevar la información de archivos PDF a texto plano. Después de un rato de jugar con las opciones, logré una salida posicional que puede ser leída de forma secuencial fácilmente.

Para rescatar la información, construí un pequeño programa en python que lee la información del plano y genera un CSV. Para ello debí revisar un par de archivos muy extensos y debí debuggear varios casos raros. Una de las cosas que me llamó la atención es que visualmente, los PDF ocultan información cuando los datos de las personas sobrepasan una X cantidad de caracteres. Esto sucede en los nombres largos o en las direcciones extensas, por lo tanto, al agregar toda esa lógica de casos especiales, logré en menos de 100 líneas de código obtener la salida que esperaba.

El tercer paso fue llevar los archivos CSV a una base de datos para facilitar las consultas. Para ellos, utilicé Talend Open Studio y cargué una tabla en una base de datos PostgreSQL. Obviamente, al igual que en un proyecto de calidad de datos, existieron un par de registros que tuve que ingresar a mano. Realizando esto último, la base de datos con Nombre, RUT, Dirección electoral, Sexo, Circunscripción y Mesa llega a los 14.109.485 personas con un tamaño de 1.758 MB.

Conclusión

Desde el punto de vista de los datos, es interesante que exista información oficial y abierta para realizar análisis académico. Sin embargo, lo anterior deja la puerta abierta a que se haga mal uso de la de ésta, ya que al publicar datos sensibles como el RUT o la dirección abre la puerta a inescrupulosos que la mal utilicen.

Desarrollar este mini proyecto, es bastante simple, me tomo alrededor de 6 horas de mi tiempo libre. Para llegar a lo mismo que hace el rutificador solo bastaría construir la web app para consulta por RUT y voilá.

Disclaimer : Por razones éticas, no voy a subir el código de fuente o el dump de los datos. Si alguien lo quiere, que se queme un rato las pestañas.

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *