Sistema para la detección y procesamiento de eventos anómalos en datos de la antena principal del Observatorio de Radio Jicamarca.
Event_serializer es un software de procesamiento automatizado que analiza archivos de datos del radar de Jicamarca, separando las señales activas y pasivas, aplicando filtros de significancia y detectando eventos anómalos de manera eficiente.
git clone https://github.com/cfgarcia1903/JRO-Event-Identifier.git
cd JRO-Event-Identifierconda create -n JRO_CR python=3.9.21
conda activate JRO_CR
pip install numpy==1.23.0
pip install matplotlib==3.5.1
pip install scipy==1.11.0
pip install pandas==2.2.3
pip install schainpy==3.0.1rc1Edita el archivo Event_serializer/parameters.py con los siguientes parámetros:
raw_files_root_path: Directorio donde se encuentran los archivos .r sin procesarprocessing_hub_path: Directorio temporal para procesamiento (se crea automáticamente en caso no exista)output_root_path: Directorio donde se guardarán los archivos procesados (.pickle)
channels: Lista de canales a analizar (ej: [0, 1, 2])decode: True si los datos necesitan decodificacióncode_vec: Vector de código para decodificaciónnBaud: Número de baudios del códigostartDateyendDate: Rango máximo de fechas para procesarstartTimeyendTime: Rango máximo de horas para procesar
nSigma: Número de sigmas para filtro de significanciasignificance_filter_units: 'linear' o 'dB', escala sobre la que se aplica el filtro de significanciamin_channels: Mínimo de canales requeridos en coincidenciamin_samples: Mínimo de muestras consecutivas requeridas
conda activate JRO_CR
cd Event_serializer
python main.pyEn caso se ejecute en un servidor, será necesario tener una interfaz gráfica para que se pueda cargar el módulo Signal Chain sin errores
El software Event_serializer funciona de la siguiente manera:
- Preparación: Crea un directorio temporal de procesamiento
- Listado: Encuentra todos los archivos .r en el directorio de datos
- Procesamiento iterativo: Para cada archivo:
- Lo copia al directorio temporal
- Separa los datos en señales activas y pasivas
- Aplica decodificación (si está habilitada)
- Crea matrices RTI (Range-Time-Intensity) para cada tipo de señal
- Aplica filtros de significancia, coincidencia y forma
- Procesa y guarda los eventos detectados como archivos .pickle
- Limpia los archivos temporales
- Los eventos detectados se guardan como archivos .pickle en
output_root_path - Formato:
{nombre_archivo}_B{bloque}_active.pickley{nombre_archivo}_B{bloque}_passive.pickledependiendo si los perfiles procesados cuentan con pulso de transmisión o si el radar se encuentra funcionando de forma pasiva - Cada archivo contiene diccionarios con datos de los eventos anómalos identificados (un diccionario por evento)
El sistema proporciona información en tiempo real sobre:
- Archivos siendo procesados
- Bloques de datos analizados
- Eventos detectados y guardados
- El sistema procesa automáticamente todos los archivos .r encontrados en el directorio especificado
- Se recomienda tener suficiente espacio en disco para los archivos temporales y de salida
- Los archivos de salida son archivos binarios Python (.pickle) que pueden ser cargados posteriormente para análisis
- El procesamiento puede tomar tiempo considerable dependiendo del tamaño y cantidad de archivos