Skip to main content

Uno de los trabajos más comunes en el departamento de aguas de CIVILE es la realización de simulaciones hidráulicas mediante modelos matemáticos como IBER o HEC-RAS. La principal información de entrada a estos modelos son los hidrogramas de caudales: valores de caudal respecto al tiempo. Y a veces ocurre que la única información que podemos conseguir de estos hidrogramas es una imagen.

Imagen 1 WebPlotDigitizer

Imagen 1 – Gráfica de Hidrogramas

¿Y qué hacemos ahora? Cómo extraemos los valores numéricos de esta gráfica?

En la entrada del blog de hoy os vamos a descubrir una de las herramientas más útiles y potentes que hemos encontrado buscando la respuesta a estas preguntas y os vamos a enseñar como utilizarla. Su nombre es WebPlotDigitizer.

¿Qué es «WebPlotDigitizer»?

En 2011, Ankit Rohatgi, el autor de esta herramienta se enfrentaba a nuestro mismo problema. Durante sus estudios de ingeniería química en la Universidad de Notre Dame de Chicago a menudo se encontraba que la información que necesitaba solo estaba disponible en formato gráfico y que la tarea de extraer los valores numéricos de estas representaciones resultaba complicada y tediosa y, a veces, los resultados que conseguía eran demasiado imprecisos.

Su solución fue crear WebPlotDigitizer, una herramienta capaz de automatizar la extracción de información numérica a partir de representaciones gráficas.

¿Cómo funciona?

La herramienta está disponible como aplicación web y su funcionamiento es muy sencillo. Para explicar su funcionamiento, vamos a utilizar la imagen anterior para extraer una de las curvas.

Al entrar en la aplicación, somos bienvenidos por la página de inicio, que ya muestra una imagen de ejemplo cargada. Desde el menú superior, cargamos la imagen de nuestros hidrogramas.

Imagen 2 WebPlotDigitizer

Imagen 2 – Cargar imagen a analizar

Una vez seleccionemos nuestra imagen, lo primero que nos pregunta la herramienta es el tipo de gráfica que estamos introduciendo. En nuestro caso se trata de una gráfica 2D de ejes X-Y.

Imagen 3 WebPlotDigitizer

Imagen 3 – Seleccionar tipo de gráfico

A continuación, nos pide que identifiquemos los ejes en la imagen seleccionando 4 puntos, perteneciendo dos a cada unos de los ejes.

Imagen 4 WebPlotDigitizer

Imagen 4 – Identificar ejes – selección de puntos

Por último, una vez seleccionados los puntos de los ejes, nos pide que indiquemos los valores del ejes que corresponden estos puntos. En este caso, para los puntos X1 y X2 hemos tomado valores de 40 y de 160 y para los puntos Y1 e Y2 los valores de 5000 y 25000. Adicionalmente, hemos seleccionado la opción de omitir la corrección de giro puesto que en nuestra imagen, los ejes están perfectamente orientados.

Imagen 5 WebPlotDigitizer

Imagen 5 – Identificar ejes – valores de puntos

Tras estos pasos, nuestra imagen ya estaría correctamente cargada y calibrada, lista para extraer los valores.

En este ejemplo, vamos a extraer la información del hidrograma de línea roja.

imagen 6 WebPlotDigitizer

Imagen 6 – Imagen cargada

En la zona derecha de la herramienta nos aparecen las opciones para extraer los valores, dividido en modo manual y modo automático. Dentro del modo automático, tenemos la opción de indicarle el color de la línea que queremos conseguir en formato numérico así como el método de interpolación entre los puntos que detecte y la distancia entre los puntos que queremos.

En un primer intento, vamos a seleccionar el color rojo y dejar el resto de las opciones en su forma predeterminada. Con estas opciones, pulsamos el botón Run y el resultado que nos da la herramienta es el siguiente:

Imagen 7 WebPlotDigitizer

Imagen 7 – Detección automática

Como podemos observar, la punta del hidrograma está quedando por encima de los puntos creados por la herramienta, esto podemos solucionarlo disminuyendo la distancia entre puntos. Pasando de una distancia de 10 pixeles a otra de 5 pixeles conseguimos mejorar bastante la precisión.

Imagen 8 WebPlotDigitizer

Imagen 8 – Refinado de puntos

El siguiente paso sería añadir de forma manual los puntos de inicio y de fin del hidrograma que no ha podido detectar la herramienta al estar ocultos tras una línea de otro color. Esto podemos hacerlo con el botón “Add Point” en el apartado de extracción manual de puntos.

No os preocupéis, ya casi hemos terminado

Vamos a añadir varios puntos en el eje horizontal antes y después de los identificados automáticamente, incluyendo uno el origen del eje y otro en su punto final para obtener la extensión completa de la curva.

Imagen 9

Imagen 9 – Selección de puntos clave

Una vez que estemos conforme con los puntos, en el menú izquierdo, si presionamos el botón “View Data”, obtendremos los valores numéricos de cada uno de los puntos identificados. A partir de aquí, tenemos la opción de dar el formato que deseemos a nuestros datos con el menú de la derecha y varias opciones para exportar nuestra información: podemos copiarla al portapapeles o descargarla como un archivo de datos separados con comas (csv) que podremos importar en una hoja de cálculo.

imagen 10 WebPlotDigitizer

Imagen 10 – Valores numéricos

Si descargamos los valores extraídos y hacemos una representación gráfica de los mismos, podemos observar la gran exactitud de los datos obtenidos.

imagen 11 WebPlotDigitizer

Imagen 11 – Resultado final

¿Qué más?

El proceso que acabamos de realizar no es más que la punta del iceberg de WebPlotDigitizer. Sus capacidades van desde extraer múltiples líneas simultáneamente hasta analizar múltiples tipos de gráficos como gráficos de barras, sectores circulares o diagramas triangulares y todo ello sin contar que su autor sigue mejorando la herramienta de forma continua, encontrándose actualmente en la versión 4.5.

Si queréis saber más de WebPlotDigitizer, en su página web se puede encontrar un extenso manual donde se detallan todas las funciones disponibles y como utilizarlas. Espero que esta entrada del blog os haya resultado de utilidad y hayáis añadido una nueva herramienta a vuestro arsenal de trabajo.

 


Escrito por:

Agustín Hormigo Gutiérrez
Ingeniero Civil
Área de Ingeniería Civil – Sección de Ingeniería del Agua en Civile

Leave a Reply