Notebook Jupyter para generar perfiles longitudinales y gráficas de pendiente (%) a partir de un fichero CSV a aprtir del plugin L_RAT (si bien se puede adaptar a cualquier tabla o dataset).
Está pensado para flujos típicos de ingeniería civil (carreteras, ferrocarril, conducciones y trazados lineales), pero es aplicable a cualquier serie con eje longitudinal (distancia) y variables asociadas.
- Genera dos figuras:
- ✅ Perfil longitudinal (cota vs distancia)
- ✅ Perfil longitudinal + pendiente (%) en eje secundario
- El eje X siempre se representa contra
Dist_Origen_metros(distancia real en metros). - Permite elegir cómo etiquetar el eje X:
- PK (K+MMM) usando
m_field_PK_KM - Metros usando
Dist_Origen_metros
- PK (K+MMM) usando
- Estilo gráfico homogéneo preparado para informes.
Un CSV que debe incluir, como mínimo, estas columnas:
| Campo | Tipo | Descripción |
|---|---|---|
Dist_Origen_metros |
float | Distancia acumulada (m). Se usa como eje X real |
Cota_SUAV |
float | Cota/elevación suavizada (m) |
SLOPE |
float | Pendiente (%) |
m_field_PK_KM |
float | PK en kilómetros (ej. 162.300) |
Notas:
- El notebook ordena los datos por
Dist_Origen_metrosy puede colapsar duplicados para evitar artefactos en el relleno del perfil. SLOPEpuede contenerNaNsin impedir el gráfico del perfil.
- Perfil con área rellena y línea de perfil.
- En la segunda figura:
- eje Y izquierdo: Altura (m)
- eje Y derecho: Pendiente (%)
- Guías verticales y horizontales con estilo uniforme.
- Fondo del área de trazado con gris semitransparente.
La conversión PK → X usa interpolación y extrapolación robusta y controla:
- PK duplicados (se promedian)
- pequeñas variaciones en la distancia si los PKs no están correctamente calibrados
- posicionamiento correcto de ticks fuera del rango observado
Esto permite ubicar correctamente ticks fuera del dataset pero necesarios para una visualización elegante del gráfico.
Este proyecto se distribuye bajo la GNU General Public License v3.0 (GPL-3.0).
Puedes usarlo, modificarlo y compartirlo libremente bajo los términos de esta licencia.
- LinkedIn: Javi H. Piris
- GitHub: @Javisionario
