RutaSegura

Documentación Técnica — Metodología de Cálculo, Fuentes de Datos, Limitaciones y Marco Legal

SECRETARÍA DE TRANSPORTE — PROVINCIA DE CATAMARCA

ℹ️ Acerca de RutaSegura

Contexto institucional, propósito de la herramienta y resumen de capacidades.

¿Qué es RutaSegura?

RutaSegura es una herramienta de análisis de seguridad vial y navegación asistida desarrollada por la Secretaría de Transporte del Gobierno de la Provincia de Catamarca, República Argentina.

Su propósito es asistir a conductores particulares, transportistas y operadores logísticos en la planificación de viajes seguros por rutas que presentan desafíos geográficos significativos: caminos de montaña con pendientes pronunciadas, curvas cerradas, superficies de ripio y tierra, altitudes extremas y condiciones climáticas adversas.

¿Qué problema resuelve?

En la provincia de Catamarca y el noroeste argentino, gran parte del transporte de cargas mineras, productivas y de pasajeros transita por rutas de montaña, caminos de ripio y huellas donde las condiciones viales cambian drásticamente en pocos kilómetros. La falta de información anticipada sobre las condiciones del camino —pendientes, estado de la superficie, clima, curvas— es un factor determinante en la siniestralidad vial de la región.

RutaSegura aborda este problema combinando datos abiertos (OpenStreetMap, Open-Meteo) con infraestructura propia (OSRM y OpenTopoData self-hosted) y modelos de ingeniería vial (normas DNV, AASHTO, Ley 24.449) para producir un análisis integral de riesgo por tramo, antes y durante el viaje.

¿Qué hace la herramienta?
  • Analiza la ruta completa — Evalúa cada 500 metros el perfil altimétrico, las curvas, la superficie, la proximidad a cursos de agua, la altitud y el pronóstico meteorológico.
  • Calcula un puntaje de peligrosidad (0-100) por segmento, integrando 9 factores de riesgo ponderados.
  • Genera señalización recomendada según normas DNV para cada punto crítico detectado (curva peligrosa, pendiente, zona inundable, riesgo de vuelco, etc.).
  • Adapta el análisis al tipo de vehículo — Auto, camioneta, camión o bitrén, con parámetros de frenado, vuelco y velocidad diferenciados.
  • Ofrece navegación en tiempo real con alertas de voz anticipadas, semáforo de riesgo, detección de desvío y recalculación automática.
  • Funciona offline como aplicación instalable (PWA), manteniendo las alertas y datos de seguridad aún sin conexión.
  • Permite reportar peligros en tiempo real (accidentes, derrumbes, baches, animales sueltos) que otros conductores pueden ver tras moderación.
Desarrollo y contexto institucional

Organismo: Secretaría de Transporte — Gobierno de la Provincia de Catamarca, República Argentina.

Uso previsto: Herramienta de apoyo a la planificación vial, concientización sobre riesgos en rutas provinciales y asistencia al conductor. De uso libre y gratuito.

Fuentes de datos: La herramienta combina fuentes de datos abiertas (OpenStreetMap, Open-Meteo, Nominatim) con servicios alojados en servidor propio (OSRM para ruteo, OpenTopoData para elevación y OSM Data API para datos geográficos — todos desplegados en VPS propio), sin depender de servicios propietarios ni de pago.

Marco normativo: Los cálculos se basan en las Normas de Diseño Geométrico de la Dirección Nacional de Vialidad (DNV), tablas AASHTO, la Ley Nacional de Tránsito N° 24.449 (Art. 51, límites de velocidad) y la normativa CCT 40/89 CNRT (límites de conducción para vehículos pesados).

⚠️ Limitaciones importantes

RutaSegura realiza un análisis teórico y estimativo basado exclusivamente en datos de fuentes abiertas y modelos matemáticos de referencia. Es fundamental que el usuario comprenda sus limitaciones:

  • No reemplaza el relevamiento vial presencial, la evaluación de infraestructura real ni la señalización existente en el terreno.
  • No detecta baches, derrumbes, obras viales ni el estado real de la calzada de forma automática — aunque los conductores pueden reportar peligros en tiempo real (§10.6).
  • No considera tránsito real, volumen vehicular ni condiciones mecánicas del vehículo.
  • Los datos de superficie, elevación y clima provienen de fuentes de terceros cuya precisión y actualización varía por zona.
  • Las velocidades calculadas son estimaciones de ingeniería, no permisos para circular. La señalización real en el terreno siempre prevalece.

Para el detalle completo de limitaciones, ver §12 — Limitaciones y Alcance. Para el marco legal y exclusión de responsabilidad, ver §13 — Marco Legal.

1 Proceso de Análisis ?

El sistema ejecuta una secuencia de etapas para producir el reporte integral de seguridad vial. Cada etapa alimenta a la siguiente, culminando en la navegación asistida en tiempo real.

Secuencia de procesamiento
  1. Cálculo de ruta óptima — OSRM genera la geometría, distancia y duración de referencia. Si el usuario definió puntos intermedios (waypoints), se incluyen como coordenadas intermedias en la solicitud.
  2. Perfil altimétrico — OpenTopoData (servidor propio, Copernicus GLO-30) retorna la elevación en hasta 300 puntos muestreados uniformemente por distancia (turf.along), con respaldo automático en Open-Meteo.
  3. Análisis de curvas y geometría DNV — Detección de curvas por radio circunscrito, clasificación de terreno y comparación con normas DNV.
  4. Pronóstico meteorológico — Open-Meteo Forecast consulta 3 puntos de la ruta (origen, punto medio y destino) y aplica una combinación de peor escenario: se toma el código WMO de mayor riesgo, la temperatura mínima, el viento máximo y la mayor probabilidad de precipitación.
  5. Datos geográficos OSM — El sistema consulta la API de datos OSM en servidor propio (puerto 5003, misma infraestructura VPS) que sirve cursos de agua (waterway), localidades (place), escuelas (amenity=school) y vías (highway con geometría completa) dentro del área delimitante de la ruta. Si el servidor VPS no responde, cae automáticamente a Overpass API como respaldo.
  6. Derivación de superficie por tramo — A partir de las vías obtenidas en la consulta anterior, la función deriveSurfaceData() muestrea la ruta cada 1 km y asigna a cada punto la vía OSM más cercana (prioridad: superficie explícita > rango vial > distancia). Se extraen las etiquetas surface, highway, tracktype, maxspeed y name/ref.
  7. Análisis integral de seguridad — Integra todos los datos anteriores para calcular un puntaje de peligrosidad por segmento de 500 m.
  8. Renderización — Genera la visualización cartográfica interactiva con mapa de calor de riesgo, marcadores y reporte detallado.

2 Fuentes de Datos

La aplicación consume exclusivamente fuentes de datos abiertas y gratuitas. A continuación, el detalle de cada una.

OSRM — Open Source Routing Machine servidor propio

VPS propio — respaldo: router.project-osrm.org

Motor de ruteo vehicular de código abierto basado en datos de OpenStreetMap, desplegado en servidor propio con datos de Argentina actualizados (Geofabrik). Provee la geometría de la ruta (coordenadas GeoJSON), la distancia total en metros, la duración estimada en segundos y los pasos de navegación (steps). Si el servidor propio no responde, el sistema cae automáticamente al demo público.

La ruta devuelta corresponde al camino más rápido por la red vial disponible en OSM, no necesariamente el más corto ni el más seguro.

OpenTopoData — API de Elevación servidor propio

VPS propio — respaldo: api.open-meteo.com/v1/elevation

Retorna la elevación en metros sobre el nivel del mar para cada punto de la ruta. Utiliza el modelo digital de elevación Copernicus GLO-30 (ESA/Copernicus) con resolución de 30 metros, desplegado en servidor propio. Los puntos se muestrean uniformemente por distancia (cada ~200 m como mínimo) mediante turf.along(), garantizando cobertura homogénea independientemente de la densidad de puntos de la ruta. Se procesan en lotes de 100. Si el servidor propio no responde, cae automáticamente a Open-Meteo.

Open-Meteo Weather Forecast API

api.open-meteo.com/v1/forecast

Pronóstico meteorológico horario para los próximos 3 días. Se consultan 3 puntos de la ruta (origen, punto medio y destino) y se aplica una combinación de peor escenario: se selecciona el código WMO de mayor riesgo, la temperatura mínima, el viento máximo y la mayor probabilidad de precipitación. Variables consultadas: temperatura (°C), probabilidad de precipitación (%), precipitación acumulada (mm), velocidad del viento (km/h), código WMO del tiempo, amanecer y atardecer.

Se selecciona la hora más cercana a la hora de salida indicada por el usuario. Los datos de amanecer/atardecer se obtienen del punto medio para la evaluación de nocturnidad por segmento (§6.8).

API de Datos OSM — OpenStreetMap servidor propio

VPS propio (puerto 5003) — respaldo: Overpass API (overpass-api.de + servidores espejo)

Base de datos SQLite con índices espaciales R-Tree, construida a partir de argentina-latest.osm.pbf (Geofabrik), actualizada semanalmente mediante tarea programada. Tiempo de respuesta típico: ~12 ms (vs. 5-30 segundos de Overpass). Si el servidor VPS no responde (límite de espera: 8 s), el sistema cae automáticamente a Overpass API con conmutación entre 3 servidores.

La base de datos contiene 17 tipos de datos extraídos de Argentina:

  • Cursos de agua (waterway) — Ríos, arroyos, canales. Para detección de zonas inundables y riesgo de hielo.
  • Localidades (place~city|town|village) — Para detección de zonas urbanas.
  • Escuelas (amenity=school) — Para detección de zonas escolares.
  • Vías (highway, con geometría completa) — 1.38M segmentos con etiquetas surface, tracktype, maxspeed, tunnel, bridge y name/ref. Se usan para derivar la superficie por tramo.
  • POIs de seguridad — Estaciones de servicio, cruces ferroviarios, vados/fords, túneles, puentes, peajes, áreas de descanso, hospitales, servicios de emergencia, cámaras de velocidad, barreras/tranqueras, pasos de montaña, puntos turísticos (refugios, campings) y fuentes de agua potable.

Proceso de actualización: osmium descarga y filtra el PBF → exporta a GeoJSON/GeoJSONSeq → build-db.js construye la SQLite con R-Tree → fix-highways.js importa las vías en carga progresiva (archivo demasiado grande para carga en memoria). El servidor Express (server.js) sirve los servicios /osm (datos de ruta) y /pois (puntos de interés por categoría).

Nominatim — Geocodificación

nominatim.openstreetmap.org

Servicio de geocodificación directa (texto → coordenadas) e inversa (coordenadas → nombre) basado en OpenStreetMap. Se usa para la búsqueda de origen/destino y para obtener el nombre de las localidades al hacer clic en el mapa.

3 Clasificación de Terreno ?

El perfil altimétrico se analiza para clasificar el terreno según las normas de diseño geométrico de la Dirección Nacional de Vialidad (DNV).

3.1 Clasificación global

Se calcula la pendiente promedio absoluta entre puntos consecutivos del perfil:

pendiente(%) = |Δh| / Δx × 100 donde Δh = diferencia de elevación (m) y Δx = distancia horizontal (m)
Pendiente promedioClasificación
> 4%Montañoso
2% – 4%Ondulado
< 2%Llano

Excepciones por altitud/desnivel acumulado: la pendiente promedio punto a punto no alcanza a capturar una subida larga pero pareja — un camino que asciende sin oscilar puede promediar una pendiente baja y clasificar como "Ondulado" pese a llegar a gran altura. Por eso, cualquiera de estos dos criterios fuerza como mínimo Montañoso, sin importar cuánto dé el promedio de pendiente (nunca bajan la clasificación, solo pueden subirla):

CriterioUmbral
Altitud máxima alcanzada en la ruta≥ 3.000 msnm
Desnivel acumulado (ascenso total / distancia total)≥ 25 m/km

Ejemplo real: una ruta que asciende de 940 a 4.730 msnm en 140,8 km tiene una pendiente promedio de apenas ~2,7% (rango "Ondulado"), pero un desnivel acumulado de ~27 m/km y una altitud máxima muy por encima de 3.000 msnm — ambos criterios la reclasifican como Montañoso.

3.2 Clasificación local (ventana deslizante)

A partir de la versión actual, cada segmento de análisis recibe una clasificación de terreno local calculada con una ventana deslizante de 5 km centrada en el kilómetro del segmento. Esto permite que una ruta que comienza en montaña y termina en llanura tenga clasificaciones diferenciadas por tramo.

3.3 Normas DNV — Categorías viales

Las normas de diseño geométrico de la DNV clasifican las rutas argentinas en cuatro categorías según su Tránsito Medio Diario Anual (TMDA):

CategoríaTipoTMDAAncho calzadaAncho banquina
CAT-IAutopista> 3.0007,30 m3,00 m
CAT-IIRuta Nacional1.500 – 3.0007,30 m2,50 m
CAT-IIIRuta Provincial500 – 1.5006,70 m1,50 m
CAT-IVCamino Rural< 5006,00 m1,00 m

3.4 Velocidad de diseño (DNV)

La velocidad de diseño se determina cruzando la categoría vial con la clasificación de terreno:

CategoríaLlanoOnduladoMontañoso
CAT-I130 km/h110 km/h80 km/h
CAT-II110 km/h90 km/h60 km/h
CAT-III100 km/h80 km/h50 km/h
CAT-IV80 km/h60 km/h40 km/h

Referencia Normas de Diseño Geométrico de Carreteras — Dirección Nacional de Vialidad, República Argentina.

4 Análisis de Curvas ?

El sistema detecta curvas en la geometría de la ruta y evalúa su cumplimiento con las normas de radio mínimo, peralte y sobreancho. Utiliza un algoritmo de muestreo basado en distancia real con resolución adaptativa por terreno, detección de dirección de giro y detección automática de zonas de serpentina.

4.1 Muestreo geométrico — nodos reales OSRM

El algoritmo utiliza directamente los nodos reales de la geometría OSRM/OSM para calcular la curvatura, sin interpolar puntos artificiales a distancias fijas. Para cada tripleta de nodos consecutivos (P₁, P₂, P₃) de la polyline OSRM, se calcula el radio del círculo circunscrito:

P₁ = routeCoords[i−1],   P₂ = routeCoords[i],   P₃ = routeCoords[i+1] Nodos reales de la geometría OSRM (overview=full), no puntos interpolados

¿Por qué nodos reales? OSRM con overview=full devuelve la geometría completa de OpenStreetMap, donde los mapeadores colocan nodos densos en curvas (~10-20 m) y nodos espaciados en rectas (~50-200 m). Esta densidad variable es naturalmente adaptativa: la resolución es máxima exactamente donde más importa (en las curvas) sin desperdiciar cómputo en rectas. Pruebas en la Cuesta del Portezuelo (Catamarca) demostraron que este enfoque detecta curvas con radios hasta 3 veces menores que la interpolación fija anterior, mejorando significativamente la precisión del análisis de seguridad.

4.2 Filtros de estabilidad numérica

Para evitar artefactos numéricos causados por nodos OSRM muy cercanos o con espaciado irregular, el algoritmo aplica tres filtros:

FiltroValorPropósito
Distancia mínima entre nodos8 mNodos separados por menos de 8 m se fusionan para evitar triángulos microscópicos donde el ruido de coordenadas domina
Ratio de asimetría máximo5:1Tripletas donde un lado es más de 5 veces más largo que el otro producen triángulos muy alargados con radio numéricamente inestable
Radio mínimo plausible8 mNinguna ruta vial tiene R < 8 m (el mínimo DNV para rotondas es ~10 m). Valores menores se clampean a 8 m

4.3 Cálculo del radio — Círculo circunscrito

Para cada tripleta (P₁, P₂, P₃), se calcula el radio del círculo circunscrito (el único círculo que pasa por los tres puntos). El radio de este círculo refleja directamente la curvatura del trazado en ese punto:

s = (a + b + c) / 2 semiperímetro del triángulo formado por los 3 puntos
A = √(s · (s−a) · (s−b) · (s−c)) área del triángulo por fórmula de Herón
R = (a · b · c) / (4 · A) radio del circunradio, donde a, b, c son las distancias entre P₁↔P₂, P₂↔P₃ y P₁↔P₃

Interpretación geométrica: Si los 3 puntos están casi alineados (recta), el triángulo es muy chato, su área tiende a cero y el radio tiende a infinito. Si la ruta curva bruscamente, el triángulo tiene más superficie y el radio resultante es pequeño. El sistema acota el radio a un máximo de 50.000 m para evitar valores extremos en rectas.

4.4 Agrupación de curvas

Los puntos individuales se agrupan en segmentos de curva según este criterio:

Cada curva detectada recibe además los cálculos de peralte (§4.6), sobreancho (§4.7), y la evaluación de conformidad con el radio mínimo DNV (§4.5).

4.5 Radio mínimo (DNV)

Cada velocidad de diseño tiene un radio mínimo de curvatura asociado. Curvas con radio inferior al mínimo se marcan como no conformes:

Vel. diseño (km/h)1301101009080605040
R mín. (m)7004503502651951158050

4.6 Peralte (superelevación)

El peralte teórico necesario se calcula según la fórmula normalizada:

e = V² / (127 · R) − f(V) donde V = velocidad de diseño (km/h), R = radio (m), f(V) = coeficiente de fricción lateral variable por velocidad (AASHTO Table 3-6) El resultado se acota entre e_mín = 0.02 y e_máx = 0.08 (8%)

Limitación Este valor es el peralte que debería tener la curva según normas de diseño, no el peralte que efectivamente tiene. No existe fuente de datos abierta que provea el peralte real de cada curva. Ni OSRM, ni OpenStreetMap, ni los modelos digitales de elevación (resolución 30 m) permiten medir la inclinación transversal de una calzada de 7 m de ancho.

4.7 Sobreancho en curva

El sobreancho necesario para vehículos largos en curvas cerradas:

Δa = L² / (2 · R) donde L = longitud del vehículo de diseño (13 m) y R = radio de la curva (m). Se aplica solo para R < 500 m.

4.8 Velocidad máxima segura en curva

V = √(127 · R · (e + f(V))) Ecuación iterativa: f depende de V y V depende de f. Se resuelve por iteración (converge en 3-4 ciclos). f(V) según AASHTO: 0.28 a 30 km/h → 0.08 a 130 km/h (interpolación lineal) El sistema asume un peralte fijo de e = 0.06 (6%) para todas las curvas (ver nota en §4.6).

Supuesto Al no disponer del peralte real de cada curva, el sistema asume e = 0.06 (6%), un valor representativo de rutas nacionales bien diseñadas. Esto introduce un margen de error de ±8 km/h en la velocidad segura calculada: en caminos rurales sin peralte (e ≈ 0.02) la velocidad podría estar sobreestimada en hasta 8 km/h, mientras que en autopistas con peralte máximo (e = 0.08) podría estar subestimada en ~3 km/h. Este margen se considera aceptable para una herramienta de planificación, pero el usuario debe tenerlo presente.

V (km/h)3040506080100110130
f lateral0.280.230.190.170.140.120.100.08

AASHTO A Policy on Geometric Design of Highways and Streets — Table 3-6: Side Friction Factors.

4.10 Detección de curva y contracurva

El sistema detecta zonas de curva y contracurva (zigzag / switchbacks) donde la dirección de giro alterna repetidamente (izquierda → derecha → izquierda). Estas zonas son más peligrosas que curvas individuales por el cambio constante de dirección y la fatiga que produce.

Dirección de giro (producto vectorial)

signo = (P₂−P₁) × (P₃−P₂) = v1x·v2y − v1y·v2x signo > 0 → giro a izquierda (+1), signo < 0 → giro a derecha (−1)

Algoritmo de detección

  1. Para cada curva agrupada (§4.4), se calcula el signo dominante (suma de signos de los puntos internos).
  2. Se buscan secuencias de curvas consecutivas con dirección alternada (L→R→L o R→L→R) dentro de una ventana de 2 km.
  3. ≥3 alternaciones consecutivas → zona de curva y contracurva.

Detección de dirección (ascendente / descendente)

Para determinar si la zona de curva y contracurva es ascendente o descendente, el sistema calcula la pendiente promedio de todos los segmentos dentro de la zona (desde su km de inicio hasta su km de fin), en lugar de usar la pendiente de un solo segmento. Esto evita que una curva momentáneamente plana dentro de un descenso general clasifique la zona como neutral.

gradeProm = Σ grade(segmentos en zona) / N gradeProm < −2% → descendente, gradeProm > 2% → ascendente, |gradeProm| ≤ 2% → sinuoso

Impacto en la seguridad

EfectoValor
Penalización de puntaje+15 puntos por segmento en zona de curva y contracurva
Reducción de velocidadvSafe × 0.80 (−20%)
Señal generada🔀 P.4 — CURVA Y CONTRACURVA ASCENDENTE / DESCENDENTE
Alerta de voz (descenso)«Zona de curva y contracurva en descenso. Reduzca la velocidad, use freno motor y extreme la precaución.»
Alerta de voz (ascenso)«Zona de curva y contracurva en ascenso. Use marcha corta y extreme la precaución.»
Alerta de voz (sinuoso)«Camino sinuoso. Zona de curva y contracurva. Reduzca la velocidad y extreme la precaución.»

4.9 Distancias de visibilidad (DNV)

Vel. diseño1301101009080605040
D. detención (m)270200170145120755540
D. sobrepaso (m)800670600530480350300250

5 Análisis de Superficie por Tramo ?

Cada segmento de la ruta se clasifica según el tipo de superficie real obtenido de OpenStreetMap, ajustando velocidades y riesgo.

5.1 Fuentes de clasificación

La clasificación se determina en este orden de prioridad:

  1. Etiqueta surface (si existe en OSM): asphalt, gravel, unpaved, dirt, etc.
  2. Etiqueta tracktype (para highway=track): grade1 a grade5.
  3. Tipo de vía highway: inferencia por categoría (motorway → pavimentada, track → tierra/ripio).

5.2 Categorías de superficie

CategoríaEjemplos OSMFactor de velocidadPenalización de riesgo
Asfaltoasphalt, concrete, paved, paving_stones1.00 (100%)0 puntos
Ripiogravel, compacted, fine_gravel, grade1, grade20.55 – 0.65 (55-65%)12 – 16 puntos
Tierraunpaved, dirt, earth, ground, grade30.40 – 0.45 (40-45%)22 – 25 puntos
Huellagrade4, grade5, path0.25 – 0.30 (25-30%)35 – 40 puntos

El factor de velocidad reduce la velocidad segura calculada para el segmento. La penalización de riesgo se suma directamente al puntaje de peligrosidad del segmento (sobre 100).

5.3 Transparencia de datos: confirmado vs. inferido

Dado que muchos caminos en Argentina carecen de la etiqueta surface en OSM, el sistema aplica inferencias basadas en el tipo de vía (highway). Para que el usuario pueda evaluar la confiabilidad del dato, el inspector de segmentos (§10.7) muestra un indicador visual junto a cada dato de superficie:

IndicadorSignificadoEjemplo
ConfirmadoLa etiqueta surface existe explícitamente en OSMsurface=asphalt → Asfalto ✅
⚠️ InferidoNo hay etiqueta surface; se dedujo del tipo de víahighway=primary sin surface → Ruta pavimentada ⚠️

Esta distinción es fundamental porque una clasificación inferida puede ser incorrecta (por ejemplo, una ruta provincial clasificada como highway=primary pero que en realidad es de ripio). El sistema aplica una penalización de incertidumbre adicional (+5 puntos de riesgo) cuando la superficie no está confirmada.

Los usuarios pueden reportar errores de datos directamente desde la navegación (§10.6), contribuyendo a mejorar la precisión del análisis.

5.4 ¿Por qué analizamos la superficie?

En la provincia de Catamarca y el noroeste argentino, gran parte de los recorridos de transporte de cargas mineras y productivas transitan por caminos de tierra, ripio y huellas de montaña. La diferencia de adherencia, visibilidad (polvo en suspensión), y transitabilidad entre asfalto y tierra es determinante para la seguridad vial. Un camión cargado a 45 tn que circula a 60 km/h sobre ripio suelto tiene una distancia de frenado dramáticamente mayor que sobre asfalto seco.

6 Motor de Seguridad Vial ?

El corazón de RutaSegura: cada 500 metros de ruta se evalúa un puntaje de peligrosidad (0-100) integrando múltiples factores geométricos, ambientales y vehiculares.

6.1 Terreno local por ventana deslizante

Para cada segmento de 500 m, el sistema clasifica el terreno usando una ventana deslizante de 5 km centrada en el punto evaluado (no el promedio global de toda la ruta). Esto permite que un tramo montañoso dentro de una ruta mayoritariamente llana reciba los parámetros de diseño correspondientes a montaña.

terrenoLocal = classifyTerrain(elevationProfile, kmActual, ventana = 5 km) promedio de gradientes > 4% → montañoso, > 2% → ondulado, ≤ 2% → llano La velocidad de diseño y el radio mínimo se determinan según este terreno local

6.2 Distancia de frenado

d = V² / (254 · (f · ksup − g)) donde V = velocidad de diseño (km/h), f = coef. fricción longitudinal base, g = pendiente con signo (decimal) f = 0.35 para autos, 0.28 para camiones/bitrenes ksup = factor de superficie que reduce la fricción según el tipo de calzada
SuperficieksupEfecto en frenado (80 km/h, auto, llano)
🟢 Asfalto seco1.00~72 m (referencia)
🟡 Ripio0.70~102 m (+42%)
🟠 Tierra0.55~131 m (+82%)
🔴 Huella0.45~160 m (+122%)

Se calculan dos valores por segmento: uno para auto (brakeCar) y otro para camión (brakeTruck), siempre a la velocidad de diseño de la categoría vial. El factor de superficie se aplica sobre el coeficiente de fricción base, reflejando la menor adherencia de superficies no pavimentadas.

¿Por qué este cálculo? La distancia de frenado es el factor más crítico para evitar colisiones. En descensos pronunciados sobre ripio suelto con carga pesada, la distancia de frenado puede quintuplicarse respecto a asfalto seco en llano.

6.3 Índice de vuelco

a_lat = v² / R aceleración lateral (m/s²), donde v = velocidad segura (m/s), R = radio (m) a_límite = (g · T) / (2 · H) aceleración lateral límite, parametrizada por tipo de vehículo: Índice = a_lat / a_límite Riesgo de vuelco significativo cuando el índice supera 0.70
VehículoH (CG)T (trocha)a_límiteNotas
🚗 Auto0.55 m1.52 m13.6 m/s²CG bajo, muy estable
🚙 Van / Pickup0.85 m1.65 m9.5 m/s²CG medio
🚚 Camión1.70 m2.05 m5.9 m/s²CG alto, carga elevada
🚛 Bitrén2.20 m2.50 m5.6 m/s²Máximo riesgo de vuelco

Se evalúa solo en curvas con R < 2000 m. Cuando el índice supera 0.70, se genera automáticamente la señal P.40 «Riesgo de vuelco».

¿Por qué parametrizar por vehículo? Los valores fijos anteriores (CG=2.0m, T=2.5m) correspondían a un camión grande. Un auto con esos parámetros nunca mostraba riesgo de vuelco (su CG real es 4× más bajo), mientras un bitrén cargado tiene un CG aún más elevado. La tabla refleja valores típicos de cada categoría vehicular.

6.4 Ancho de barrido (trayectoria de barrido)

R_int = R − W/2
barrido = R − √(R_int² − L²) + W/2 donde R = radio, W = ancho vehículo (2.6 m), L = largo vehículo (13 m) Se aplica solo para R < 500 m. Alerta cuando el barrido supera 4.5 m

¿Por qué este cálculo? En curvas cerradas, la trayectoria del tren trasero de un camión es más cerrada que la del tren delantero (desviación del tren trasero). Esto puede hacer que el vehículo invada el carril contrario o la banquina.

6.5 Velocidad segura por segmento

La velocidad segura se calcula en una cadena de diez pasos, aplicados secuencialmente. El principio rector es siempre prevalecer la restricción más precautoria:

1. Superelevación: e = V²/(127·R) − f(V), acotada entre 0.02 y 0.08 (solo si R < 2000 m) 2. Velocidad geométrica: V = √(127 · R · (e + f(V))), resolución iterativa (f depende de V) Si R ≥ 50 000 m (recta), se usa la velocidad de diseño directamente 3. Factor vehículo: V × factorVehículo (ver §6.6) 4. Factor superficie: V × factorSuperficie (ver §5.2) 5. Techo absoluto en no pavimentado: V = min(V, 60 km/h) si la superficie ≠ asfalto — ver más abajo 6. Límite legal (Ley 24.449): V = min(V, velLegal) — según zona vial (ver §6.5b) 7. Límite señalizado OSM: V = min(V, osmMaxspeed) — si existe en OpenStreetMap (ver §6.5c) 8. Factor hielo: V × 0.70 (hielo significativo) o V × 0.85 (escarcha leve) — ver §6.8 9. Factor clima: V × 0.60 (nieve/tormenta ≥40), V × 0.70 (niebla/lluvia ≥25), V × 0.85 (llovizna ≥10) 10. Factor nocturnidad: V × 0.85 (si es de noche)

Los factores 8-10 se aplican en el post-procesamiento (§6.8), después del cálculo base. Cada uno se multiplica secuencialmente, por lo que en el peor caso (hielo + tormenta + noche) la velocidad puede reducirse hasta un 64% respecto al cálculo base: V × 0.70 × 0.60 × 0.85.

¿Por qué un techo absoluto de 60 km/h en no pavimentado (paso 5)? La fórmula geométrica del paso 2 modela fricción lateral en curva: en un radio grande (casi recto) devuelve velocidades muy altas porque, para esa fórmula, un camino recto no tiene techo propio. En un segmento de asfalto eso es razonable. Pero en ripio, tierra o huella, un tramo recto igual tiene ondulaciones (washboard), material suelto y adherencia impredecible que la geometría no captura — el factor de superficie (paso 4) por sí solo no siempre alcanza a compensarlo cuando la base geométrica es muy alta. Por eso se aplica un techo fijo de 60 km/h para cualquier superficie que no sea asfalto, sin distinguir ripio de tierra o huella entre sí: el dato de superficie de OSM en caminos rurales argentinos frecuentemente no distingue esos subtipos con precisión (o falta directamente), así que en vez de afinar un valor por subtipo se usa un único techo conservador para todo lo no pavimentado. Antes de este ajuste, un tramo de tierra confirmada pero geométricamente recto podía mostrar hasta el límite legal de camino rural (80 km/h) — la ley no diferencia por calidad real de la superficie, y el sistema tampoco lo hacía en ese caso.

6.5b Límites legales (Ley 24.449 Art. 51)

El sistema determina la zona vial de cada segmento cruzando el tipo de vía OSM (highway) con la proximidad a localidades (ver §6.1). Los límites legales se aplican como techo: la velocidad segura nunca puede superar el límite legal de la zona, independientemente de lo que la geometría permita.

Zona vialAutoCamión
Calle urbana40 km/h40 km/h
Avenida urbana60 km/h60 km/h
Camino rural80 km/h80 km/h
Ruta pavimentada110 km/h80 km/h
Semiautopista120 km/h80 km/h
Autopista130 km/h80 km/h

6.5c Velocidad señalizada OSM (maxspeed)

Cuando la vía OSM correspondiente al segmento tiene la etiqueta maxspeed, ese valor se incorpora como restricción adicional. Esto permite capturar señalizaciones reales (carteles de velocidad colocados por Vialidad) que pueden ser más restrictivas que el cálculo geométrico o el límite legal genérico.

Principio de precaución: se usa siempre min(geométrica, legal, osmMaxspeed). Si la señalización real indica 40 km/h pero la geometría permitiría 55 km/h, prevalece el 40.

Cobertura: no todas las vías en OSM tienen maxspeed. En Argentina, la cobertura es parcial. Cuando no existe, el sistema se basa en los pasos anteriores (geometría + Ley 24.449).

6.6 Factores de vehículo

La velocidad segura y la penalización de riesgo se ajustan según el tipo de vehículo:

Tipo de vehículoFactor velocidadPenalización puntajeDescripción
🚗 Auto1.00+0Referencia base
🚐 Camioneta / Van0.90+5CG ligeramente más alto, mayor masa
🚛 Camión0.75+10Frenado más lento, CG alto, off-tracking
🚛 Bitrén / Acoplado0.60+10Articulado, efecto látigo, mayor largo total

La penalización de puntaje se aplica así: si el factor del vehículo es < 0.80, se suman +10 puntos directos; si está entre 0.80 y 0.99, se suman +5 puntos. En vehículos con factor = 1.00 (auto), no se aplica penalización.

6.7 Puntaje de peligrosidad compuesto

Cada segmento de 500 m recibe un puntaje de 0 a 100 compuesto por la suma ponderada de los siguientes factores:

puntaje = pendiente × 0.30 + curvatura × 0.35 + agua × 0.10 + combo × 0.15 + penVehículo + penSuperficie + penAltitud + penAccidentes + penSerpentina El resultado se acota al rango [0, 100]
FactorPesoRangos / Valores
Pendiente descendente× 0.30|grad|>8%→100, >6%→75, >4%→40, >2%→15, ≤2%→0
Pendiente ascendente× 0.30|grad|>8%→50, >6%→35, >4%→20, >2%→5, ≤2%→0
Curvatura× 0.35R < R_mín/2→100, R < R_mín→75, R < R_mín×1.5→40, R < 1200→10, ≥1200→0
Proximidad a agua× 0.10Curso de agua a ≤100 m en camino no pavimentado → factor 25, sino 0
Combo (pend.+curva)directaSi pendienteFactor >30 Y curvaFactor >30 → √(pendienteFactor × curvaFactor) × 0.30 (escalado geométrico), sino 0
Penalización vehículodirecta+10 (factor<0.8) o +5 (factor<1.0) — ver §6.6
Penalización superficiedirecta0 (asfalto) a 40 (huella) — ver §5.2
Penalización altituddirecta≥ 4500 m → +20 (extrema), ≥ 3500 m → +10 (alta), < 3500 m → 0
Penalización accidentesdirectaPOI de accidente a ≤ 500 m: ≥3 POIs → +20 puntos, ≥1 POI → +10 puntos
Penalización serpentinadirectaSegmento dentro de zona de serpentina (§4.10) → +15 puntos
Pen. transición superficiedirectaCambio de superficie confirmado entre segmentos → +15 puntos (solo si al menos uno de los lados tiene superficie OSM confirmada)

¿Por qué la pendiente descendente pesa el doble que la ascendente? En un descenso, la gravedad actúa a favor del movimiento y el conductor depende enteramente de los frenos para controlar la velocidad. En una subida, la gravedad actúa como freno natural, reduciendo el riesgo de pérdida de control. Los valores de la escala descendente (100/75/40/15) duplican los de la ascendente (50/35/20/5) para reflejar esta asimetría de riesgo.

6.8 Post-procesamiento: clima, nocturnidad, hielo y precipitación histórica

Después de que el motor de seguridad calcula los puntajes base de todos los segmentos, se aplica un ajuste de post-procesamiento con cuatro componentes:

a) Clima y nocturnidad (clima uniforme, nocturnidad por segmento):

puntajeFinal = puntajeBase + ⌊riesgoClima × 0.50⌋ + penaNoche riesgoClima = valor del código WMO (0 a 60), según tabla de §7 — uniforme para toda la ruta penaNoche = 15 si el segmento se transitará de noche, 0 si de día — evaluado por segmento

Nocturnidad por segmento: El sistema estima la hora de llegada a cada segmento acumulando el tiempo de tránsito basado en la velocidad segura y la distancia. Se compara con el amanecer/atardecer del día correspondiente (obtenido del pronóstico). Esto permite que un viaje que sale de día pero llega de noche aplique nocturnidad solo a los tramos finales. El porcentaje nocturno total se calcula como horasNocturnas / horasTotales (ponderado por tiempo, no por cantidad de segmentos).

Escalado del clima (×0.50): Una tormenta con granizo (riesgo=55) aporta +27 pts al dangerScore. Una nieve intensa (riesgo=60) aporta +30 pts. Estos valores son suficientes para mover segmentos entre bandas de riesgo.

Nocturnidad (penalización directa): Los +15 pts se aplican íntegros (sin escalado), porque la visibilidad reducida afecta todos los factores de riesgo simultáneamente. Además, la velocidad segura se reduce un 15% (vSafe × 0.85) — ver §6.5.

b) Hielo en calzada (por segmento, requiere frío + fuente de humedad):

El hielo en calzada se forma cuando el agua se congela sobre la superficie. Sin humedad (agua cercana, lluvia o nieve reciente), el frío solo produce escarcha en el parabrisas, no hielo peligroso en el pavimento.

TemperaturaFuente humedadPenalidadMarcadorMotivo
≤ 0°CAgua ≤100 m (no pavimentado)+25🧊Hielo negro muy probable en badenes
≤ 0°CLluvia/nieve reciente+15🧊Humedad residual congelada
1°C – 3°CAgua ≤100 m (no pavimentado)+10🧊Escarcha posible cerca de agua
1°C – 3°CLluvia/nieve reciente+5Riesgo menor, sin marcador visual
CualquieraSin humedad0Frío seco = sin hielo en calzada
Nieve reciente (72h)+10 adicional🧊Hielo/nieve residual (se suma al anterior)

Marcador visual (🧊): Para evitar alarma excesiva, el ícono de hielo en el mapa solo aparece cuando el riesgo es significativo:

A 1-3°C seco sin nevadas, se aplica la penalización numérica (+5) y una reducción de velocidad del 15%, pero sin marcador visual para no saturar la ruta con íconos.

c) Precipitación histórica (72h) y barro

El sistema consulta las últimas 72 horas de precipitación y nevada a través de la API de Open-Meteo (past_days=3). Esto permite evaluar condiciones residuales:

Condición recienteTemp. actualSuperficiePenalidadMotivo
Nieve > 0.5 cm (72h)≤ 3°CCualquiera+10 hieloMarcador «HIELO/NIEVE RESIDUAL»
Nieve > 0.5 cm (72h)> 0°CTierra / Huella+15 barroDerretimiento satura suelo, empantanamiento
Nieve > 0.5 cm (72h)> 0°CRipio+10 barroDeshielo debilita compactación
Lluvia > 2 mm (72h)CualquieraTierra / Huella+15 barroEmpantanamiento / pérdida de tracción
Lluvia > 2 mm (72h)CualquieraRipio+10 barroRipio suelto, charcos, menor grip
Seco (< 72h)0Sin efecto residual

¿Por qué 72h? Los caminos de tierra tardan entre 24-72 horas en drenar completamente después de una lluvia o nevada. El agua acumulada deteriora la superficie progresivamente, y en zonas de montaña sin drenaje artificial el efecto puede durar aún más.

¿Por qué incluir ripio? Aunque el ripio compactado tolera mejor la lluvia que la tierra, la precipitación sostenida suelta el material y genera charcos que reducen la tracción. La penalización es menor (+10 vs +15) pero no nula.

¿Por qué cruzar temperatura con agua? En rutas de montaña el agua que escurre de arroyos, vertientes y badenes se congela sobre el asfalto formando «hielo negro» — una capa transparente e invisible que es la causa principal de accidentes en condiciones invernales. Un badén a 0°C es considerablemente más peligroso que un tramo seco a la misma temperatura.

El resultado de cada segmento se acota a un máximo de 100. Tras la aplicación, se recalculan los agregados (score global, conteos por nivel de riesgo).

d) Modal de selección de superficie

Cuando el análisis de seguridad detecta que más del 25% de los segmentos tienen superficie «no confirmada» (confirmed: false), se presenta al usuario un modal interactivo antes de continuar con el post-procesamiento climático:

OpciónspeedFactorriskPenaltyEfecto
🛣️ Asfalto1.000Reclasifica como asfalto confirmado
⬜ Ripio0.65+12Aumenta riesgo y reduce velocidad
🟤 Tierra0.45+22Penalización fuerte por superficie
PredeterminadoMantiene clasificación original sin cambios

Si el usuario elige una superficie, el sistema reclasifica todos los segmentos no confirmados, ajusta sus dangerScore y vSafe, y recalcula las estadísticas de superficie y los conteos de riesgo. El análisis continúa automáticamente después de la selección.

6.9 Señalización automática por segmento

Cada segmento puede generar señales viales recomendadas, evaluadas automáticamente (ver §9 para el detalle completo). Los criterios de disparo son:

CondiciónCódigo DNVSeñalLógica de aparición
Puntaje ≥ 70 y R ≥ R_mínP.1⚠️ CURVA PELIGROSASolo al entrar a la zona (suprimida en serpentinas)
|pendiente| > 6%P.17a/b🔺🔻 PENDIENTE ASC/DESCSolo al cambiar dirección (ascendente↔descendente)
R < radio mínimo DNVP.2/P.3↗️ CURVA PRONUNCIADASolo al entrar a la zona (suprimida en serpentinas)
Zona urbana (entrada)R.20🏘️ ZONA URBANA — MÁX. X km/hSolo al entrar a la zona
Altitud ≥ 3500 m (entrada)P.35🏔️ ALTITUD XmSolo al entrar o cambiar nivel
Escuela ≤ 150 m (entrada)P.24🏫 ZONA ESCOLARSolo al entrar a la zona
Curso de agua ≤100 m en no pavimentadoP.25🌊 ZONA INUNDABLESolo al entrar a la zona
Índice vuelco > 0.70P.40🚛 RIESGO VUELCOSolo al entrar a la zona
Frenado camión >200 m y pend. <−5%P.18🛑 FRENADO PROLONGADOSolo al entrar a la zona
Ancho barrido > 4.5 mR.16📏 ANCHO BARRIDOSolo al entrar a la zona
Temp ≤ 3°C (post-proc.)P.34🧊 CALZADA RESBALADIZA / HELADAPost-procesamiento
≥6 seg. consecutivos con pend. ≤ −2%P.18b🔥 DESCENSO PROLONGADO — USAR FRENO MOTORInicio de zona
Zona de serpentina (§4.10)P.4🔀 SERPENTINA — CURVAS ALTERNADASSolo al entrar a la zona
Caída vSafe > 40 km/h (sin explicación previa)+10 puntos al dangerScoreSegundo pasaje post-cálculo (no genera señal visual — ver §6.10)

Nota sobre velocidad: en versiones anteriores se generaba una señal 🚫 R.20 «VEL. MÁXIMA» cada vez que la velocidad segura era inferior a la legal. Esta señal fue eliminada porque podía inducir al conductor a interpretar la velocidad calculada como un permiso para circular a esa velocidad, entrando en conflicto con señalizaciones reales más restrictivas. Ahora, el conductor es alertado únicamente por voz cuando excede la velocidad segura durante la navegación (§10.5).

Alertas de entrada: las señales de altitud (🏔️), zona escolar (🏫) y zona urbana (🏘️) se muestran solo en el punto de entrada a la zona, no en cada segmento consecutivo. Esto evita la saturación visual del mapa con señales repetidas en zonas extensas.

6.10 Consistencia de velocidad (IHSDM)

Después de calcular la velocidad segura de todos los segmentos, el sistema ejecuta un segundo pasaje para detectar caídas abruptas de velocidad entre segmentos consecutivos:

Δv = vSafei−1 − vSafei Si Δv > 40 km/h (y vSafe anterior ≥ 60 km/h, y no en zona urbana) → penalización de consistencia: +10 puntos al dangerScore del segmento i Se omite si el segmento ya tiene una señal que explique la caída (curva, pendiente, switchback, cambio de superficie)

IHSDM Interactive Highway Safety Design Model — Design Consistency Module. El umbral de 40 km/h es un criterio práctico calibrado para rutas argentinas, donde caídas menores son comunes en transiciones normales. Se requiere además que la velocidad previa sea ≥ 60 km/h (para evitar falsos positivos en zonas ya lentas) y que no exista una explicación previa (curva, pendiente o serpentina detectada).

Esta verificación es particularmente útil en transiciones de autopista a zona urbana, de recta larga a curva cerrada, o al final de bajadas prolongadas donde la velocidad se acumula.

6.11 Detección de descenso prolongado (fatiga de frenos)

El motor analiza secuencias de segmentos consecutivos con pendiente ≤ −2% para detectar descensos donde el calentamiento de frenos constituye un riesgo real. Los umbrales de disparo son:

CondiciónSeveridad baseAcción
≥ 6 seg. consecutivos (3 km)ModeradoSeñal P.18b + alerta de voz
≥ 10 seg. consecutivos (5 km)AltoSeñal P.18b + alerta urgente

Para cada zona de descenso detectada se registra: km inicio, km fin, longitud total, pendiente promedio y severidad. La señal P.18b se coloca en el primer segmento de la zona. La alerta de voz durante navegación dice: «Precaución. Inicio de descenso prolongado. Reduzca la marcha y utilice freno motor.»

Influencia de la temperatura ambiente

Los frenos de fricción disipan calor por convección (flujo de aire sobre el disco o tambor). Según la ley de enfriamiento de Newton, la tasa de disipación es proporcional al ΔT (diferencia entre la temperatura de la superficie de frenado y la del aire circundante). Esto tiene dos implicancias:

TemperaturaEfectoAjuste del sistema
> 35°CMenor ΔT → disipación más lenta → fade acelerado+5 puntos + severidad → alto
5°C – 35°CRango normalSin ajuste
< 5°CMayor ΔT → enfriamiento ligeramente mejorSin reducción (ver nota)

¿Por qué no se reduce la severidad en frío? Aunque el aire frío mejora marginalmente la convección, un disco de freno bajo uso intenso alcanza 300-600°C. La diferencia entre aire a 0°C y a 35°C es apenas 35° sobre un ΔT de ~500°, lo que representa una mejora inferior al 7% en la tasa de enfriamiento — insuficiente para justificar relajar la alerta.

Paradoja del frío + humedad

En condiciones de frío extremo con humedad, los componentes de freno pueden acumular hielo o escarcha en las superficies de contacto cuando el vehículo permanece detenido (estacionamiento nocturno, por ejemplo). Al iniciar la marcha, esto reduce momentáneamente la eficacia de frenado hasta que los primeros cientos de metros de rodaje calientan las superficies. El sistema considera esto indirectamente a través de la penalización de hielo en calzada (§6.8), que ya aplica restricciones de velocidad en condiciones bajo cero.

Frenos de tambor vs. disco

Los vehículos pesados (camiones, bitrenes) frecuentemente utilizan frenos de tambor en el eje trasero. Estos son más susceptibles a la pérdida de eficacia porque la campana encierra las zapatas, limitando la circulación de aire y la disipación de calor. Los frenos de disco, más comunes en ejes delanteros y vehículos livianos, disipan el calor con mayor eficiencia al exponer el rotor al flujo de aire. El sistema ya captura esta diferencia de riesgo a través del factor de vehículo (§6.6): los camiones pesados (factor 0.60-0.75) reciben velocidades seguras significativamente menores y penalizaciones de puntaje que reflejan su mayor vulnerabilidad a la pérdida de eficacia de frenado.

6.12 Zonas críticas

Se detectan zonas críticas cuando 2 o más segmentos consecutivos de 500 m (≥ 1 km continuo) superan el puntaje de 60. Para cada zona se registra el tramo kilométrico (inicio-fin), longitud, y el puntaje máximo alcanzado.

6.13 Distribución de riesgo de la ruta

En lugar de un número único, el sistema muestra una barra de distribución con tres bandas de color que representa el porcentaje de segmentos en cada nivel de riesgo:

BandaCondiciónColor
🟢 SegurodangerScore < 40Verde (#22c55e)
🟡 Moderado40 ≤ dangerScore < 70Ámbar (#f59e0b)
🔴 AltodangerScore ≥ 70Rojo (#ef4444)

La barra se acompaña de una etiqueta resumen que se determina por los porcentajes:

¿Por qué distribución y no un número único? Un solo score (0-100) oculta la realidad del viaje. Una ruta donde el 90% es seguro y el 10% es peligroso recibe un score similar a una ruta con riesgo moderado constante — pero la experiencia del conductor es completamente distinta. La distribución por bandas permite al conductor saber qué porcentaje del viaje requiere atención especial.

El briefing de voz refleja los porcentajes: «Distribución de riesgo: 72 por ciento seguro, 18 por ciento moderado, 10 por ciento alto riesgo.»

6.14 Métricas agregadas de salida

Además de la distribución de riesgo, el motor produce las siguientes métricas agregadas que se muestran en el reporte final:

7 Análisis Meteorológico ?

El pronóstico se consulta para 3 puntos de la ruta (origen, punto medio y destino) en la hora más cercana a la salida planificada. Se aplica un merge worst-case: código WMO de mayor riesgo, temperatura mínima, viento máximo y mayor probabilidad de precipitación.

7.1 Códigos WMO y riesgo asociado

CódigoCondiciónRiesgo (0-60)
0-2Despejado / Algo nublado0
3Nublado5
45Niebla25
48Niebla helada35
51-55Llovizna (leve a intensa)10-20
61-65Lluvia (leve a intensa)15-35
71-75Nieve (leve a intensa)40-60
80-82Chaparrones20-40
95-99Tormentas45-60

¿Por qué estos códigos? La clasificación WMO (World Meteorological Organization) es el estándar internacional para describir condiciones meteorológicas. Los puntajes de riesgo se asignaron considerando el impacto en la adherencia del neumático, la visibilidad y la estabilidad del vehículo.

8 Plan de Viaje y Factibilidad ?

El usuario ingresa hora de salida y hora estimada de llegada. El sistema calcula la factibilidad del viaje.

8.1 Variables calculadas

8.2 Evaluación de factibilidad

CondiciónEvaluación
Hora de llegada anterior a la salida❌ Imposible
Vel. promedio necesaria > 120 km/h❌ Velocidad irreal
Tiempo plan. < 80% del OSRM⚠️ Insuficiente
Tiempo plan. < OSRM⚠️ Sin paradas ni demoras
Tiempo plan. < 130% del OSRM🕐 Ajustado
Tiempo plan. ≥ 130% del OSRM✅ Holgado
Tiempo plan. < ajustado superficie⚠️ Superf. limita velocidad
Vehículo pesado en montaña con tiempo insuf.⚠️ Considerar más tiempo

8.3 Límites de conducción para vehículos pesados

Para camiones y bitrenes, el sistema evalúa los límites de conducción según la CCT 40/89 y normativa CNRT:

LímiteValorAcción
Conducción continua5 horas (+ 15 min tolerancia = 5h 15min)Parada obligatoria
Duración de la parada2 horas mínimas por cada cicloDescanso obligatorio
Jornada diaria máxima12 horas de conducciónFin de jornada o relevo

El sistema calcula:

Advertencias generadas:

9 Recomendaciones de Señalización ?

El sistema recomienda señalización vial según la normativa DNV para cada punto crítico detectado.

CódigoSeñalCondición de activación
P.1⚠️ Curva peligrosaPuntaje de peligrosidad ≥ 70
P.4🔀 Curva y contracurvaZona de curvas alternadas detectada (§4.10), con indicación de dirección (ascendente/descendente). Solo al entrar a la zona
P.33⏬ Reducción abrupta (invisible)Caída de vSafe > 40 km/h no explicada por otras señales. Incrementa el puntaje de riesgo (+10 pts) pero no se muestra en el timeline ni en el mapa — se comunica exclusivamente por voz durante la navegación
P.2 / P.3↗️ Curva pronunciadaRadio < radio mínimo DNV para la velocidad de diseño
P.17a / P.17b🔺🔻 PendientePendiente > 6%
P.18🛑 Frenado prolongadoDist. frenado camión > 200 m y pendiente < −5%
P.18b🔥 Descenso prolongado≥6 segmentos consecutivos con pendiente ≤ −2%
P.24🏫 Zona escolarEscuela a ≤ 100 m (solo al entrar a la zona)
P.25🌊 Zona inundable / BadénCurso de agua a ≤ 100 m en camino no pavimentado
P.34🧊 Calzada heladaTemperatura ≤ 3°C con fuente de humedad
P.35🏔️ AltitudAltitud ≥ 3500 m (solo al entrar o cambiar nivel)
P.40🚛 Riesgo vuelco camionesÍndice de vuelco > 0.70
R.16📏 Ancho de barridoBarrido > 4.5 m
R.20🏘️ Zona urbanaEntrada a zona urbana — muestra velocidad legal de la zona

Nota: la señal 🚫 R.20 de velocidad máxima recomendada por tramo fue eliminada del mapa por razones de seguridad (ver §6.9). La velocidad segura se comunica exclusivamente por voz durante la navegación.

11 Tecnología PWA

RutaSegura es una Progressive Web App (PWA) instalable en dispositivos móviles y de escritorio.

Características PWA
  • Instalable — Se puede instalar en la pantalla de inicio del dispositivo sin necesidad de tienda de aplicaciones.
  • Service Worker — Un Service Worker gestiona el caché de archivos para garantizar carga rápida y capacidad offline parcial.
  • Estrategia de caché — Los archivos HTML usan network-first (siempre busca la versión más reciente, cae al caché si no hay conexión). Los assets (CSS, JS, imágenes) usan stale-while-revalidate (sirve desde caché inmediatamente, actualiza en segundo plano).
  • Cache busting centralizado — En index.html se define una variable global APP_VERSION (formato YYYY.MM.DD.NN) que se usa dinámicamente para versionar los archivos CSS y JS. El Service Worker (sw.js) mantiene su propia copia que debe coincidir. Para actualizar la app, solo se cambian 2 líneas: la variable en index.html y en sw.js.
  • Actualización automática — Cuando se detecta una nueva versión del Service Worker, se muestra un toast al usuario notificando que hay una actualización disponible.

12 Limitaciones y Alcance

⚠️ Este es un análisis teórico sobre fuentes abiertas

RutaSegura realiza un análisis teórico y estimativo basado exclusivamente en datos de fuentes abiertas y modelos matemáticos de referencia. No reemplaza el relevamiento vial presencial, el estudio de suelos, la evaluación de infraestructura real ni la señalización existente en el terreno.

12.1 Limitaciones de los datos

Datos de elevación (Copernicus GLO-30)

  • Resolución de ~30 metros (Copernicus GLO-30, self-hosted). No captura microtopografía ni detalles de la calzada.
  • Refleja la superficie del terreno, no necesariamente la rasante de la ruta.
  • Puede tener errores en zonas de vegetación densa, sombras de montaña o áreas urbanas.
  • Si el servidor propio no está disponible, el sistema utiliza Open-Meteo como fuente alternativa (resolución de 90 m).

Datos de superficie (OpenStreetMap)

  • OSM es una base de datos colaborativa. La precisión y completitud depende de los contribuyentes de cada zona.
  • En zonas rurales remotas de Argentina, muchos caminos no tienen la etiqueta surface. En esos casos, la clasificación se infiere del tipo de vía (highway), lo cual es una aproximación.
  • El estado actual del camino (cortes, derrumbes, obras) no se refleja en OSM en tiempo real.
  • Caminos estacionales o huellas mineras pueden no estar mapeados o estar desactualizados.

Ruteo (OSRM)

  • OSRM utiliza datos de OSM. Si un camino no existe en OSM, no será ruteado.
  • Los tiempos estimados asumen velocidades estándar y no consideran condiciones locales (tráfico, carga, clima, estado del camino).
  • La ruta devuelta es la más rápida, no la más segura ni la única posible.

Pronóstico meteorológico

  • Se consultan 3 puntos de la ruta (origen, punto medio y destino), lo que mejora la cobertura respecto a un solo punto. Sin embargo, en rutas muy largas o con microclimas, las condiciones pueden variar entre los puntos muestreados.
  • Es un pronóstico, no un dato observado. Puede haber discrepancias con la realidad.
  • No se consideran fenómenos localizados (microclimas, tormentas de granizo, viento zonda, etc.).

Cálculos de ingeniería

  • Las fórmulas utilizadas son modelos teóricos determinísticos derivados de la mecánica vehicular clásica y las normas DNV.
  • No consideran el estado real de los neumáticos, frenos, suspensión, carga viva, distribución de carga, ni el factor humano (fatiga, experiencia).
  • Los coeficientes de fricción son valores estándar de diseño, no mediciones in-situ.
  • El análisis de curvas depende de la resolución de la geometría OSRM, que puede no reflejar la geometría real de la calzada.

12.2 Lo que la aplicación NO hace

Puntos Intermedios (Waypoints)

El usuario puede agregar puntos intermedios al viaje para forzar la ruta por ubicaciones específicas (paradas obligatorias, desvíos planificados, puntos de carga/descarga, etc.).

Funcionamiento
  • Agregar punto: El usuario presiona «+ Punto intermedio» y luego hace clic en el mapa. Se coloca un marcador naranja numerado.
  • Orden: Los waypoints se insertan en el orden en que se agregan (entre origen y destino).
  • Eliminar: Cada waypoint tiene un botón × para eliminarlo de la lista.
  • Cálculo de ruta: OSRM recibe las coordenadas como origen;wp1;wp2;...;destino y retorna una ruta con múltiples tramos (legs), cuyos pasos se agregan secuencialmente.
  • Análisis: El análisis de seguridad se aplica sobre la ruta completa (todos los tramos), sin dividir por waypoint.
  • Navegación: Durante la navegación en tiempo real, la recalculación de ruta (por desvío) no incluye los waypoints originales, ya que el conductor presumiblemente ya pasó por ellos.
  • Mapa: Los waypoints se muestran como marcadores naranjas numerados tanto en el mapa de análisis como en el de navegación.