El sistema de adquisición de datos está constituido por tres subsistemas independientes que operan en paralelo:
- Sensor Fotométrico: Un sensor de precisión Li-COR acoplado a un datalogger a través de un amplificador UTA que registra las variaciones de tensión (voltaje) proporcionales a la iluminancia recibida.
- Actígrafo (ActTrust2): Un dispositivo de registro circadiano ambulatorio que almacena variables biológicas y ambientales (incluyendo canales de iluminancia propios) en formato de texto plano (.txt).
- Geoposicionamiento (GPS): Un dispositivo móvil con la aplicación OsmAnd configurada para registrar la trayectoria en formato estandarizado .gpx.
Uno de los mayores desafíos en el diseño de sistemas basados en sensores independientes es el sincronismo temporal. Para mitigar el desfase en el inicio de las capturas, se parametrizó la tasa de muestreo de todos los dispositivos a un intervalo discreto de 1 segundo. Asimismo, se realizó un proceso previo de sincronización de relojes internos en base a la hora de red (UTC). Tras la finalización del recorrido, los datos crudos (raw data) son descargados en sus formatos nativos (.gpx, .txt y .csv).
Para la consolidación de la información, se desarrolló un script en Python estructurado en módulos funcionales que ejecuta las siguientes etapas:
- Ingesta y Limpieza de Datos: El script lee de forma dinámica los archivos de entrada utilizando librerías especializadas (gpxpy y pandas). Se remueven los componentes de zona horaria (timezone-naive localization) y se estandarizan los formatos de fecha y hora. En el caso del archivo .gpx, el script convierte automáticamente el tiempo UTC a la hora local de la base mediante una resta indexada de 3 horas.
- Conversión Analógica-Digital (Fotometría): Los valores de tensión del sensor Li-COR son transformados a unidades de iluminancia física (Lux) mediante la aplicación por software de una función de transferencia lineal, la cual multiplica el voltaje por las constantes de ganancia del amplificador UTA y el factor específico de calibración del sensor: Iluminancia [Lux] = Vsensor * MultiplierUTA * MultiplierSensor * 1000
- Fusión de Datos Heterogéneos (Data Merging): Utilizando el DataFrame del GPS como eje estructural, se realiza una combinación por proximidad temporal asíncrona mediante la técnica pd.merge_asof en dirección al vecino más cercano (nearest). Esto garantiza que, incluso si un sensor presenta un micro-retardo en su captura, el dato fotométrico se asigne a la coordenada geográfica correcta. El resultado se exporta a una matriz unificada en formato .csv.
- Visualización Geoespacial Dinámica: Con el fin de ofrecer un diagnóstico rápido en campo, el script utiliza folium y branca para generar una interfaz interactiva en HTML. Esta herramienta proyecta la trayectoria sobre una capa satelital mediante una línea animada (AntPath) que indica el sentido de la marcha. Superpuesto a esto, se renderiza un mapa de calor por puntos (CircleMarker), donde el color de cada coordenada cambia dinámicamente según la intensidad de iluminancia registrada, aplicando una escala de color parametrizada (Jet colormap).