24-07-2023, 04:14 AM
¡Hola a todos!
Espero que estén teniendo un excelente día. Me encuentro trabajando en un proyecto en Python donde necesito leer y graficar datos de un archivo .sor. Lamentablemente, estoy teniendo dificultades para lograrlo y me gustaría pedir su valiosa ayuda.
El archivo .sor contiene datos de mediciones en el contexto de la industria de las telecomunicaciones, y necesito extraer información relevante y representarla gráficamente para su análisis.
El problema que enfrento es que no estoy seguro de cómo abrir y leer correctamente el archivo .sor, y luego procesar los datos para graficarlos de manera adecuada. He investigado sobre diferentes bibliotecas en Python para trabajar con archivos .sor, pero aún no logro obtener los resultados deseados.
Si alguien tiene experiencia trabajando con archivos .sor o conoce alguna biblioteca o enfoque adecuado para abordar este problema, estaría inmensamente agradecido si pudiera compartir su conocimiento conmigo.
Adjunto aquí el código que he intentado hasta ahora
Agradezco enormemente su tiempo y espero poder aprender y superar este obstáculo con la ayuda y orientación de esta comunidad de programadores de Python.
¡Muchas gracias de antemano por su apoyo!
Saludos cordiales.
Espero que estén teniendo un excelente día. Me encuentro trabajando en un proyecto en Python donde necesito leer y graficar datos de un archivo .sor. Lamentablemente, estoy teniendo dificultades para lograrlo y me gustaría pedir su valiosa ayuda.
El archivo .sor contiene datos de mediciones en el contexto de la industria de las telecomunicaciones, y necesito extraer información relevante y representarla gráficamente para su análisis.
El problema que enfrento es que no estoy seguro de cómo abrir y leer correctamente el archivo .sor, y luego procesar los datos para graficarlos de manera adecuada. He investigado sobre diferentes bibliotecas en Python para trabajar con archivos .sor, pero aún no logro obtener los resultados deseados.
Si alguien tiene experiencia trabajando con archivos .sor o conoce alguna biblioteca o enfoque adecuado para abordar este problema, estaría inmensamente agradecido si pudiera compartir su conocimiento conmigo.
Adjunto aquí el código que he intentado hasta ahora
Código:
import pandas as pd
import matplotlib.pyplot as plt
from google.colab import files
def graficar_datos_otdr(contenido_archivo):
try:
# Decodificar el contenido binario a texto utilizando diferentes codificaciones
codificaciones = ['utf-8', 'ISO-8859-1', 'Latin-1', 'Windows-1252']
contenido_texto = None
for codificacion in codificaciones:
try:
contenido_texto = contenido_archivo.decode(codificacion)
break
except UnicodeDecodeError:
continue
if contenido_texto is None:
raise UnicodeDecodeError("No se pudo decodificar el archivo con ninguna de las codificaciones soportadas.")
# Buscar la línea que contiene la pérdida total y la pérdida por kilómetro
perdida_total_linea = None
perdida_por_km_linea = None
lineas = contenido_texto.split('\n')
for linea in lineas:
if "pérdida total" in linea.lower():
perdida_total_linea = linea
elif "pérdida por kilómetro" in linea.lower():
perdida_por_km_linea = linea
# Extraer los valores de pérdida total y pérdida por kilómetro de las líneas encontradas
perdida_total = None
perdida_por_km = None
if perdida_total_linea:
perdida_total = float(perdida_total_linea.split(':')[1].strip().split()[0])
if perdida_por_km_linea:
perdida_por_km = float(perdida_por_km_linea.split(':')[1].strip().split()[0])
# Verificar si se encontraron los valores
if perdida_total is None or perdida_por_km is None:
raise ValueError("No se pudieron encontrar los valores de pérdida total o pérdida por kilómetro en el archivo.")
# Mostrar la información extraída
print("Pérdida Total: {} dB".format(perdida_total))
print("Pérdida por Kilómetro: {} dB/km".format(perdida_por_km))
# Graficar los resultados
plt.figure(figsize=(8, 6))
plt.bar(["Pérdida Total", "Pérdida por Kilómetro"], [perdida_total, perdida_por_km])
plt.ylabel("dB / dB/km")
plt.title("Resultados de la Prueba de Fibra Óptica")
plt.show()
except Exception as e:
print("Error:", e)
# Cargar el archivo SOR utilizando el widget de Colab
archivos_cargados = files.upload()
# Obtener el contenido del archivo cargado
nombre_archivo = next(iter(archivos_cargados))
contenido_archivo = archivos_cargados[nombre_archivo]
# Llamar a la función para procesar los datos del archivo y graficarlos
graficar_datos_otdr(contenido_archivo)
Agradezco enormemente su tiempo y espero poder aprender y superar este obstáculo con la ayuda y orientación de esta comunidad de programadores de Python.
¡Muchas gracias de antemano por su apoyo!
Saludos cordiales.