PROYECTO - PROCESADOR DE ARCHIVOS DEL SOFTWARE ARGUS
#LIBRERIAS NECESARIAS%pip install python-docx
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
from scipy.signal import find_peaks
from IPython.display import Image
import docx
from docx import Document
from docx.shared import Inches
import pandas as pd
import numpy as np
from docx import Document
import numpy as np
from docx import Document
# Iterar sobre cada archivo de la lista
for archivo in archivos:
ruta_archivo = f'{archivo}'
# Procesar el archivo CSV
try:
data = pd.read_csv(ruta_archivo, encoding='latin-1')
print(f'Procesando archivo: {archivo}')
#:::::::::::::::ANALISIS Y SEPARACIÓN DE TIEMPO::::::::::::::::::::
fracciones_de_tiempo = data['Tiempo'].unique()
#:::::::: ANALISIS DE LAS FRECUENCIAS AUTORIZADAS Y PIRATAS::::::::
frecuencias_autorizadas = frecuencias['Frecuencia'].tolist() # Obtener la lista de frecuencias autorizadas
promedios = data.groupby('Frecuencia (Hz)').agg({'Level (dBµV/m)': 'mean'}).reset_index() # Calcular el promedio de los niveles de frecuencia para cada frecuencia
#::::::::::::::CONFIGURACIÓN DE IMAGEN DEL GIF::::::::::::::::::::
fig, ax = plt.subplots(figsize=(24, 6)) # Ajusta el ancho a 12 pulgadas y el alto a 6 pulgadas
fig.patch.set_facecolor('white') # Configuración del fondo negro y color de elementos del gráfico
ax.set_facecolor('white')
plt.grid(True, color='black', linestyle='--', linewidth=0.5) # Color de las líneas de la cuadrícula
#::::::::ITERACIÓN PARA OBTENER LAS GRAFICAS PARA CADA TIEMPO::::::
ims = []
for tiempo in fracciones_de_tiempo:
subset_data = data[data['Tiempo'] == tiempo]
im = plt.plot(subset_data['Frecuencia (Hz)'] / 1e6, subset_data['Level (dBµV/m)'],
color='blue')
ims.append(im)
#::::::::MARCAR LAS FRECUENCIAS AUTORIZADAS::::::::::::::::::::::
frecuencias_destacar = frecuencias['Frecuencia'].tolist() # Obtener las frecuencias y nombres a destacar
# Buscar las frecuencias a destacar en los datos
for frecuencia, nombre in zip(frecuencias['Frecuencia'], frecuencias['Nombre']):
if frecuencia in frecuencias_destacar:
level = 90 # Define el nivel en el que deseas colocar las líneas
plt.vlines(frecuencia, -10, level, color='red', linestyles='dashed', linewidth=0.5)
plt.text(frecuencia, level -8, f'{frecuencia}', ha='center', color='black')
#::::::::::::::CONFIGURACIÓN DE LA GRAFICA::::::::::::::::::
# Configurar colores de etiquetas, texto y ejes
plt.xlabel('Frecuencia (MHz)', color='black') # Etiqueta del eje x en MHz
plt.ylabel('Level (dBµV/m)', color='black')
plt.ylim(-10, 90) # Establecer el límite superior del eje y en 60 dBµV/m
plt.xlim(88, 108) # Establecer límites del eje x en MHz
plt.title('Gráfico de Frecuencia vs Nivel', color='black') # Cambiar el color del título a blanco
# Configuración de color para los ejes
ax.spines['bottom'].set_color('black')
ax.spines['top'].set_color('black')
ax.spines['left'].set_color('black')
ax.spines['right'].set_color('black')
ax.xaxis.label.set_color('black')
ax.yaxis.label.set_color('black')
# Configuración del color de los números en los ejes
ax.tick_params(axis='x', colors='black')
ax.tick_params(axis='y', colors='black')
plt.tight_layout(pad=3)
Procesando archivo: FM_LIMA_04-12-2023.csv Conteo de Frecuencias Autorizadas Activas (MHz): 26 Conteo de Frecuencias No Autorizadas Transmitiendo (MHz): 16


No hay comentarios:
Publicar un comentario