Se integran los archivos de Rssi y coordenadas en un solo archivo. Este proceso permite procesar Rssi vs distancias para generar el modelo de la ecuación que los describe.
Verificar los parámetros con los que se integran las tablas: nombres de archivos de entrada y salida, medidas.
Ejemplo de resultados a obtener:
registros: 57 indices: Index(['grupo', 'tipo', 'LOS_d1', 'LOS_d2', 'LOS_d3', 'rssi_rx_d1','rssi_rx_d2', 'rssi_rx_d3', 'rssi_tx_d1', 'rssi_tx_d2', 'rssi_tx_d3', 'c_norte', 'c_este', 'altitud', 'dist_d1', 'dist_d2', 'dist_d3','longitud', 'latitud'], dtype='object') Ejemplo de tabla: grupo tipo LOS_d1 LOS_d2 LOS_d3 rssi_rx_d1 ... altitud dist_d1 dist_d2 dist_d3 longitud latitud etiqueta ... FIEC101 FIEC punto 0 1 1 -123.096386 ... 62.213 423.450 78.492 351.924 -79.967500 -2.145463 FIEC102 FIEC punto 1 1 1 -120.094891 ... 82.308 451.423 67.435 357.220 -79.967762 -2.145404 FIEC103 FIEC punto 1 1 1 -116.923469 ... 77.421 449.414 60.141 364.706 -79.967697 -2.145337 FIEC104 FIEC punto 0 1 0 -116.046296 ... 87.352 399.437 97.611 343.328 -79.967307 -2.145563 FIEC105 FIEC punto 1 1 0 -119.713235 ... 82.708 382.250 117.785 326.571 -79.967231 -2.145730 [5 rows x 19 columns] >>>
Archivo resumen de medida: resumen_rssimean01.txt
archivo de resumen de coordenadas y distancias : resumen_ubica01.txt
archivo de resultado integrado: resumen_RssiUbica01
Algoritmo en Python
La tabla general se constuye concatenando los componentes por colunnas.
La primera parte se conforma con los datos del punto de las columnas de grupos, tipos y LOS que provienen del archivo de ubicaciones de los puntos.
La segunda parte corresponde a la tabla de medidas de Rssi, y finalmente se complementa la tercera parte con la información de las coordenadas.
La tabla resultante se almacena en un archivo de resumen.
# Rssi y SNR LoRa punto a punto # LoRa-Multipunto, integra Ubicacion y Rssi # Girni 2020-10-07 propuesta: edelros@espol.edu.ec import numpy as np import pandas as pd # INGRESO # revisar parametros al inicio medida = 'rssi' descriptor = 'mean' # archivos de entrada arch_rsmpuntos = 'resumen_rssimean02.txt' arch_rsmgps = 'resumen_ubica01.txt' # archivos de salida arch_rssiubica = 'resumen_'+medida+'Ubica02.txt' # referencias baliza = {'d1':'gtwRECT', 'd2':'gtwFIEC', 'd3':'gtwFCNM'} # PROCEDIMIENTO # lectura de ubicacion ubica = pd.read_csv(arch_rsmgps, index_col='etiqueta') ubica = pd.DataFrame(ubica) n=len(ubica) # lectura de medida rsm_medida = pd.read_csv(arch_rsmpuntos) rsm_medida = pd.DataFrame(rsm_medida) rsm_medida.rename(columns={'Unnamed: 0':'etiqueta'}, inplace=True) rsm_medida['etiqueta'] = rsm_medida.etiqueta.astype(str) rsm_medida = rsm_medida.set_index('etiqueta') m=len(rsm_medida) # tabla concatenada por columnas Y UNION # para mantener referencias de coordenadas de vertices vertices = list(baliza.keys()) ultimovertice = vertices[-1] etiquetas = list(ubica.keys()) donde = etiquetas.index('LOS_'+ultimovertice) # inicia con grupos, tipos y LOS tabla = ubica[etiquetas[:donde+1]] # continua con los datos de medida tabla = pd.concat([tabla,rsm_medida], axis=1,join='outer') # completa con lo que resta de ubica tabla = pd.concat([tabla, ubica[etiquetas[donde+1:]]], axis=1,join='outer') tabla = tabla.rename_axis('etiqueta') k = len(tabla) # SALIDA print('registros: ',k) print('indices: ',tabla.keys()) print('\n Ejemplo de tabla: ') print(tabla.head()) tabla.to_csv(arch_rssiubica)