Mostrando las entradas con la etiqueta Python. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Python. Mostrar todas las entradas

miércoles, 15 de abril de 2026

Crónicas de un Datero del Aire: El Origen de Tangara

Hola Mundo. Después de un tiempo de silencio por aquí —ya saben, los "cuasi años" que a veces se me pasan entre líneas de código y rodaditas por la sucursal del cielo—, hoy quiero sentarme a escribir para contarles algo que me mueve las fibras. No se trata solo de servidores o de cómo configurar un túnel en Cloudflare, sino de cómo los datos pueden ayudarnos a entender el aire que entra en nuestros pulmones.

Como muchos saben, soy egresado de la Univalle, tecnólogo e ingeniero, pero más allá de los títulos, soy un ciclista urbano y biciviajero en formación que se cansó de no saber qué estaba respirando. Hoy les vengo a echar el cuento de mi faceta como "Datero del Aire" y el nacimiento de un proyecto que bautizamos Tangara.


Datero del Aire - Tangara
https://share.google/aimode/hYgvv10KxH6blCIkc


La Chispa inicial: ¿Qué estamos respirando?

Todo empezó con una pregunta simple pero inquietante mientras subía en la cicla hacia el kilómetro 18 o recorría las calles de Cali, Colombia: ¿Realmente el aire que nos rodea es tan limpio como creemos?

Como ingeniero, uno no se queda con la duda; uno busca el dato. Según la OMS sólo 1 de cada 10 personas respira aire que no impacta negativamente a su salud, el 92% de la población mundial urbana y rural viven en lugares con condiciones deficientes en calidad de aire, según las recomendaciones de la OMS entre el año 2008 y el año 2013 los niveles de contaminación del aire en lugares urbanos que monitorean la calidad del aire aumentaron en un 8%.

Al ver que la información oficial publicada para la ciudad de Cali, Colombia, era limitada en cobertura espacial, esa "idea falaz" de que un ciudadano común no podía medir la calidad del aire empezó a desmoronarse.

¿Si podemos armar un sancocho de leña en el río Pance, por qué no podíamos armar nuestra propia red de sensores para medir la calidad del aire?

El "Hack" que lo inició todo

Dejando a un lado tanta cháchara teórica, me puse manos a la obra. Mi primer acercamiento no fue con hardware, sino con puro código. En aquel entonces (año 2019 - 2020), acceder a datos históricos o en tiempo real de calidad del aire era costoso, pero encontré un camino.

Me aproveché de un pequeño "hack": usé el API Key público que tenía el sitio oficial de BreezoMeter. Programé un script en Python que consultaba esos datos y los publicaba automáticamente en Twitter. Mi intención era simple: que la información estuviera donde la gente la pudiera ver. Si les gusta leer código, todavía pueden chismosear el repositorio en mi GitHub como breezometer-api-demo.

Esta historia no es nueva; de hecho, parte de este camino quedó documentado en una entrevista muy especial que me hicieron en el año 2020. Si quieren conocer el relato desde mis inicios colaborando con la acción social en la ciudad, los invito a leer la publicación original: «Soy un ‘datero’ del aire»: Sebastián Ríos en Chispa.

De los bits a las personas: El encuentro con CanAirIO

Lo maravilloso de internet es que, cuando lanzas un bit al aire, nunca sabes quién lo va a atrapar. Gracias a esos tweets automáticos, me contactó Dan Loaiza (@papachan), un experto en Clojure y también bicipaseador a quien conocí hace años en Apps.co del MinTIC.

Dan me habló de CanAirIO, una iniciativa ciudadana que buscaba construir una red de monitoreo usando hardware y software libre. Fue el puente perfecto para pasar de consumir datos de terceros a generar nuestros propios datos locales.

El nacimiento de Tangara: Ciencia de garaje con propósito

El proyecto Tangara (nombrado así por esas aves coloridas que cruzan nuestra sucursal del cielo y que dependen de ese mismo aire) no nació en un laboratorio de cristal, sino en el escritorio de nuestras casas, donde muchos de ustedes sueldan sus primeros circuitos.

Es vital mencionar que el firmware y la construcción de los sensores de Tangara están basados íntegramente en el trabajo de CanAirIO. Ellos han creado un ecosistema increíble de ciencia ciudadana donde el conocimiento es libre. Tangara es, en esencia, nuestra implementación local de esa visión, adaptando su tecnología para que los caleños podamos tener voz en la discusión ambiental.

El Stack del Datero

Para los que vinieron por la parte técnica, el corazón de este sancocho se basa en:

  1. Sensores de Material Particulado (PM2.5): Usamos el Sensirion SPS30, un sensor que mide esas partículas microscópicas que se quedan en los pulmones. Aunque humilde, ofrece una correlación impresionante si se calibra bien.
  2. Microcontroladores y Pantallas: ESP32 para la conectividad Wi-Fi y pequeñas pantallas OLED para que cualquier vecino pueda ver el índice de calidad del aire en tiempo real, sin necesidad de abrir una app.
  3. Visualización: InfluxDB para las series de tiempo y Grafana para ver el comportamiento del aire en nuestra "sucursal del cielo".

"La terminal no miente: si el sensor marca 50 µg/m³, es hora de empezar a preguntarnos qué estamos haciendo mal como ciudad."

Ser un Datero como herramienta de empoderamiento

Lo más bonito de este proceso no fue ver las gráficas subir y bajar, sino ver cómo la comunidad se apropiaba del proyecto. Ser un Datero del Aire es entender que no necesitamos esperar a que las grandes instituciones nos den permiso para conocer nuestra realidad, sino que como ciudadanos podemos tener voz en la discusión ambiental.

Cali tiene un potencial enorme para ser una ciudad inteligente, pero esa inteligencia debe empezar por sus ciudadanos. Podemos construir nuestros propios instrumentos, documentar el proceso y compartir el conocimiento para proteger lo más básico que tenemos: el aire que respiramos.

Reflexión final

A veces nos encerramos tanto en el bit y en el Gemini, ChatGPT y Claude que olvidamos que el hardware más importante es nuestro propio cuerpo. El proyecto Tangara me enseñó que la ingeniería de datos y el bienestar ambiental son dos caras de la misma moneda.

En una próxima entrada, les mostraré el paso a paso de cómo ensamblar su propio medidor siguiendo la guía de CanAirIO. Por ahora, los invito a que miren hacia arriba, respiren profundo y se pregunten qué bits pueden aportar ustedes a su entorno.


Espero que esto les sirva de inspiración para sus propios proyectos.

Un bit más en la web.


---

Metadatos

Tags: #CalidadDelAire #Tangara #DateroDelAire #Chispa #CanAirIO #Cali #OpenSource #CienciaCiudadana #Python #IoT

Meta-descripción: Sebaxtian relata cómo pasó de un script en Python a crear Tangara, basándose en la tecnología de CanAirIO para monitorear el aire en Cali.

viernes, 9 de abril de 2021

Data Engineer vs Data Scientist

Si, hace mucho tiempo (varios meses) que no escribo una entrada para este blog de Idea Falaz, aquí en esta entrada quiero compartir algo que me encuentro aprendiendo de gran utilidad para el rol que actualmente desempeño laboramente como Data Engineer. Aquí aprovecho hacer una aclaración y es que voy a compartir mi opinión y sólo una pequeña parte de lo que he podido aprender y evidenciar, no es un hecho tácito y me gustaría conocer la opionión de otras personas con respecto al tema. (escribiendo esta entrada me alejé un poco de la parte técnica, voy a escribir otra entrada para la parte técnica)

Primero quiero comentar algunas de las dificultades que se me han presentado durante el desarrollo de algunos proyectos.

Un panorama difuso entre Data Scientist y Data Engineer; esto es algo a lo que me enfrenté en los últimos 2 años. En la industria del software no existía y aún no existe (con algunas excepciones) una distinción o claridad en cuanto al role y funciones que debe cumplir una persona dedicada al Data Scientist ó Data Engineer, es más, hay personas y empresas que todavía tienen la idea errónea de que el Data Scientist es toda una profesión en la cual se le delega como funciones tódo el trabajo y esfuerzo que se debe realizar como Data Engineer, ésto es un gran error tanto para una empresa de la industria del software como para las personas que están construyendo un perfil profesional en este tipo de industria, al final esto puede ser contraproducente, para ambas partes.

Al momento de escribir esta entrada no me considero un Senior ni mucho un Luminary como Software Developer, pero considero que tengo la suficiente experiencia para determinar que soy un mid-senior, con esto en mente y a raíz de la premisa del anterior parrafo, consultando con amigos que han estado relacionados tanto directamente como inderectamente con la industria del software y después de leer varios artículos y blog posts, encontré una zona común en cuanto a las diferencias más evidentes entre el Data Scientist y Data Engineer, esto me ayudó mucho a tener un panorama un poco más claro en cuanto a cuáles son mis intereses, como también definir profesionalmente mis skills y cómo integrarme a un gran equipo interdisiplinario dedicado a la industria del software con proyectos Big Data.


Data Engineer vs Data Scientist

Responsabilidades de un Data Engineer

Empezando a definir de forma general, el Data Engineer es alguien quien desarrolla, construye, prueba y mantiene arquitecturas como bases de datos y sistemas a gran escala. Los Ingenieros de Datos operan con datos "Crudos", estos datos casi siempre, pero que en la vida real es siempre, contienen errores ya sea humanos, provenientes de máquinas o instrumentos. Los datos puede ser no válidos o contener registros sospechosos, esto se debe a que los datos no tienen un formato o contienen códigos específicos de un sistema.

Los Ingenieros de Datos necesitan recomendar, ademas deben implementar formas de mejorar la confiabilidad, eficiencia y calidad de los datos. Para hacer esto, los Ingenieros de Datos necesitan emplear una gran variedad de lenguajes y herramientas para operar en conjunto o tratar de buscar nuevas oportunidades de adquirir nuevos datos desde otros sistemas adecuados para el sistema en específico, estos datos pueden convertise en información para que posteriormente sean procesados por los Data Scientists.

Los Ingenieros de Datos deben asegurar que la arquitectura implementada sea soportada con los requisitos de los Científicos de Datos, Stackholders y el tipo de negocio a la cual sea aplicada.

Al final de este proceso el equipo de Ingenieros de Datos deben generar conjuntos de datos que deben poner a disposicion de los Científicos de Datos para el posterior modelamientos de datos, mineria de datos y producción.


Responsabilidades de un Data Scientist

Empezando a definir de forma general, el Data Scientist obtiene los datos del Data Ingeneer que son inicialmente limpiados y manipulados para poder ser operados en un flujo de trabajo de forma tal que el Científico de Datos puedan usar estos datos para desarrollar sofisticados métodos y procesos que hacen parte de modelos predictivos o descriptivos.

Los cientificos de datos necesitan tener acceso a las preguntas propuestas por la industria o el negocio en particular, para dar respuestas a estas preguntas se requiere que los Data Scientist tengan a su disposicion grandes volumenes de datos tanto de fuentes internas de la misma organización como también de fuentes externas a la organización, uno de los objetivos principales en este proceso consiste en identificar patrones en los datos.

Encontrar patrones en los datos incurre en generar un análisis para la adquisición de información que responda o no a las preguntas propuestas, deben tener habilidades para presentar informes a los stakeholders de forma clara sin tanto tecnicismo, una vez los stakeholders dan un parte de aceptación se debe asegurar que el trabajo realizado se pueda automatizar generando informes de forma recurrente ya sea diariamente, mensualmente o cada año.


¿Y ahora qué?

Bueno, pues aquí algo importante a tener en cuenta, tanto Data Engineer como Data Scientist, deberían trabajar coordinadamente, no son cómo el agua y el aciete, deben tener objetivos claros definidos al inicio de un proyecto, dado que el flujo de los procesos deben/están integrados en ambas partes.

En la vida real existen muchos inconvenientes dado que las teconologías usadas son muy variadas, en algunos casos tenemos Data Scientist expertos usando tecnologias como R, RStudio son muy buenos en eso pero carecen de conocimientos en Python y Jupyter Notebooks, contrario a algunos Data Engineers que son expertos usando estas tecnologías.

Este es un punto a tener en cuenta, la parte técnica podría convertirse en un cuello de botella en el flujo natural de los datos, en algunos proyectos he tenido la experiencia de vivir esto, por lo que buscando opciones de herramientas que permitan ambos mundos, Data Engineers y los Data Scientist, me encontré con una herramienta que actualmente me encuentro aprendiendo y espero compartir en otra entrada algunas razones por las cuales me parece interesante aprender y a tener en cuenta en futuros trabajos, esta herramienta se llama Kedro, desarrollada por el equipo de Quantum Black Labs, son lideres en la industria de los datos.



jueves, 5 de junio de 2014

Descargar Videos De YouTube Desde Terminal Linux/Ubuntu Con youtube-dl

La razón de ser de esta entrada consiste en la pregunta que me hace un primo que actualmente vive en Ecuador, el me preguntaba si podía descargar un album de un remix de Bob Marley que le gustó y que estaba en YouTube (este es el video).

YouTube-DL
YouTube-DL


Actualmente ando usando Linux en una distribución Ubuntu, entonces buscando información encontré una forma fácil y rápida para descargar vídeos de YouTube desde la Terminal de Ubuntu.

Existe en los repositorios de Ubuntu un programa que se llama youtube-dl el cual es una poderosa herramienta escrita en Python y de libre distribución, este es el sitio web del proyecto http://rg3.github.io/youtube-dl/ según el sitio web del proyecto este programa debería funcionar en Windows y Mac OS X siempre y cuando tengan instalado el interprete de Python en la versión 2.6, 2.7 o 3.3+.

La herramienta es muy poderosa y cuenta con muchas opciones a la hora de descargar videos tal y como mensionan en el README del proyecto en GitHub https://github.com/rg3/youtube-dl/ pero aquí en esta entrada voy a mencionar las opciones básicas para usar youtube-dl desde un terminal Linux.


No mas carreta y vamos a seguir los siguientes pasos desde una Terminal de Linux:

  • Instalar el programa:
sudo apt-get install youtube-dl

  • Descargar el video:
youtube-dl http://youtu.be/hfjAVGoDk4U


Por defecto se descarga el video en formato .mp4 con la mejor calidad posible, en algunos videos es necesario forzar la descarga en la mejor calidad con la opción -f así:

youtube-dl -f http://youtu.be/hfjAVGoDk4U


También podemos descargar el video en un formato diferente a .mp4, actualmente los formatos soportados son flv, ogg, webm así:

youtube-dl --recode-video ogg http://youtu.be/hfjAVGoDk4U


En algunas ocasiones es probable que solo nos interese el audio que contiene el video, es el caso de lo que pregunta mi primo, para esto ejecutamos el programa con la opción -x o --extract-audio donde los formatos de audio soportados son acc, vorbis, mp3, m4a, opus y wav, por defecto se descarga la mejor calidad de audio, podemos seleccionar el formato de audio con la opción --audio-format.

  • Descargar el audio:
youtube-dl -x --audio-format mp3 http://youtu.be/hfjAVGoDk4U



Listo, esas son las opciones básicas para usar youtube-dl y hacer la descarga de video o audio de YouTube, en el sitio web del proyecto http://rg3.github.io/youtube-dl/ se encuentra mas información sobre opciones avanzadas.


Si les da pereza leer, pues aquí les tengo el video donde se muestra la ejecución de cada comando: