ES:Cat2Osm2

From OpenStreetMap Wiki
Jump to navigation Jump to search

IMPORTANTE: AÚN NO ESTÁN APROBADOS LOS RESULTADOS PARA EMPEZAR A IMPORTARLOS A OSM.',
ANTES DE IMPORTAR NINGÚN RESULTADO, CONTACTAR CON LOS ORGANIZADORES EN LA LISTA DE DISTRIBUCIÓN TALK-ES
y LEER LA GUÍA Limpieza y normalización de datos catastrales

VERSIÓN ÚLTIMA DE CAT2OSM2 = 2016-11-22


Cat2Osm2 es una herramienta que permite relacionar los Shapefiles del Catastro español con sus Registros y transformarlos en ficheros con formato OSM para su edición mediante JOSM y posterior inclusión en la base de datos de OpenStreetMap. Inicialmente CAT2OSM1 utilizaba un método para reutilizar vías (ways) compartidas el cual generaba una carga demasiado grande de relaciones. Es por ello que se optó por crear una segunda versión de la herramienta que simplificase los datos (a costa de perder algo de información) pero cuyo resultado fuese lo más óptimo posible para importar a OSM.


Preparación de los archivos necesarios para Cat2Osm2


IMPORTANTE: ANTES DE IMPORTAR NINGÚN RESULTADO, CONTACTAR CON LOS ORGANIZADORES EN LA LISTA DE DISTRIBUCIÓN TALK-ES
y LEER LA GUÍA DE IMPORTACIÓN DE DATOS DE CATASTRO

Comprobar que coincide con la versión más actual indicada arriba mediante el comando java -jar cat2osm2.jar -v


Desde el 02-03-2012 el programa SOLO funciona con máquinas virtuales versión 1.7 (Oracle JDK). Podeis conseguirla aquí

Para descargar los ficheros de catastro es necesario tener DNI-e, obtener el certificado e instalar los drivers del lector y dni-e. También es posible sin DNI-e mediante un certificado electrónico de usuario expedido por la FNMT instalado en el navegador.

Descargar datos de Catastro

  • Acceder a la sede electrónica de Catastro, por el apartado "Consulta y descarga masiva de datos".
Catastro1.png
  • Descarga de información alfanumérica (formato CAT) Descarga urbano y rústico de la población deseada, desde el enlace. Para más información de cómo descargar los archivos de la web del Catastro ver la ayuda.
Descarga catastro.png
  • Descarga de cartografía vectorial (formato Shapefile). Descarga los archivos urbano y rústico (sin Historia) de la población. En la ventana de descargas, después de seleccionar provincia y municipio, se debe pulsar el botón "Ver capas disponibles" y a continuación en "Marcar todas".
Seleccion shapefile catastro.png

Preparación de entorno

Una vez realizados los pasos anteriores, los cuatro archivos descargados deben estar el un mismo directorio, sin descomprimir y con los nombres tal cual se descargan de Catastro. Comprobar que los archivos tengan el nombre con la siguiente estructura:

Archivo Descripción
XX_XXX_UA_XXXX-XX-XX_SHF.zip (Geometrías Urbanas sin histórico.

Si se descargase con histórico, estamos en pruebas para filtrar geometrías por fechas)

XX_XXX_RA_XXXX-XX-XX_SHF.zip (Geometrías Rústicas sin histórico.

Si se descargase con histórico, estamos en pruebas para filtrar geometrías por fechas)

XX_XXX_U_XXXX-XX-XX.CAT.gz (Información alfanumérica Urbana de los registros catastrales)
XX_XXX_R_XXXX-XX-XX.CAT.gz (Información alfanumérica Rústica de los registros catastrales)

Descarga del programa Cat2Osm2

Descargar CAT2OSM2 en formato jar : CLICK PARA DESCARGAR DESDE GITHUB

Preparación en Mac OSX

  • cat2osm necesita OpenJDK 7 pero ya no se ofrece el instalador, tienes que hacer el build tú mismo, hay un repositorio en GitHub.

Si ejecutas el JOSM desde un archivo .app (descargado de [1] o empaquetado con el "Java Builder") necesitará el Java del sistema. Para que funcionen ambos sin problemas ir a "Aplicaciones/Utilidades/Preferencias de Java" y activar ambas versiones, poniendo OpenJDK 7 en primer lugar.

OSX 10.9 (Mavericks)

  • Cat2Osm2 funciona con la máquina virtual de Java. Puedes ver si la tienes en: "Librería/Java/JavaVirtualMachines/" ; si no es así se instala por defecto ejecutando el .dmg de la versión de jdk7 7u60 Build b14 (13 abr 2014). Si prefieres OpenJDK 7, tienes que hacer el build tú mismo, hay un repositorio en GitHub.

Guía de Uso de Cat2Osm2

Antes de empezar

Antes de empezar la exportación hay que plantearse 3 grandes preguntas:

¿Qué se puede importar y quién se encarga?

  • Cualquier persona interesada puede hacer la conversión de los datos de Catastro a OSM con cat2osm2 y la edición del resultado hasta que este SEA ÓPTIMO para subir a la base de datos. Sin embargo, para subir los datos hay que hacerlo con los usuarios específicos creados para la importación, que se pueden consultar aquí.
  • Elije una zona que conozcas y consulta si ya hay alguien trabajando en ella visitando la página de la provincia correspondiente desde la página general de resultados. Si esa zona tiene responsable habla con él, es lo más rápido...
  • Si no tiene responsable, apuntate en la wiki y a trabajar la zona empezando a crear la pagina (ejemplo: Aveinte)

¿Qué se va a importar?

Todo dependerá de la información que ya haya en OSM, que puede variar desde "casi todo" a "nada". En Ávila, por ejemplo, ya tienen bastantes geometrías de edificios y parcelas. Quizás allí lo que interese es importar -destinos, -portales y rústico, por ejemplo. En sitios donde no haya nada probablemente interese importar casi todo. Los datos que se pueden importar son:

  • Portales
  • Usos/Destinos de inmuebles (Cat2Osm2 permite exportar un archivo de usos/destinos como guía para AÑADIR A MANO esta información a edificios, ya que no hay forma automática de hacerlo)
  • Constru + parcelas urbanas
  • Parcelas y subparcelas rurales
  • Ejes (SOLO SE USARÁN COMO GUÍA, ya que tal y como se exportan no son subibles)
  • Todo lo anterior

Al final es el propio mapeador el que tiene que decidir qué va a importar. En caso de duda se puede consultar con otros mapeadores locales o con el responsable de la zona.

¿Cómo lo vamos a importar?

  • Se editará y subirá el resultado por manzanas, es decir SOLAMENTE UNA MANZANA en cada subida. Esto facilita la edición, resolución de conflictos, subida y en caso de errores tirar abajo de la base de datos de OSM únicamente una manzana y no todo el resultado.
  • El responsable de cada provincia tiene una CUENTA DE USUARIO con la que se deberá subir todo lo que esté en esa provincia. Contactar con él a través de (Spanish_Cadastre/results) o en la lista de distribución [2]


Contactar en la lista de distribución con el responsable de la zona en la que se encuentra la población a importar. (Spanish_Cadastre/results)
Abrir en JOSM una de las MANZANAS (cada manzana es un archivo separado) que ha sido exportada con Cat2Osm2.
Pasar el VALIDADOR de JOSM y arreglar todos los posibles fallos que pudiese tener la manzana (no debería haber apenas fallos, pero en catastro todo puede ser).
Descargar en JOSM a una NUEVA CAPA los datos que ya hay en el servidor de OpenStreetMap en esa manzana.
Comprobar qué geometrías/edificios... tendrán COLISIÓN con datos ya existentes en OSM y entre los dos, cuál de ellos se va a borrar. Decidir si los tags de la geometría a borrar deben pasarse a la que se va a quedar y borrar la innecesaria.
Una vez borrados los elementos que fuesen a colisionar, FUSIONAR ambas capas.
Volver a pasar el VALIDADOR y arreglar fallos que pudiesen aparecer.
Subir la parcela usando la cuenta creada para Cat2Osm (Spanish_Cadastre/results) para esa provincia.
Cerrar todas las capas, abrir otra parcela de las exportadas por Cat2Osm y repetir los pasos.

Una vez decididos estos puntos. Vamos al proceso:

Proceder con la conversión

En primer lugar COMPROBAR QUE LA VERSIÓN DE CAT2OSM2 ES LA MÁS RECIENTE (la última versión se indica al inicio de esta página)

 $java -jar cat2osm2.jar -v
  • Para ejecutar el cat2osm debemos ir a su ubicación en el Terminal y ejecutarlo indicando ruta donde encontrar esos 4 archivos necesarios
 $java -jar cat2osm2.jar RutaDirectorioConLos4Archivos
  • Es probable que nos quedemos sin memoria para java así que podemos asignarle la que queramos (ej. 2Gb) con:
 $java -Xmx2048m -jar cat2osm2.jar RutaDirectorioConLos4Archivos
  • Se pueden modificar algunos parámetros que antes se hacía mediante el archivo de configuración:

Nombre del resultado

$java -jar cat2osm2.jar RutaDirectorioConLos4Archivos -rslt MiPueblo

Exportar las edificaciones divididas por alturas (con los tags de building levels). Por defecto está a 1 (1 = dividir por alturas sobre suelo, 0 = no dividir por alturas, -1 = dividir por alturas sobre y bajo suelo).

$java -jar cat2osm2.jar RutaDirectorioConLos4Archivos -3d 1

Utilizar un único tipo de registros catastrales (11,14,15 o 17). Por defecto se utilizan todos

$java -jar cat2osm2.jar RutaDirectorioConLos4Archivos -reg 15 

(Solo para temas de debuggin, no para crear datos subibles!) Exportar los IDS que Cat2Osm maneja internamente de las geometrías. ESTO PODRÍA IMPLICAR QUE ALGUNAS GEOMETRÍAS CON LOS MISMOS TAGS NO SEAN UNIDAS.

$java -jar cat2osm2.jar RutaDirectorioConLos4Archivos -dbg 1 
  • Se puede utilizar un archivo solamente y ver el resultado. Esta opción además de los archivos que usa Cat2Osm2 en la ejecución normal, permite utilizar el archivo MASA, EJES y para ELEMTEX exporta todos los elementos textuales de Parajes y Comarcas; Información urbana y rústica; y Vegetación y Accidentes demográficos para superponer sobre el resultado correcto y etiquetar manualmente:
 $java -jar cat2osm2.jar RutaDirectorioConLos4Archivos -constru
 $java -jar cat2osm2.jar RutaDirectorioConLos4Archivos -ejes
 $java -jar cat2osm2.jar RutaDirectorioConLos4Archivos -elemlin 
 $java -jar cat2osm2.jar RutaDirectorioConLos4Archivos -elempun
 $java -jar cat2osm2.jar RutaDirectorioConLos4Archivos -elemtex
 $java -jar cat2osm2.jar RutaDirectorioConLos4Archivos -masa
 $java -jar cat2osm2.jar RutaDirectorioConLos4Archivos -parcela
 $java -jar cat2osm2.jar RutaDirectorioConLos4Archivos -subparce
  • Proceso adicional para los usos de bienes inmuebles que tal y como vienen los datos son imposibles de asignar a cada construcción. Únicamente se sabe en qué parcela están esos usos. El proceso generará un archivo con los tags de los usos de los bienes inmuebles de todas las construcciones de una parcela y los situará en el centroide de la misma. Este archivo se puede superponer sobre el resultado correcto y un usuario conocedor de la zona taggear estos usos a sus edificios si está seguro que esos tags le corresponden.
 $java -jar cat2osm2.jar RutaDirectorioConLos4Archivos -usos
  • Si falta alguna parte o archivo el programa se ejecuta igualmente pero sin añadir los datos de la parte faltante como es lógico.
  • Una vez con el archivo resultado, introducirlo en JOSM y arreglar los errores de validación que genera siguiendo las pautas que se explican a continuación.

Separación de los resultados

Los resultados se exportan en 3 carpetas distintas + una archivo global en el que se han unido todos los archivos exportados. Este archivo global se utiliza para visualizar de forma rápida los resultados en su conjunto y observar si existen errores o cosas que parezca que se han exportado mal.

Archivos
masas Contiene las masas urbanas y rústicas.

3 dígitos: masa completamente rústica.

4 dígitos: zona urbana en una masa rústica.

5 dígitos: masa completamente urbana.

ejes Contiene los ejes separados por nombre.

El archivo EjesSinNombre almacena los ejes que no tengan nombre.

elementos Contien los elementos lineales y puntuales que vienen separados de las masas

Elemlin : elementos lineales, líneas eléctricas, fuentes, elementos de ocio...

Elempun : elementos puntuales, árboles, farolas, postes...

Elemtex : elementos textuales, los portales en un principio son elementos textuales, si alguno no se ha podido asignar a parcela aparecerá aquí separado. (Mirar el apartado de [3])

Detalles a tener en cuenta/qué puedes estar haciendo mal

  • Si el resultado está desplazado unos pocos metros, es un problema de reproyección. Se han encontrado archivos antiguos de catastro que al reproyectar tenían un desplazamiento que GeoTools no es capaz de arreglar. Parece que en las versiones nuevas de los archivos de Catastro, esto viene arreglado.
  • Si se producen errores de Java comprobar que la Máquina Virtual de Java que se está usando sea la de SUN/ORACLE.

NOTA: este error no debería de producirse nunca más.

 $java -version

El comando anterior deberá devolver algo muy similar a:

$java version "1.7.0_17"
$Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
$Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)

Descripción de los errores y arreglos que indica el validador de JOSM


IMPORTANTE: ANTES DE SUBIR NINGÚN RESULTADO, CONTACTAR CON LOS ORGANIZADORES EN LA LISTA DE DISTRIBUCIÓN TALK-ES y LEER LA GUÍA DE IMPORTACIÓN DE DATOS DE CATASTRO

Comprobar que coincide con la versión más actual indicada arriba mediante el comando java -jar cat2osm2.jar -v

Existe un bugtracker donde consultar los problemas conocidos y los resueltos. Es un buen punto de inicio para consultar los problemas que puedas tener.

NOTA: antes de comenzar a editar no es mala idea generar una página en la wiki siguiendo el ejemplo de Ávila. Además, en dicha página se encuentran consejos útiles de como se está realizando dicho import.

Con Cat2Osm2 se ha intentado automatizar el máximo posible la traducción de datos de Catastro a formato OSM. Aún así, existen elementos que por la forma en la que están introducidos en la base de datos catastral, necesitan que un usuario manualmente arregle lo que el programa no es capaz de distinguir. Por eso, antes de subir el resultado hay que adaptar algunos elementos y solucionar los errores que JOSM detecta al pasar el validador. En caso de que haya alguno que no esté muy claro como solucionarlo, es preferible eliminar toda la figura que genera el error. Los errores suelen ser estos y por los siguientes motivos:

Errores a solucionar

Cuando ejecutamos cat2osm2, estos son los errores más comunes que pueden existir en los datos y la forma en que pueden solucionarse:

  • Edificio dentro de edificio: MUY IMPORTANTE arreglar esta. La simplifcación de geometrías de catastro hace que en ocasiones se elimine algún nodo alineado en una geometría y no en otra por lo que edificios y parcelas podrían quedar ligeramente solapados. ES OBLIGATORIO USAR EL VALIDADOR DE JOSM Y RECORRER TODAS LAS MASAS URBANAS Y RÚSTICAS ARREGLANDO ESTE ERROR.
  • FIXME = Comprobar si es sea parking público o al aire libre. En caso de serlo debería ser amenity= parking. : Catastro no diferencia entre parking público o garaje privado. Por ello habrá que comprobar los fixmes que se generan en este aspecto.
  • Arreglos en Cursos fluviales, Ríos, Canales, Acequias...: En catastro se almacenan los márgenes de estos elementos y el uso de la parcela como uso hidrográfico en lugar de su trazo. El programa es incapaz de crear una geometría lineal utilizando los márgenes ya que estos vienen a trazos. Se ha optado por indicar la parcela como waterway=riverbank en casos de hidrografía natural y landuse=reservoir en casos de hidrografía artificial pero dependiendo del caso puede ser mejor que el usuario cree un way entre los márgenes con los tags más adecuados ([4]).
  • Arreglos en bordes de carreteras y ríos: Catastro crea pequeñas parcelas bajo las carreteras, caminos y a veces ríos (generalmente con el tag landuse=farm), que no son útiles. Cat2Osm2 intenta borrar todas estas parcelas pero en caso de que alguna se exporte, es aconsejable que el usuario elimine esas parcelas innecesarias (que a veces incluso son dos, una a cada lado de la carretera o río) dejando esa pequeña parte de terreno vacío. Antes de borrar: Media:BorrarParcelasArcenes1.png Después de borrar: Media:BorrarParcelasArcenes2.png
  • Arreglos en Transformadores, piscinas y pozos: Los transformadores tienen una forma peculiar de ser representados en catastro. Se hace mediante un cuadrado con una equis en su interior.
  • Error "Nodo de un extremo de vía próximo a otro vial": Cuando hay elementos lineales que terminan cerca de un way, JOSM piensa que es un way que hemos dejado sin enlazar. Seguramente no sean errores pero por si acaso habrá que comprobarlos.
  • Error "Intersección entre vías multipolígono": Este error es sencillo pero a veces JOSM nos avisa de él aunque realmente no ocurra. Si dos polígonos interseccionan, comprobar si de verdad debería ser así y arreglarlo más o menos utilizando la capa de satélite.
  • Error tipo "La vía estilo área no ha sido cerrada": Error muy común sobre todo de subestaciones eléctricas y piscinas o zonas de agua. Estos elementos los han introducido como líneas independientes que no forman una única geometría. Por eso el programa a veces no es capaz de unir los ways que la forman. Si existe algún caso de estos habrá que ir uno por uno combinando sus vías (seleccionar las vías y pulsar tecla C). Es importante saber que puede haber algún caso en el que exista una zona de agua (natural=water) sobre una área idéntica ya marcada como piscina (leisure=swimming_pool). En ese caso elegir la capa de imágenes de satélite más apropiada. Para las subestaciones, en Catastro se dibujan en forma de cuadrado con una cruz en su interior o a veces como un pequeño edificio. Habrá que crear o reutilizar un nodo en el centro, asignarle el tag power=sub_station y eliminar toda la figura inicial salvo ese nodo.
  • Error "Nodos duplicados en dos vías no cerradas": Se dan casos de nodos que están duplicados y superpuestos. Para solucionarlo, seleccionarlos en JOSM (ya sea con Ctrl + click o manteniendo el ratón pulsado haciendo un rectángulo de selección sobre ambos) y luego unirlos (tecla M), en caso de que sean dos nodos, o uniendo el nodo a la vía (tecla J). De todos modos si no me equivoco la base de datos debería hacer la unión de dos nodos con la misma posición al subirlo a la base de datos.
  • Error "Tipo natural lámina de agua - Vía sin cerrar": Este error está ligado al de "Vía estilo área no ha sido cerrada". Al solucionar aquel se solucionará también éste.
  • Error "Lámina de agua utilizado para Piscina": En Catastro en algunos casos en el shapefile han indicado que es una zona de agua y luego en el archivo .cat se indica que es piscina. JOSM nos avisará de esta incongruencia y con las imágenes de satélite elegimos la más adecuada de las dos borrando la otra.
  • Error "Vía duplicada": Este error el programa lo arregla pero como consecuencia de arreglar advertencias podemos volver a crearlo nosotros. Para solucionarlo basta pulsar el botón "Corregir" del validador teniendo seleccionadas las vías duplicadas: Si se quiere hacer manualmente, hay que seleccionar los nodos extremos de esos dos ways idénticos, seleccionar también esos ways y combinar vías (tecla C).
  • FIXMEs: La traducción de los metadatos de los archivos shapefiles y los registros de catastro se ha hecho siguiendo la documentación existente. Aún así hay datos que no están documentados y que el cat2osm los resaltará con un fixme ya que ese código/uso de suelo/... no se encuentra documentado. Indicad en la página de Traduccion metadatos catastro a map features los fixmes encontrados y a poder ser una breve descripción de su situación o una teoría de por qué puede tener ese valor.

Ejes

Existen dos casos en los que puede ser interesante la utilización del archivo de ejes : poblaciones en las que no esté mapeada actualmente ninguna calle o muy pocas y poblaciones en las que se han trazado las calles sobre fotografía aérea pero faltan todos los nombres.

Para generar el archivo osm con las calles ejecutaremos:

java -jar cat2osm2.jar directorio4archivos -ejes

ESTE ARCHIVO, ES PREFERIBLE USARLO COMO ÚNICAMENTE COMO GUÍA YA QUE LOS NOMBRES DE LAS CALLES NO SUELEN SER CORRECTOS Y ESTAS NO ESTÁN DEL TODO BIEN CONECTADAS ENTRE SÍ.

Una vez obtenido el archivo EJES.osm lo abrimos en JOSM y encuadramos la zona en la que vayamos a trabajar. Creamos una capa nueva (Ctrl+N) y descargamos en ella los datos que existan actualmente en OSM (la llamaremos capa OSM). También activaremos la foto aérea de fondo que más nos convenga (bing, PNOA, ITACyL, etc). También puede ser muy útil añadir la capa WMS del Catastro (http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx?).

El primer paso ahora será mejorar los datos que ya hay en OSM (si hay alguno):

  • Perfilar vías.
  • Delimitación del casco urbano (landuse=residential).
  • Completar carreteras de acceso.
  • Pasar el validador y corregir lo que se pueda.

Una vez hecho todo lo anterior subir los cambios con nuestro usuario habitual.

A continuación activamos la capa EJES y comenzamos a trabajar con ella. Lo primero será borrar de esta capa lo que ya exista en OSM. Antes de borrar comprobar si el nombre de las vías está en OSM y si no copiarlo en la vía correspondiente de la capa OSM antes de borrar, con la etiqueta "source:name=catastro".

  • Corrección de nombres: hay que revisar todos los nombres, porque pueden tener diversos errores. Lo más fácil es seleccionar todas las vías (Ctrl+A) y verlas en la ventana "Selección". Los errores más comunes se indican a continuación; para corregir muchos de ellos se puede usar este script, pero aún así habrá que hacer una revisión uno a uno. Para las dudas con los nombres suele ser muy útil activar la capa WMS del Catastro (más arriba tenéis la dirección).
    • En catastro los nombres están introducidos sin tildes. Deben ponerse.
    • Sustituir las abreviaturas por la palabra completa. Ej.: Calle Ntra Sra de Guadalupe->Calle Nuestra Señora de Guadalupe
    • Artículos al final del nombre: ej. "Avenida Americas de las"->"Avenida de las Américas"
    • Nombre truncados: a veces el final de los nombres está cortado. Si no conocemos el nombre, se puede recurrir a la capa WMS del catastro que, curiosamente, no tiene los mismos nombres y suelen venir completos.
    • Falta de partículas: ej.: Plaza España->Plaza de España. Sólo las pondremos cuando estemos seguros.
    • En los municipios con varios núcleos de población suele aparecer el nombre de las pedanías entre paréntesis al final del nombre de las calles; hay que quitarlo. Según el número de calles puede compensar eliminarlos con un editor de texto plano.
    • En catastro figuran aún muchas calles con nombres franquistas. Dado que esos nombres se supone que en la actualidad deben haber cambiado, sustituir la etiqueta name por old_name.
    • Varias calles con el mismo nombre: es habitual que varias calles tengan el mismo nombre en catastro. En esos casos poner un "fixme=Verificar nombre" a las vías en duda, para que alguien lo revise en otro momento.
    • No es raro encontrarse con calles en las que los nombres difieren entre el servicio WMS y la cartografía vectorial de Catastro, en estos casos concretos podemos hacer un búsqueda por Internet para averiguar la denominación correcta.
  • Plazas: en catastro figura el contorno de las plazas. Unir las vías que lo forman y añadir area=yes
  • Combinar (tecla C) los distintos tramos de vía que formen parte de una misma calle y tengan las mismas propiedades. Normalmente se pueden conocer por el nombre, aunque a veces se ve evidente que vías con el mismo nombre no forman parte de la misma calle, por error en los datos de catastro.
  • Simplificar vías: las vías en catastro tienen un gran número de nodos redundantes (nodos intermedios entre dos tramos rectos que no aportan nada o nodos muy juntos) que se deben borrar antes de subir los datos. Se puede hacer a mano o usando la herramienta "Simplificar vías", aunque esto último puede eliminar más nodos de la cuenta.
  • Corregir geometría: en general las vías de catastro están bastante bien trazadas, pero conviene verificar sobre fotografía aérea, porque siempre hay alguna que se sale de madre. También hay que asegurarse de que todas las vías están conectadas entre si, ya que en algunos municipios quedan nodos duplicados, uno encima de otro pero sin unir (en JOSM parece como si un nodo tuviera sombra).
  • Añadir la etiqueta highway que corresponda, normalmente residential, pedestrian o footway.

Una vez hechos todos los arreglos anteriores, seleccionar las vías que se quieran importar y con Ctrl+Mayúsculas+M unirlas a la capa OSM previamente descargada y completada. A continuación borrarlas de la capa de ejes del catastro.

  • Conectar todas las vías importadas con las de la capa OSM. Siempre procurar mantener los elementos que ya están en la base de datos de OSM. Por ejemplo, para unir dos nodos arrastrando y pulsando Ctrl, arrastrar el nodo importado de catastro sobre el nodo que ya exista, en vez de al revés.
  • Pasar el validador y corregir los nuevos errores y advertencias que detecte.
  • Tras todo lo anterior el archivo estaría listo para subir a la base de datos. Cambiar nuestro usuario habitual por el usuario creado para la importación de catastro. Consultar aquí los usuarios de la importación y los correos para contactar con el responsable de cada provincia y solicitar la contraseña. Para cambiar el usuario ir a la configuración de JOSM (Editar->Preferencias o F12) y entrar en la pestaña "Configuración de conexión del servidor OSM". En origen de los datos se ha de introducir "Dirección General del Catastro, del Ministerio de Economía y Hacienda del Reino de España"


Resultado de la conversión

Enlaces y estado de las conversiones

Galería de imágenes

Ejemplo de la salida de cat2osm: Cat2Osm2 Adeaseca de Alba (Salamanca)

¿Qué metodología de trabajo puedo seguir?

Dependerá de como se maneje el usuario con las herramientas de edición que existen para trabajar con datos de OSM pero estas guías son un buen recurso para aprender a revisar y corregir datos de catastros transformados con cat2osm2.

Funcionamiento y descripción interna de cat2osm2


IMPORTANTE: ANTES DE SUBIR NINGÚN RESULTADO, CONTACTAR CON LOS ORGANIZADORES EN LA LISTA DE DISTRIBUCIÓN TALK-ES y LEER LA GUÍA DE IMPORTACIÓN DE DATOS DE CATASTRO

Comprobar que coincide con la versión más actual indicada arriba mediante el comando java -jar cat2osm.jar -v

El programa recibe el directorio donde encontrar los 4 archivos necesarios como argumento.

El programa primero extrae y reproyecta los archivos shapefile (utilizando GeoTools). Los archivos reproyectados se crean en la carpeta que se especifica para el resultado para así no sobreescribir los originales. Siguiente, lee los shapes de los archivos .shp reproyectados y carga en memoria las geometrías y algunos de los metadatos que se han creido necesarios dependiendo del tipo de shape (ver Manual descriptivo Shapefile).

Estas son las clases más representativas del código de Cat2Osm:

Cat2Osm: Clase principal de la aplicación donde están la mayoría de los métodos de la lógica.

Cat2OsmUtils: Clase que contiene las listas de nodos, ways y relations y utilidades para manejarlos y evitar repetidos.

ShapeParser: Clase Thread que llama a GeoTools, reproyecta, lee los nuevos archivos reproyectados, los carga en memoria y una vez finalizado intenta elimiar los archivos temporales (reproyectados) creados. Al ser hilos, se ejecutan de forma concurrente leyendo todos los shapefiles a la vez.

De todos los shapes se guarda su códidog de masa (código de manzana) o tipo de elemento (para elementos puntuales, lineales y textuales) o nombre de calle (para ejes) y se agrupan en función de esos códigos para que las operaciones solo se hagan entre los elementos de esos grupos. Gracias a este Divide y Vencerás se ha conseguido una gran mejora en el tiempo de procesado y de hecho la operación más costosa que es la de asignación de portales a parcelas, tarda tanto por no poder crear agrupaciones para esta operación. Los shapes se dividen en distintas clases las cuales facilitan su manejo y la diferenciación entre ellos:

Estructura de clases de los Shapes.

ShapeParcela: Estos shapes pueden ser uno o varios polígonos (Geometría MultiPolygon) y estos a su vez pueden tener "subpolígonos" para marcar "agujeros" (no suele ser lo habitual).

Shapefile de Parcelas.

ShapeSubparce: Iguales a los shapes de Parcela (Geometría MultiPolygon) pero solo se usa para suelos rústicos (en los urbanos viene vacío). De las subparcelas se almacena la referencia catastral de su parcela padre para luego crear la jerarquía, la clave de subparcela (con la cual luego se accede al archivo Rusubparcela) y el tipo de cultivo que se obtiene de ese archivo.

ShapeMasa (Solo se utilizan internamente ya que no aportan información adicional. De todos modos es posible utilizarlos con el comando para usar un shapefile aparte.): Representa las manzanas urbanas o polígonos rústicos (las parcelas y subparcelas quedarán en su interior). No se guarda ningún atributo de los que contiene el shapefile.

Shapefile de Masas.

ShapeConstru: Estos shapes pueden ser uno o varios polígonos (Geometría MultiPolygon) y estos a su vez pueden tener "subpolígonos" para marcar "agujeros". Para las construcciones, se guardan su referencia Catastral y el atributo Constru (ver página 15 Manual descriptivo Shapefile)

Shapefile de Construcciones.

ShapeElempun: Shapes para elementos puntuales (Geometría Point), para los cuales se guarda la coordenada (Coordinate) en la que se situan. Para estos shapes se almacena su TTGGSS. (ver páginas 17-23 Manual descriptivo Shapefile)

Shapefile de Elementos puntuales.

ShapeElemtex (En la ejecición normal solo se utilizan los que contienen números de portal. Los demás no se utilizan porque es son muy dificil de manejar los distintos textos. Estos es posible utilizarlos con el comando "-elemtex" para usar solo el shapefile aparte.): Shapes que en catastro se usan para escribir texto. Aunque los shapes vienen representados como pequeños segmentos (Geometría MultiLineString), se ha hecho que únicamente genere y guarde el punto central de esos segmentos. Para estos shapes se almacena su Rótulo y TTGGSS. (ver páginas 17-23 Manual descriptivo Shapefile) El Rótulo es el texto que tiene en Catastro y este en muchas ocasiones está separado en dos Elementos textuales, incompleto, separadas todas las letras por espacios... Existe un TTGGSS para rótulos de portales que si se utiliza en la ejecución normal. Estos rótulos no suelen estar sobre las parcelas a las que hacen referencia por lo que mediante un proceso que compara la más cercana, la más cercana con el mismo número de portal y la más cercana con el número par si es par o impar si es impar se ha añadido esa entrada a la geometría de su parcela. Cat2Osm tiene un parámetro con el cual sacar un archivo con todos los elementos textuales de Parajes y Comarcas, Información urbana y rústica y Vegetación y Accidentes demográficos para superponerlo sobre el resultado correcto y que un usuario se dedique a etiquetar esos elementos textuales a las geometrías si lo necesita. Para facilitar la asignación de etiquetas se puede definir en el fichero config la ruta de un fichero de reglas de etiquetado para elemtex (ver el fichero config/elemtex.rules de ejemplo). En ese caso, el programa asignará etiquetas en función de las reglas que cumpla el campo ROTULO. La capa también tiene elementos de CONSTRU mal asignados. El fichero de reglas puede contener también expresiones regulares sin etiquetas que sirven para filtrar los rótulos que las cumplan.

Shapefile de Elementos textuales Portales.
Shapefile de Elementos textuales todos.

ShapeElemlin: Son shapes de elementos lineales (Geometría MultiLineString). De los elementos lineales se guarda su TTGGSS. (ver páginas 17-23 Manual descriptivo Shapefile)

ShapeEjes: Son shapes de elementos lineales (Geometría MultiLineString). Dado que Catastro es una base de datos principalmente para visualizar los datos, las vías están como segmentos independientes, sin conectar entre si y con saltos grandes en el paso de zonas urbanas a rústicas. Solo vemos recomendable utilizarlo en casos en los que en una determinada población no haya carreteras importadas y se quiera hacer pero esto va a requerir muchísimo trabajo por parte del usuario para adecuar los datos que produzca el resultado. En este caso se guarda el número de Via y lo enlaza con el archivo Carvia para obtener el nombre de la Vía.

Shapefile de Ejes.

El programa internamente a diferencia de Cat2osm1 trabaja con las geometrías sin convertirlas a formato OSM, lo que posibilita usar las operaciones de la librería GeoTools para hacer los cálculos.

Las geometrias, se agrupan por su código de masa (código de manzana), por su tipo y código de elemento (elementos puntuales, textuales y lineales) o nombre de ejes (calles). Agrupados de esta manera se exportarán los resultados también. De esta forma conseguimos reducir el grupo de elementos entre los que hay que hacer operaciones de unión o crear la jerarquía.

Lee los registros de los dos archivos .CAT (Urbano y Rústico) y la añade a las parcelas los datos en función de su referencia catastral. En los registros, no tiene por qué venir información acerca de todas las geometrías y algunos registros no se pueden relacionar directamente con una referencia catastral o son para otro propósito (Ver Manual descriptivo Tipos de Registros de Catastro). La traducción de los datos del archivo .CAT a los tags que mas se aproximan en OSM se puede seguir aquí Traduccion_metadatos_catastro_a_map_features.

Después Cat2Osm2 intenta mover todos los números de portal, que vienen sueltos y sin forma directa de asignar a parcelas, a sus respectivas parcelas midiendo la distancia a la más cercana, la distancia a la que tenga su mismo número de portal y la distancia a la que tenga un número par en caso de que sea par o impar en el caso contrario. Entre estas 3 parcelas, elige la que más pinta tenga de ser la correcta.

Una vez agrupadas y asignados portales, el programa genera jerarquías de la siguiente manera:

Las parcelas urbanas, las relaciona con todas las construcciones que están en su interior y las masas (manzanas) rústicas con todas las parcelas y subparcelas que hay en su interior. Una vez hecho esto, crea la unión mas grande posible de todos los elementos que estén en su interior y compartan tags. Aquí juega un papel importante el parámetro -3d (por defecto a 1) en el programa. Este parámetro puesto a 0 hace que no se añadan los tags de distintas alturas a los edificios (building:levels=X) por lo que los edificios se unirán todos en uno. En cambio, si se usa -3d con valor distinto de 0, los edificios con distintas alturas tendrán distintos tags entre si y no serán unidos. Este resultado puede generar edificios muy partidos por alturas que podría ser más lioso que únicamente dejar un edificio. Si una construcción abarca toda la parcela, se eliminará la construcción y sus tags pasarán a la parcela para no tener dos geometrías superpuestas idénticas.

Con la jerarquía hecha, hay datos de las parcelas o masas que se transmiten a sus geometrías hijas (construcciones o subparcelas).

Una vez hecho esto, ya se pueden traducir las geometrías a formato OSM. Mediante una lista de nodos, ways y relations, se reutilizan los ids de los elementos creados para no tener repetidos.

Finalmente por cada elemento/masa/calle se escriben tres archivos temporales, uno de nodos, otro de vías y un tercero de relaciones para facilitar luego el unirlos en un archivo que contenga los tres. Al final del proceso todos estos archivos son unidos también en uno global, pero para ediciones y trabajar con ellos son mucho más recomendables los archivos partidos por elemento/masa/calle.

Ejemplo del resultado obtenido:

Ejemplo del resultado obtenido con cat2osm.

Guía de Hackeo de cat2osm2

Para compilar cat2osm2 se necesita lo siguiente:

  • Descargar el entorno de desarrollo Eclipse.

TODO cat2osm

  • Mediante el atributo CONSTRU de Constru.shp (página 15 Manual descriptivo Shapefile), estar atento a los nuevos avances que se hagan en OSM-3D. Hasta el momento se interpreta el atributo y únicamente se añaden los tags building:levels y building:min_levels para representación 3D.
  • La traducción está prácticamente lista. Ahora viene la fase de cómo fusionar con los datos existentes.

Programas de interés

FWTools.

qGIS.

Shape Viewer.

Notas