Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Leer archivos .sor OTDR
#1
¡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 
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.
Responder
#2
Hola, bienvenido/a.

¿Cuál es exactamente el problema? No conozco el formato, pero una búsqueda rápida me llevó a pyOTDR, que parece ser lo que necesitás para leer un archivo .sor.

Saludos
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)