Comprobando los Datos OSM

** Esta sección cubre los procesos de control de la calidad de los datos, particularmente en el contexto de un proyecto dirigido de cartografiado de OSM, como los que lleva acabo el Humanitarian OpenStreetMap Team en varios países y como los proyectos Open Cities en Bangladesh, Sri Lanka y Nepal. Los métodos mostrados pueden resultar de utilidad en otros contextos, cuando el control de calidad sea una tarea habitual.**

Cuando intentamos cartografiar un conjunto completo de elementos y atributos de un área determinada, necesitamos maneras de comprobar los errores y maneras de asegurar la precisión del trabajo. En este tutorial trabajaremos con diferentes métodos para revisar datos, para cada método explicaremos los pasos a dar y sus razones para darlos. Un proyecto de cartografía bien gestionado incluirá cada uno de estos tres procesos, de forma que se evalúen y corrijan los datos, así como para realizar informes.

  • Comprobaciones diarias
  • Repetición del trabajo
  • Sentencias SQL

Estos métodos de comprobación son cada vez más importantes a medida que el modelo de datos crece y el número de elementos registrados se convierte en una cantidad bastante grande. Por ejemplo, no llevaría mucho tiempo ni esfuerzo el crear un modelo de datos que solamente involucrara puntos de interés (POIs por sus siglas en inglés):

Data Model POIs

En este caso las preguntas que habría que contestar podrían ser:

  • ¿Los POIs han sido cartografiados en todos los lugares?
  • ¿Hay algún POI al que le falte el atributo de nombre?
  • ¿Hay algún POI al que le falte el atributo de tipo?
  • ¿Hay algún POI al que le falte el atributo de número de teléfono?
  • ¿Está el valor del campo nombre con las mayúsculas y minúsculas correctas?
  • ¿El número de teléfono tiene sentido?

Generalmente los modelos de datos son más complejos, como por ejemplo en el caso de la cartografía de edificios. Consideremos un modelo de datos que incluya esto:

Data Model Buildings

Se podrían estar cartografiando miles de edificios con los mismos atributos y el análisis se convertiría en más crítico. En el presente tutorial se usarán los edificios como ejemplo, aunque los mismos métodos se pueden aplicar a la comprobación de otros elementos.

Comprobaciones diarias

La manera más rápida de realizar comprobaciones en los datos es revisarla y validarla con regularidad. La frecuencia puede ser diaria, pero como máximo debiera ser semanal. Representa una tarea importante para el supervisor del equipo de trabajo ya que encontrar de manera temprana errores y malas prácticas a la hora de editar significa que los errores pueden ser corregidos y los editores de cartografía pueden aprender y hacer las cosas de manera apropiada.

Revisaremos algunos de los métodos que se pueden emplear para comprobar los datos usando simplemente JOSM. Algunas de las preguntas que hay que formularse al respecto de los datos son:

  • ¿Hay errores topológicos (como edificios que se solapan o relaciones erróneas)?
  • ¿Hay errores de etiquetado (etiquetas mal escritas, pares clave-valor mal empleados)?
  • ¿Están los datos completos de acuerdo al modelo de datos?

Examinemos cómo encontrar respuestas a estas preguntas empleando JOSM. Se asume que se está comprobando el trabajo de otras personas, pero los mismos procesos deberían funcionar también (e incluso ser más sencillos) cuando se examina el trabajo propio.

Se emplearán una serie de archivos de datos de ejemplo del proyecto de Open Cities de Dhaka. Para poder continuar se deben descargar los siguientes archivos: dhaka_validation_example.osm

NO SE DEBEN salvar los cambios en OpenStreetMap. Estos ejercicios tienen solamente un carácter de demostración.

Dhaka Example in JOSM

Validación de datos

El primer paso para comprobar los datos es ejecutar la Herramienta de Validación de JOSM, que comprobará automáticamente los datos cargados en busca de los errores más comunes. Esta herramienta es especialmente útil para encontrar errores topológicos pero no será tan útil para encontrar errores de etiquetas.

  • La herramienta se activa pulsando el botón de Validación que se encuentra en el lado izquierdo de JOSM. (Este paso no será necesario si el panel de Validación ya está desplegado).

Validation Tool

  • A continuación hay que asegurarse de que no hay nada seleccionado pulsando con el ratón en cualquier lugar en blanco del mapa. Si hay elementos seleccionados cuando se emplea la Herramienta de Validación solamente los elementos seleccionados son validados. (En ocasiones es conveniente comprobar solamente algunos elementos, pero por ahora vamos a comprobar todo el fichero).
  • Se pulsa en el botón “Validation” del panel.

Validate Button

  • Aparecerán una lista de avisos:

Validation Results

  • También aparece una nueva capa, indicando dónde están los errores. Puede ser conveniente ocultar esta capa de momento.

Validation Layer

Pasamos a revisar algunos de los avisos. Puede verse que hay cuatro avisos de “Crossing buildings”. Estos avisos informan de que hay edificios que se solapan en algún lugar. Se selecciona el primer elemento de la lista, pulsamos con el botón derecho y después elegimos “Zoom to problem”.

Validation Zoom to Problem

También se puede pulsar en el botón “Select” que está en la parte de abajo de la ventana de Validación, lo que seleccionará las vías en cuestión. Así es como se muestra que dos vías tienen un problema:

Validation Selected Ways

  • En este caso se trata de un error que nunca se habría podido detectar sin la herramienta de validación. Si se hace zoom a menor escala se puede apreciar cómo los edificios se solapan ligeramente, lo que es un error topológico, porque los edificios no suelen solaparse unos con otros. Para arreglar el error, es necesario desplazar el nodo central. Si los edificios realmente se tocan, lo que es muy probable, el nodo central puede unirse con la vía.
  • Una vez se ha corregido, se puede volver a ejecutar la herramienta de Validación y comprobar como ha desaparecido el elemento de la lista.

Este método de comprobación automática de los datos en una manera muy eficaz de corregir errores topológicos, particularmente aquellos que son difíciles de apreciar para las personas. En la lista de avisos de validación, se pueden encontrar otros avisos como “Building inside building” que es el resultado de una equivocación similar.

Sin embargo otros avisos, como “Crossing waterway/highway”, no son errores necesariamente. En este caso se puede apreciar claramente que la herramienta de validación puede ser muy buena para detectar posibles errores, pero que se requiere de que alguien supervise si el error es importante o no.

Validation Crossing Ways

Si se comprueba el aviso que hay bajo “Similarly named ways” se puede ver que no se trata de un error topológico. Si se pulsa “Select” se seleccionarán las dos vías en cuestión.

Validation Select Crossing Ways

¿Se aprecia la naturaleza del error? Aunque hay dos segmentos de vía diferentes, que en realidad son la misma vía pero que han sido nombrados de manera ligeramente diferente - “road” está en mayúsculas en una de las vías pero no en la otra. Parece tener sentido que ambas deberían tener el mismo nombre, y en este caso la palabra “road” debe estar en mayúsculas.

Usando la búsqueda de JOSM

Buscar en JOSM es una manera muy potente de revisar datos. Permite la introducción de términos de búsqueda, también llamados consultas, para seleccionar solamente los elementos que se quiera.

  • Para acceder a la búsqueda, hay que ir al menú Edit -> Search o presionar CTRL + F en el teclado.

JOSM Menu Search

  • Hay muchas consultas que pueden realizarse, pueden verse detalles y ejemplos en la propia caja de búsqueda y pulsando el botón “Help”.
  • Se intentará seleccionar todos los edificios. Prácticamente todos los edificios van a tener la etiqueta building=yes y solamente algunos tendrán la etiqueta building=construction. Se puede construir una consulta como:

    building = yes OR building=construction

  • Esta consulta seleccionará todos los edificios, pero en previsión de que alguien hubiera empleado una etiqueta equivocada en el edificio, podemos emplear un carácter comodín, que seleccionará todos los elementos que tengan la clave building.

JOSM Search String

  • Se seleccionarán todos los edificios.

Se trata de una funcionalidad muy útil, ¿pero cómo ayuda a revisar los datos? Ahora que todos los elementos de un solo tipo han sido seleccionados, pueden comprobarse etiquetas erróneas.

  • En la ventana de Propiedades - podemos ver todas las etiquetas de los elementos seleccionados. Todos tienen las mismas claves, pero como cada elemento tiene valores diferentes aparecen marcados como <different>.

JOSM Search Properties

  • Se pulsa en la etiqueta building:use y después pulsamos en “Edit”.

JOSM Search Properties Edit

  • ¡PRECAUCIÓN! no se debe editar el valor y pulsar OK, porque eso cambiaría los valores de todos los elementos edificio. Y esto sería muy perjudicial.
  • En lugar de eso, se pulsa en la caja desplegable junto al Valor.

JOSM Search Properties Edit 2

  • Hay que apreciar que todos los elementos en negrita tienen un número entre paréntesis junto a ellos. Se trata del número de elementos seleccionados que tienen el valor de la etiqueta.

Se puede comparar ésta con las etiquetas representadas en nuestro modelo de datos y buscar errores. Por ejemplo, la etiqueta que usamos como ejemplo representa un uso como edificio. En los inicios del proyecto Open Cities Dhaka (que es de donde provienen los datos de ejemplo) había una cierta incertidumbre sobre si etiquetar un edificio con diversos usos como building:use=multipurpose o building:use=mixed. Como la primera etiqueta ya estaba siendo utilizada en otros países, fue la que finalmente se eligió. Sin embargo, tal como se puede apreciar uno de los edificios se ha etiquetado como mixed. Es necesario corregir esto. (Otro error obvio son dos términos distintos empleados para garage, pero no se corregirá este error en este momento).

  • No puede cambiarse el elemento etiquetado como building:use=mixed desde esta pantalla, ya que hay cientos de elementos seleccionados. De manera que, para corregir el error, se debe encontrar el edificio concreto. ¿Cómo? Empleando la herramienta de búsqueda.
  • Hay que pulsar “Cancel” para abandonar el dialogo. Hay que recordar que pulsar OK puede ser peligroso.
  • Se abre la búsqueda de nuevo y se introduce: “building:use”=mixed
  • Nótese que las comillas son necesarias porque el carácter dos puntos (:) tiene su propio significado para el motor de búsqueda. Esta acción seleccionará el único edificio que tiene esa etiqueta. Ahora se puede remplazar su valor por multipurpose.

Se debe recordar que pese a seguir el tutorial, NO se deben guardar los cambios en OpenStreetMap. Se trata de un ejercicio meramente demostrativo.

Repetición del trabajo

Cuando se trabaja en un proyecto como el de realizar un cartografía detallada de edificios, deben implementarse métodos adicionales de control de calidad, tanto para obtener un mejor trabajo final como para poder informar sobre la precisión al final de proyecto.

Si hay varios equipos colaborando en la recolección de datos en el área, suele ser común que uno o más de los equipos no realice un trabajo satisfactorio. Incluso los equipos que realizan un trabajo eficiente y preciso cometen errores. Si se imagina un equipo que cartografía unos 100 edificios al día - no es descabellado que un pequeño porcentaje de los atributos recolectados sean erróneos.

De este modo, un buen proyecto debe incluir los procesos de comprobación de parte del trabajo realizado, para arreglar errores, determinando qué equipos han realizado un trabajo satisfactorio y obteniendo aproximadamente el porcentaje de errores para incluirlo en el informe final.

Por supuesto, no tiene sentido repetir el trabajo realizado en cada edificio en el área, pero entre el 5 y el 10 % de los edificios deberían ser revisados. Las áreas sometidas a revisión deben ser escogidas de distintas zonas para poder comparar entre equipos de trabajo. Los equipos pueden volver a realizar el trabajo de otros equipos, o si es posible debería ser el personal más experimentado los que realizaran la revisión. Es práctica común que los jefes de equipo empleen un día a la semana a realizar repetición de trabajo de partes del área objetivo.

Corrigiendo errores

¿Qué debe hacerse cuando se detectan errores?

Si la cantidad de errores es pequeña (menos del 5% de los edificios), las incidencias deben llevarse al equipo de campo original de forma que cobren conciencia del error y no lo vuelvan a cometer. Los datos deben ser corregidos en OpenStreetMap y el resultado de la repetición del trabajo registrada.

Si hay errores más importantes, deberán tomarse acciones más drásticas. El equipo de campo deberá ser informado convenientemente y las áreas en las que trabajaron podrían tener que volver a trabajarse por completo, dependiendo de lo erróneos que resulten ser los datos. Un número de errores superior al 10% será seguramente inapropiado.

Informando sobre la precisión

El segundo objetivo de la repetición de trabajos es el poder hacer un informe sobre la precisión de los datos cuando acaba el proyecto. Los usuarios de los datos querrán saber qué métricas y metodologías se han empleado para asegurar la calidad.

Incluir este proceso como parte de la metodología de revisión, permite explicar claramente de qué manera se ha asegurado la calidad y se podrán aportar pruebas sólidas sobre los porcentajes de error de los datos obtenidos.

Por ejemplo, Se podría imaginar que se gestiona un proyecto en el que hay que cartografiar 1000 edificios. Así que se decide cartografiar el 10%, o sea 100 edificios, seleccionándolos aleatoriamente en el área. Después de realizar la repetición del trabajo de campo se aprecia que seis de ellos tienen un alto nivel de errores. En este caso se supone que se ha establecido que un error es tener al menos una etiqueta errónea. Un seis por ciento de los edificios que se han repetido tienen errores - que pueden subsanarse, pero se debe extrapolar que el seis por ciento de los 1000 edificios tienen alguna incorrección. Al cierre del proyecto debería informarse de que este es el error probable.

La repetición del trabajo debe realizarse a lo largo del proyecto. Imaginando que se espera hasta el final del proyecto para encontrar que ¡40 de cada 100 edificios tienen errores! Podría llegar a arruinar todo el proyecto. Es mejor encontrar tempranamente errores a gran escala de forma que estos puedan ser corregidos.

Consultas SQL

Probablemente la mejor herramienta de análisis a emplear son las consultas SQL en un sistema GIS, como QuantumGIS (QGIS). Es similar a buscar información en JOSM, pero ofrece una capacidad de análisis más potente, aunque puede costar un poco más de tiempo preparar el entorno. Usar JOSM es una forma rápida de comprobar los errores más básicos, mientras que QGIS está diseñado para encontrar datos que faltan o atributos incorrectos.

Se asume que el lector está familiarizado con los GIS, por lo que el presente manual se centra en la creación de consultas que permitan revisar datos de OpenStreetMap. Para realizar los ejercicios que vienen a continuación se empleará de nuevo los datos del proyecto de Dhaka de Open Cities, que puede descargarse de dhaka_sql.zip. Los datos de OpenStreetMap se exportaron empleando la herramienta (export.hotosm.org) y el área de trabajo se determinó al principio del proyecto.

Preparar los datos

Se descomprimirá el archivo Zip y se cargará su contenido en QGIS. Se procederá a recortar solo los edificios que se encuentren en el área de proyecto, de forma que se simplificará el trabajo a realizar a posteriori.

  • En primer lugar se seleccionan los polígonos que estén en el área del proyecto. Para ello se empleará el plugin Spatial Query. Si no se encuentra instalado, ir a Plugins -> Manage and Install Plugins para encontrarlo e instalarlo.
  • Ir a Vector -> Spatial Query -> Spatial Query.
  • Se deben rellenar los ajustes para seleccionar elementos planet_osm_polygon que estén within target_area.

QGIS Spatial Query

  • Se pulsa Apply. Solamente se seleccionarán los polígonos que estén en el área.

QGIS Map Image

  • Se pulsa con el botón derecho del ratón en la capa y se guarda la selección como un nuevo shapefile. Se añade este último al proyecto.

QGIS Save Selection As

  • A continuación se filtran tan solo los polígonos que sean edificios y que fueron recogidos como parte del proyecto.
  • Se pulsa con el botón derecho sobre planet_osm_polygon y se pulsa en “Filter…”
  • Se introduce la siguiente consulta:

“building” != NULL AND “source” = ‘Open Cities Dhaka Survey’

  • Se pulsa OK. El filtrado de los datos con la consulta mostrará solamente los polígonos que tengan algún contenido en la columna edificio. También eliminará los edificios que no tengan la etiqueta source asociada al proyecto.
  • Se guardan los datos como un nuevo shapefile. Se usará el archivo para las consultas SQL.

QGIS Map Image 2

Consultas SQL

Ahora pueden ejecutarse consultas en la capa de edificios para detectar posibles errores. Se plantearán algunas cuestiones sobre las que se podrían realizar consultas. El modelo de datos del proyecto indica los atributos que deberían recogerse en cada edificio - estos atributos son:

  • name
  • building
  • building:levels
  • building:use
  • building:vertical_irregularity
  • building:soft_storey
  • building:material
  • building:structure
  • start_date
  • building:condition

Nótese que en los shapefiles los nombres de columna están truncados, ya que estos están limitados a 10 caracteres.

¿Qué tipo de preguntas se pretende preguntar? ¿Qué es posible que sean errores? Un error común es que se ha cartografiado el edificio, pero no se han recolectado todos los atributos. De forma que se ejecutará una consulta que muestre todos los edificios que no tienen el juego completo de atributos. Algunos atributos, como el nombre o el año de inicio (año de construcción), pueden estar vacíos sin que sea un error, porque muchos edificios no tienen nombre y se desconoce el año de construcción. Pero el resto de atributos deben ser recogidos.

Se desarrolla una consulta con este fin:

  • Hacer pulsar con el botón derecho en la capa de edificios (la capa creada en la sección anterior) y pulsar “Filter…” se abrirá el constructor de consultas. En este constructor se prepararán las consultas complejas que devolverán los datos solicitados.
  • Se puede construir la consulta haciendo doble pulsación en los campos, operadores y valores, o puede copiarse la siguiente consulta:

“building_c” = NULL OR “building_s” = NULL OR “building_l” = NULL OR “building_m” = NULL OR “vertical_i” = NULL OR “soft_store” = NULL OR “building_u” = NULL

  • Se pulsa en “Test” y se comprueba que la consulta devuelve 125 elementos. Esto quiere decir que de los 3500 edificios cartografiados, a 125 les falta un atributo o varios.

QGIS Query Result

  • Se pulsa OK para mostrar solo los edificios que cumplan las condiciones de la consulta.

QGIS Map Image 3

  • Estos edificios pueden ser examinados para identificar qué atributos faltan y si es necesario realizar de nuevo el trabajo. Es posible hacer un mapa con QGIS que muestre a qué edificios les faltan atributos para entregar al equipo que vaya a volver a campo.

¿Qué otras consultas pueden ser de utilidad? También se pueden comprobar atributos que no están en el esquema de datos. Como ya se vio en la sección de JOSM. Se pueden emplear las consultas para encontrar los edificios cuyos atributos no se correspondan con el modelo.

También pueden emplearse para buscar anomalías, que probablemente aunque no necesariamente son errores. Por ejemplo, si se abre el constructor de consultas, se selecciona building_l y se pulsa “All” para cargar los posibles valores de atributos, se aprecia que la mayoría de edificios tienen un número entre uno y 20 (este atributo es building:levels, el número de plantas del edificio). Pero también hay un 51. Parece poco probable que haya un edificio de 51 alturas en el área, de forma que se puede localizar y ser comentado con los cartógrafos.

Las consultas pueden ser una forma muy efectiva de encontrar errores en el juego de datos. Combinadas con otras características de QGIS, pueden emplearse para producir mapas que pueden ser usados para revisar datos en el área.

Resumen

En el presente tutorial se han revisado diversos modos efectivos de mantener la calidad de los datos durante un proyecto y se han realizado algunos ejercicios para practicar la revisión de datos OSM. Cuando se organiza un proyecto de cartografiado, o incluso cuando se están empleando los datos de un área para uso personal, estos métodos pueden resultar ventajosos.

CC0
Official HOT OSM learning materials