Datos abiertos de edificación de CABA

Buenas, todo bien? Les quería hacer unas consultas sobre un posible hallazgo que hice.

Estaba boludeando con este mapa de la ciudad y encontré jugando con las capas que en el programa de datos abiertos hay un GeoJSON malformado representando todos los terrenos legales (link). Creo que combinar esto con imágenes satelitales nos puede ser útil en el caso que los edificios cubran el 100% del terreno, porque lo único que tenemos que hacer es etiquetar el polígono como un edificio.

Después de haberlo bajado, conseguí arreglar el schema y eliminar todos los atributos innecesarios para quedar con un GeoJSON válido de sólo 750 megas de espacio.

Subo un snippet de referencia.

A esto vienen varias preguntas.

  1. Esto es algo de interés para nosotros?
  2. La licencia CC-BY-2.5-AR, es compatible con la de OSM?
  3. Sería posible distribuir estos polígonos como tareas en MapRoulette, para que podamos marcar cada uno como un match para un edificio o no? Intenté subir el archivo entero pero me colgó el navegador.
  4. Alguien está interesado en ayudarme con esto?

Hola @La_Révacholiere,

En 2021 tuve la intención de adaptar el dataset, aprovechando tanto los datos de los polígonos como la información de altura o cantidad de pisos, pero lamentablemente no pude avanzar debido a la falta de tiempo. En aquel momento, el dataset estaba dividido en distintos archivos por barrio (tal vez sea bueno hacer lo mismo para que los archivos sean de un tamaño manejable) y recuerdo que era necesario corregirlo eliminando el área de la parcela, ya que no estaba relacionada directamente con la estructura del edificio.

Respecto a tu comentario sobre la utilidad en casos donde el edificio ocupa el 100% del terreno, me gustaría entender mejor ese punto, no me quedó claro por qué no se podría aprovechar en otros casos.

Corregir y agregar los edificios en CABA es de interés, dado que muchos de los que están mapeados no reflejan con precisión la realidad.

En cuanto a la licencia, contamos con la aprobación explícita del GCBA para utilizar sus datasets y tiles en OSM (File:Solicitud-de-permiso-para-usar-datos-de-BA-Data-en-OpenStreetMap.png - OpenStreetMap Wiki).

Por lo que observé del snippet, faltarían los datos de altura que también son importantes. Te paso el enlace a la página de la wiki donde se detallan las etiquetas relevantes para los edificios en 3D: Simple 3D Buildings - OpenStreetMap Wiki.

Por último, aunque no lo mencionaste, es importante aclarar que las importaciones masivas no son recomendadas; lo ideal es realizar importaciones manuales combinando datos con los que ya tiene OpenStreetMap.

Espero que esta info sea útil y que podamos mejorar la precisión de los datos en OSM!

PD: Tenemos un grupo de Telegram (Telegram: Contact @osm_ar) con una sección dedicada al AMBA donde podemos chatear sobre estos temas.

1 Like

Buenas @ignaciolep ,

Qué bueno encontrar a alguien que tuvo la misma idea! Es un proyecto complejo así que voy a ir agregando detalles por partes

Estoy de acuerdo, los datos son inmanejables en el formato que está ahora mismo. Lo que estaba pensando era en transformar cada polígono en una pregunta de MapRoulette: “es esto un edificio?” con tres opciones:

  1. Sí → subimos el polígono a OSM como una casa
  2. No → eliminamos el polígono de la lista
  3. Abrir en editor → para refinar la forma.

Esto nos ayudaría a distribuir el trabajo y esquivar una edición masiva sin supervisar. Me creo capaz de poder hacer esa distribución de tareas pero quería preguntar por opiniones de la comunidad, ayuda y esos temas de licencias.

Por lo que yo tengo entendido ese dataset representa terrenos, no edificios. Si un edificio ocupa todo el terreno, tengo entendido que MapRoulette podría convertir ese polígono en un landuse con un solo click. Lo que puede llegar a pasar es que un terreno tenga patio, ahí ese polígono ya no es tan útil. Si tenés sugerencias de cómo podríamos manejar esas situaciones lo puedo tener en cuenta para el proyecto

Mi primera reacción fue proponer un proyecto de dos fases: primero marcar las formas de los landuse, después las alturas. Pero pensándolo dos veces capaz no va a ser tan fácil ligar los landuse de la fase uno con las alturas de estos polígonos. Voy a buscar un dataset que incluya esos datos

Cualquier feedback es apreciado!

Respondo rápido:

Si ya existe el elemento en OSM, aunque sea mal dibujado, habría que realizar un “conflation” para mantener los datos existentes en OSM, como podría ser el nombre del edificio o la dirección, y corregir la forma del área y el dato de altura con los del dataset. No imagino cómo llevarlo adelante con un tasking manager.

El dataset de “Tejido Urbano” representa los volúmenes de edificación con su altura, o sea, los edificios en 3D sin el terreno.

Acá se puede ver que los patios están libres:

El dataset de “Parcelas” es el que representa los polígonos de los terrenos. Aunque existe la etiqueta place=plot, OSM no pretende ser un catastro inmobiliario, por lo tanto ese dataset no nos interesa.

En mi opinión, primero habría que ver de qué manera quedarse con una versión simplificada de cada edificio, para no tener tantas partes. Es decir, que si tenemos un edificio que arriba de todo tiene otro volumen para la sala de máquinas, descartamos ese volumen y nos quedamos con la versión más simple y representativa del edificio.

Una vez logrado eso, se etiqueta cada edificio con “building=yes” y su altura con “height=*”.

Con eso se podría lograr algo como lo que hice en el Barrio Soldati (OSM | F4map):

PD: Si te parece bien, creo que sería mejor cambiar el asunto por “Datos abiertos de edificación de CABA”

Creo que lo mejor va a ser partir el trabajo en dos etapas, puedo comparar contra el dataset de OSM y poner los polígonos conflictuantes en un archivo aparte. Incluso si nunca lo resolvemos la etapa 1 sería una mejora importante.

Gracias por todos los datos! Estoy estudiando la factibilidad con todas estas situaciones que mencionaste. Voy a ver si hay volúmenes que se intersectan en el dataset y cómo comparar contra lo que tenemos en OSM

Me parece bien, pero no encuentro el botón para hacerlo!

1 Like

Buenas tardes Ignacio, todo bien?

Quería actualizarte en mi progreso, ya tengo el código para transformar el dataset de la ciudad en una serie de datasets más fáciles de manejar con volúmenes en formato GeoJSON. También garantiza no tener conflictos con la copia en vivo de la ciudad en OSM. La última vez que checkié tengo 1.2 millones de volúmenes que ahora mismo no existen en el mapa.

Quería hacer dos consultas. Primero, sabrás cuál es el significado de los SMP en el dataset original? Parecen ser un código catastral, números similares tienen proximidad cuando están representados en el mapa, pero no sé cómo identificar si dos volúmenes adyacentes constituyen un edificio del mundo real.

Segundo, estuve experimentando con MapRoulette y no parece tener ninguna manera de ofrecer un flujo tan fluido como el que me habría gustado: que una persona vea un volumen encima de una imagen satelital, aprete un botón de “se ve bien” y eso automáticamente se convierta en un edit a OSM. El plan B podría ser generar miles de changesets, cada uno cubriendo ~4 cuadras, e idear alguna manera de distribuirlos en la comunidad y que verifiquen visualmente que estén bien antes de subirlos. Me parece un buen punto medio entre esto entre crear los edificios a mano levantada y un changeset masivo. Hubo precedentes de esto? Algo que tendría que tener en mente?

Abrazo, y gracias por apoyarme intentando traducir esto

Hola @La_Révacholiere,

SMP es el identificador catastral de Sección-Manzana-Parcela.

Cuando mencionás no tener conflictos con la copia en vivo de la ciudad en OSM, ¿te referís a que descartaste los datos del dataset en las zonas donde ya hay edificios mapeados en OSM? De ser así, no los descartaría. La mayoría de los edificios en OSM fueron mapeados “a ojo” desde imágenes satelitales de baja resolución, así que sería útil corregir su geometría y añadir datos como la altura, preservando etiquetas existentes como nombre, dirección y demás. Por eso antes te comentaba lo del “conflation” (merge), para comparar lo que hay en OSM con la versión depurada del dataset y unificar ambos. Para esto, JOSM tiene el plugin Conflation.

Todavía no termino de ver cómo implementarlo con un tasking manager. Tal vez se podría crear tareas por manzanas para identificar cuáles faltan, aunque eso será fácil de notar a simple vista desde el mapa. Creo que la vez que mejor aprovechamos un tasking manager fue con el Proyecto de mapeo de hospitales por la pandemia de COVID-19.

Me gustaría ver el dataset depurado, si tenés algo de Caballito, sin quitar los edificios ya mapeados en OSM. Así podría probar cómo trabajar con él.

Buenas @ignaciolep ,

Pido perdón por la demora, por cuestiones de tiempo no creo que pueda trabajar en esto por unas semanas más. Gracias por la clarificación! No se me había ocurrido que podía haber multipolígonos con SMPs duplicados. Voy a tener que encontrar alguna manera de combinarlos y determinar una altura que represente las dimensiones del edificio lo mejor posible.

Estoy diseñando mi cadena de procesamiento para no descartar datos. Puede haber distintas razones por las que no crea que un edificio pueda ser publicado directamente en OSM, y los voy almacenando en lugares aparte para que podamos taclear esos problemas a medida que encontremos cómo – sin que se ponga en el medio de agregar todo lo posible, lo más rápido posible.

Adjunto un poco del trabajo que estaba haciendo en formato GeoJSON lines. Le faltan arreglar tres cosas: primero, la versión de CABA viva de OSM que usé ya está varios meses desactualizada. Segundo, no considera este problema de la conflation de SMPs, así que va a haber edificios de más. Tercero, no está agrupada por manzanas.

Trabajo en progreso (pastebin)

Espero tener mejores novedades para el próximo mensaje.

Abrazo

Ojo, vean los problemas de MapRoulette que tiene que ver con como sus usuarios usan las tareas, que no siempre estan bien escritas (eso dependeria de ustedes), pero a veces (quizas mas de lo deseado), y aunque el se pida que se revise el usuario de MR hace el clasico “siguiente-siguiente-siguiente” y en realidad no hace validación alguna. O sea terminás en OSM con datos que no son de la calidad que esperarías.

Coincido con vos muralito. Es uno de los motivos por los que no veo cómo llevar adelante esta tarea utilizando un tasking manager. Más bien, creo que la mejor forma de encarar esto sería que alguien (o algunos) con mucha atención al detalle (somos varios) tome un barrio y se dedique a revisar manzana por manzana. Así, de a poco, podríamos ir avanzando hasta completar toda la ciudad.

Sí, no encontré manera de hacer funcionar MapRoulette de esta manera. Que es una lástima, porque estaba mirando MapSwipe que parece hacer algo muy similar a lo que quería con el tipo de task “validate”

Pero tienen un enfoque muy a tareas de emergencia. Capaz me contacto con ellos a ver si hay algún fork más generalizado de su proyecto.

La otra opción es lo que había mencionado, subir los archivitos de cada cuadra y avanzar con algún tipo de coordinación o una board de kanban. En dos semanas voy a estar más libre y ver cómo puedo hacer

Me parece bien. Un tasking manager simple que tal vez sirva para dividir las manzanas podría ser SimpleTaskManager.

Buenas noches,

Les quería contar que conseguí que funcione! Combiné todos los polígonos con el mismo SMP y me dió figuras de edificios bastante fieles. También inventé un algoritmo para determinar la “altura más característica” de cada uno de estos.

Esta imagen muestra uno de mis GeoJSONs en azul. Creo que esta zona muestra cómo los datos nuevos no colisionan con la data viva de OSM. Procedo a crear archivos para cada manzana individual y ver cómo subirlos al tasking manager.

Ya tengo una idea de cómo puedo hacer que los edificios vivos puedan heredar estas mediciones fotogramétricas sin perder su metadata, pero necesito más tiempo para desarrollarla. Esto ya es un montón de trabajo para una primera fase.

Les adjunto un proyecto de testeo:

https://stm.hauke-stieler.de/project/860

Les quería consultar cómo lo ven como una herramienta de trabajo. No tengo mucha experiencia con editores de PC y no conseguí que ninguna de las integraciones (con JOSM o iD) funcionen pero capaz ustedes pueden ver algo que yo no. Voy a estar buscando alternativas por si las dudas.

Posdata, me olvidé de agregar estadísticas de los resultados del procesamiento. Esta primera etapa tiene 291916 edificios listos para ser agregados sin ningún riesgo de intersecar con data actualmente en OSM. De esos, 193500 tienen un atributo de altura y creo que lo puedo mejorar. 37911 edificios quedaron marcados como que requieren inspección manual o una segunda ronda de automatización porque o ya existen en OSM o chocan demasiado con sus vecinos como para agregarlos sin tener consideración de la data preexistente. Me preocupa que eso sea menos que las 40889 ways que encontré con Overpass Turbo, pero ya voy a entener esa discrepancia cuando pase más tiempo con el dataset.

Query que usé para contarlos:

[out:json][timeout:60];
rel
[“name”=“Ciudad Autónoma de Buenos Aires”];
out geom;
map_to_area;
wrbuilding;
(._;>;);
out;

Felicitaciones por el logro! :clap::clap:

¿El proyecto es público? Intenté ingresar pero no me dejó. Igualmente la captura de pantalla se ve muy interesante.

¿Podrías compartir dos archivos en formato GeoJSON?:

  • Uno con una manzana que contenga los edificios que no se superponen con los de OSM.
  • Otro con los edificios de esa manzana que sí se superponen.

Me gustaría realizar algunas pruebas sobre la factibilidad de un conflation con los datos existentes.

Muchas gracias!

Ahhh, se ve que los proyectos son sólo por invitación! Ahí deberías poder acceder con el usuario ignaciolep.

Esta es una conversión rápida que hice del archivo de GeoJSON lines de la captura de pantalla a GeoJSON estándar, le faltan las alturas pero me imagino que te es más fácil para trabajar:

Y este sería el de los edificios que necesitarían una segunda ronda.

Creo que podríamos comparar las dos fuentes de datos y si el área de los edificios conflictivos se superpone en al menos un 85% podríamos crear un changefile que actualice la geometría. Una vez que estos edificios se adhieran a las mediciones proveídas por el gobierno, puedo correr estos mismos scripts de vuelta para recuperar los edificios que “encajen” ahora que habría menos edificios medidos de otras fuentes.