RouteSmart - Procesamiento predial de rutas de lectura/reparto
Rutas de lectura de medidores y reparto en SigGas
Aspectos principales
- La “Zonificación” (El qué y el dónde)
- El “Ruteo” o recorrido (El cómo)
- Implementación actual en SigGas
En términos corporativos, definir una ruta de lectura no es solo trazar una línea en un mapa, es un proceso de ingeniería logística que busca minimizar el costo por lectura. Se define bajo los siguientes pilares.
1. La “Zonificación” (El qué y el dónde)
Antes de crear la ruta, la empresa divide la ciudad en Sectores.
Se agrupan predios que están cerca geográficamente.
Se asignan a un Ciclo de facturación. Por ejemplo, el “Ciclo 05” se lee siempre los días 5 de cada mes. Esto permite que la empresa reciba dinero de forma constante durante todo el mes y no todo de golpe al final.
2. El “Ruteo” o recorrido (El cómo)
Aquí es donde se define el orden de recorrido de los predios (la secuencia). Para definirlo, se puede usar un proceso manual de trazado de la ruta o un proceso automático optimizado de recorrido de los ejes viales de la zona, haciendo uso de herramientas geográficas sofisticadas.
Hoy día existen algoritmos sofisticados implementados en herramientas geográficas, que pueden resolver el “problema del cartero chino”, para generar grafos eulerianos, en los cuales se optimiza el recorrido de segmentos viales, en vez del recorrido de puntos de medición.
Estos algoritmos complejos se encuentran disponibles en herramientas especializadas y de costo considerable (miles de dólares), lo que hace necesario justificar la inversión contra los beneficios de su adquisición.
Implementación actual en SigGas
Desde el inicio del producto SigGas se implementaron herramientas geográficas que permiten la definición manual de cada ruta, de modo que se pueden realizar los trazados en un ambiente geográfico (mapa) y luego se hace uso del sistema para determinar el orden de recorrido de cada predio (unidad predial) intersectado para ser entregado el reporte al sistema de facturación.
Este proceso es conocido por los usuarios de SigGas y está siendo usado desde sus inicios.
Descripción
Interfaz gráfica donde se visualiza una ruta y los predios resultantes seleccionados como resultado de la intersección espacial.
Aspectos principales
- Selección de predios
- Ordenamiento por placas
- Generación de reporte ordenado
- Tiempos de procesamiento actual
Selección de predios
Una vez se cuenta con la ruta trazada manualmente, el siguiente paso es la selección automática de los predios (polígonos) cubiertos por esa ruta (línea) desde el inicio hasta el fin.
Para este proceso se hace uso de funciones espaciales provistas por ESRI (superposición, intersección de línea con polígonos y el algoritmo de diferencia simétrica).
Estos procesos implementan algoritmos complejos y pueden requerir muchísimo tiempo de procesamiento cuando se involucran miles de predios en el recorrido.
Ordenamiento por placas
La lista de predios intersectados por la ruta definida debe ser ordenada de acuerdo a un consecutivo generado, con el fin de pasar el reporte respectivo al sistema comercial.
Generación de reporte ordenado
La lista ordenada de predios a recorrer debe ser generada en forma de reporte de recorrido, para pasarla al sistema comercial de facturación.
Tiempos de procesamiento
Si denominamos T al tiempo total necesario para generar la información predial del recorrido para el sistema comercial, podríamos estimar los siguientes tiempos aproximados parciales (con respecto a T) de cada etapa:
- Trazado manual de ruta: 10%
- Selección espacial de predios: 70%
- Ordenamiento de predios: 10%
- Generación de reporte de unidades prediales para sistema comercial: 10%
Los anterior nos indica que para lograr una disminución efectiva del tiempo de procesamiento se debe lograr la disminución del tiempo empleado para la selección espacial de los predios.
RouteSmart – Selección espacial de predios de rutas
Aspectos principales
- Arquitectura
- Innovaciones y diferenciadores técnicos
- Ventajas y mejoras clave
Buscando superar las limitaciones actuales, se ha desarrollado un nuevo producto de software, independiente de SigGas, que utiliza herramientas geográficas modernas de procesamiento espacial y algoritmos de punta de computación gráfica.
Arquitectura
El sistema implementa una arquitectura de 3 capas:
- Capa de datos (ArcGis Enterprise): Servicios de mapas y entidades
- Capa de servicios (ASP .NET REST API): Lógica del negocio
- Capa de procesamiento (WPF .NET 8): Cliente pesado de 64 bits optimizado por medio de tareas paralelas para grandes volúmenes de datos.
Innovaciones y diferenciadores técnicos
Se implementan los siguientes componentes novedosos:
- Motor de topología avanzada: Librerías y algoritmos propios que corrigen geometría de líneas (rutas) y polígonos (predios) antes del procesamiento de rutas
- Procesamiento asíncrono de alto rendimiento: Uso de múltiples hilos que reduce los tiempos de respuesta en hasta un 80% del tiempo actual
- Validación de integridad espacial basado en reglas.
- Sincronización bidireccional: Los resultados se devuelven a la BD transaccional (vía APIs) y a los servicios ArcGis.
- Pipeline de Procesamiento Geoespacial (Spatial Proccessing Engine) que transforma el flujo de operaciones espaciales en una secuencia de pasos modulares
Ventajas y mejoras clave comparados con el SigGas actual
- Modularidad y mantenibilidad.
- Rendimiento y escalabilidad: Uso de paralelismo asíncrono para aprovechar múltiples núcleos de procesador y optimizar el uso de CPU para procesamiento espacial a gran escala.
- Gestión de recursos: Uso de de .NET con C# 12.0+ para el manejo eficiente de múltiples hilos de procesamiento, óptimo para grandes volúmenes de información.
Modularización
Aspectos principales
- Problema actual
Validaciones - Geoprocesos espaciales pesados
- Algoritmos modernos optimizados
- Rendimiento Y Velocidad
- Separación de Procesos
Problema actual: Validaciones
Se han empaquetado la totalidad de las validaciones espaciales dentro de un Spatial Proccessing Engine (SPE) donde se ejecutan de forma optimizada, bien sea por procesamiento paralelo como por optimización de los algoritmos.
De acá se pueden detectar las siguientes inconsistencias:
- Predios duplicados
- Predios multi polígonos
- Errores topológicos (overlaps, gaps) corregidos mediante una herramienta de limpieza, dejando los datos de entrada listos para utilizar.
- Predios tocados más de una vez por la ruta o predios sin tocar.
- Línea de ruta se cruza con ella misma.
- Ruta Multi Línea
- Eliminación de la restricción de comienzo y fin dentro de predios.
Se manejan por separado las diferentes validaciones del negocio particular, definidas como accesos vía REST/API personalizados.
Geoprocesos espaciales pesados
En la actualidad el procesamiento de la ruta se hace mediante la ejecución de diferentes geoprocesos nativos de ArcGIS. Esto está produciendo altos tiempos de procesamiento.
Se moderniza esto mediante la utilización de un Engine nativo de procesamiento 64Bits, desarrollado para optimizar rendimiento y velocidad
Rendimiento
Se eliminan los accesos directos a la base de datos y se cambian por accesos a Feature Services y generación en memoria de las fuentes.
Separación de Procesos
En la actualidad el proceso de ruta es un proceso secuencial que debe ejecutarse completo para mostrar resultados.
Nuevos Procesos implementados
Análisis geométrico avanzado donde se garantiza la calidad de los datos de entrada
Procesamiento de la ruta optimizado para realizar la tarea dada, sin necesidad de validar utilizando nuevas técnicas de análisis y referenciación lineal (Linear Referencing), reduciendo dramáticamente los tiempos.
Descripción
Interfaz de RouteSmart para apoyo a la selección ordenada de predios de lectura y facturación
Optimización del rendimiento
Aspectos principales
- Problema actual:
Reprocesamiento innecesario - Solución propuesta
Caché de resultados con detección de cambios
Adicional a las mejoras de rendimiento logradas con el uso de algoritmos modernos y tecnología de procesamiento paralelo, se mejora tambien los tiempos de re procesamiento (repaso) mensual de las rutas, detectando cambios y garantizando que solo se ejecuten nuevamente las rutas cuando efectivamente se detecte cambio de sus datos de origen (predios)
Problema actual: Reprocesamiento innecesario
Actualmente, el reproceso de rutas (repaso) se ejecuta cada mes haciendo uso de datos de Predio, Ruta y Sector Operativo. Se ha identificado que estos datos no cambian constantemente. Ejecutar el proceso completo cada vez, aunque los datos de origen sean idénticos, consume recursos computacionales y tiempo de procesamiento de forma redundante sobre todo conociendo que la información que ha cambiado es solo la de usuarios.
Solución implementada: Caché de resultados con detección de cambios
Para mitigar el re procesamiento se implementa un mecanismo de caching de resultados. Este enfoque implica:
- Detección de Cambios en Datos de Origen (FingerPrinting)
Se implementa un sistema que determina de forma eficiente si los datos geográficos de las tablas de origen (Predio, Ruta, Sector Operativo) han cambiado desde la última ejecución exitosa del proceso. - Almacenamiento Condicional de Resultados.
Si los datos de origen no han cambiado, el pipeline no se ejecuta; en su lugar, se utilizan los resultados de la última ejecución válida, los cuales se guardan localmente en un archivo SQLite/Spatialite. Si los datos han cambiado, el pipeline se ejecuta y sus nuevos resultados se almacenan, invalidando el caché anterior. Esta sola mejora disminuye enormemente las necesidades de procesamiento mensual.