
En la actualidad resulta factible utilizar la información accesible públicamente con el fin de confeccionar maquetas digitales aproximadas de entornos urbanos que puedan servir de base a la hora de afrontar iniciativas de planeamiento e intervención. En este tutorial se muestra un posible procedimiento que a su vez se sirve de aplicaciones de uso libre.

En primer lugar, se ha de descargar la información asociada al ámbito de estudio, que aquí centraremos en el área urbana de A Coruña a modo de ejemplo. Accedemos a la Sede Electrónica del Catastro, que, a través del mapa principal, ofrece un buscador de inmuebles y un visor cartográfico. Una vez localizada la zona en cuestión, el botón “selección de parcelas – descargas”, localizado en la barra de iconos inferior, permite afrontar la selección, bien pulsando sobre las propias parcelas o bien definiendo una geometría (polígono) envolvente, para su posterior descarga en los formatos xml, dxf, gml, o u-gml.

El archivo de intercambio dxf resulta legible por AutoCAD, de AutoDesk®, y otras aplicaciones de diseño asistido entre las que se encuentra LibreCAD, de código abierto. Incluye los contornos asociados a la selección, las referencias catastrales, y las alturas de las construcciones mediante una codificación que utiliza números romanos. No obstante, se trata de un trazado realizado íntegramente en 2D.

Para obtener una información más exhaustiva, que podamos tratar con herramientas GIS (Geographic Information System), debemos dirigirnos a la opción de “Difusión de datos catastrales”, y en la nueva ventana, pulsar sobre “Descarga de cartografía vectorial (formato Shapefile)”. Una vez aceptado el tratamiento de datos personales, se ha de acceder mediante certificado electrónico, DNI electrónico, o bien utilizando una Cl@ve PIN. En la ventana emergente seleccionamos “A Coruña”, tanto en Provincia como en Municipio, optamos por “Urbana sin historia” como Tipología, y pulsamos sobre el botón “Ver capas disponibles”. A continuación, marcamos tres opciones: subparcelas urbanas que representan los volúmenes edificados dentro de una parcela, elementos cartográficos lineales, y elementos cartográficos puntuales (asociadas, respectivamente, a las designaciones CONSTRU, ELEMLIN y ELEMPUN). Se ha de pulsar sobre «Descargar las capas”, aceptar las condiciones generales de la licencia, y “Realizar descarga”. En la parte inferior de la página con nuestros datos personales figura la opción “Descargar producto”, que finalmente facilita un archivo comprimido de tipo ZIP con la documentación seleccionada. Este tipo de archivos puede descomprimirse con diversas herramientas, entre ellas la aplicación de código abierto 7-Zip.


El Centro de Descargas del Centro Nacional de Información Geográfica ofrece abundante información de forma pública. En este caso seleccionaremos “Modelos Digitales de Elevaciones” y dentro de ellos el “Modelo Digital del Terreno – MDT05”, con paso de malla de 5 m, icono “Por mapa”. Cerramos la ventana central de ayuda, seleccionamos búsqueda por “División administrativa”, en el desplegable optamos por “Municipio” y escribimos inmediatamente debajo A Coruña. De los 4 ficheros localizados, pulsamos “Añadir” en los dos correspondientes al huso geográfico HU29, nuevamente sobre el botón “Cesta de descargas”, y finalmente sobre “Iniciar descarga”.

Para la gestión de las capas previamente descargadas recurriremos al sistema de información geográfica libre y de código abierto QGIS. La plataforma, en la sección “Documentación”, dispone de abundante ayuda, accesible tanto en formato web como en pdf con marcadores. Asimismo, existen versiones portables que facilitan su utilzación sin necesidad de una instalación previa. Antes de iniciar la aplicación, resulta conveniente crear una carpeta de trabajo en la que situaremos toda la documentación asociada y donde alojaremos el archivo de proyecto.

Para incorporar la documentación catastral, seguimos a través del menú superior la secuencia de opciones “Capa > Añadir capa > Añadir capa vectorial” (también cabe utilizar la combinación Ctrl+May+V). En la ventana emergente, pulsamos sobre el botón de exploración (…) situado en el recuadro “Fuente”, localizamos el archivo “CONSTRU.ZIP”, y elegimos “Añadir”. Éste contiene dos archivos principales (dbf y shp), que podemos importar conjuntamente, si bien en capas separadas que podremos renombrar o desactivar en cualquier momento. Asimismo, resultará factible modicar su simbología y criterios de representación. Para importar el contenido de las capas ELEMLIN Y ELEMPUN se opera según el mismo procedimiento. En la parte inferior izquierda de la pantalla se observa el panel de capas, donde se pueden reordenar o modificar a criterio del técnico.

En cambio, para importar las capas del Modelo Digital del Terreno, se selecciona “Capa > Añadir capa > Añadir capa ráster” (o bien Crtl+May+R), mediante la cual se importan los dos archivos PNOA_MDT05 previamente descagados. Tras esta operación puede no observarse ningún cambio en la pantalla, derivado de que las capas vectoriales y las ráster no obedecen al mismo SRC (Sistema de Referencia de Coordenadas). Esta cuestión se puede comprobar pulsando con el botón derecho sobre el nombre de una capa y eligiendo la opción “Establecer SRC de la capa”. Se observa que las primeras están referidas a ETRS89 / UTM zone 29N y las segundas a WGS 84. Estableciendo en las ráster el primer SCR ya se visualizan todas las capas superpuestas correctamente.

El ámbito urbano de A Coruña se extiende por dos capas ráster adyacentes. Si se desea reducir ambas a una única cabe utilizar el comando “Ráster > Miscelánea > Combinar”. En la ventana emergente es necesario seleccionar las dos capas de entrada. Asimismo, es aconsejable definir un archivo para guardar el combinado (en el propio directorio de trabajo), pues en caso contrario su contenido sólo estará disponible temporalmente.

Al terminar la anterior operación ya disonemos de una capa única con el Modelo Digital del Terreno (pueden desactivarse las dos originales). No obstante, su contenido excede ampliamente el ámbito urbano, de modo que se puede proceder a su recorte mediante la secuencia: “Ráster > Extracción > Cortar ráster por extensión”. En la ventana emergente pulsamos sobre el botón de exploración del recuadro “Extensión de corte”, elegimos “Usar la extensión de la capa”, y seleccionamos la correspondiente a las vías urbanas (ELEMLIN). También aquí resulta adecuado guardar el resultado en un archivo, dentro de la carpeta de proyecto.


Para realzar el ráster anterior, se puede crear un mapa de sombras: “Ráster > Análisis > Mapa de Sombras (Hillshade)”, siendo la capa de entrada la obtenida con el recorte previo. Como en las operaciones previas, conviene guardar el resultado en el propio directorio de trabajo.

Mediante una doble pulsación sobre el nombre de una capa se puede acceder a sus propiedades. En la correspondiente al mapa de sombras previamente obtenido, y sobre la pestaña “Transparencia”, adoptamos una “Opacidad global” del orden del 70%.


Por otra parte, en las propiedades de la capa que contiene el ráster recortado, nos dirigimos a la pestaña “Simbología”. En “Tipo de renderización” se elige “Pseudocolor monobanda”, y en “Rampa de color”, por ejemplo “Greens”. En la misma ventana es posible variar los valores correspondientes a cada escalón, así como los colores asociados (en la imagen las cotas asociadas al nivel del mar se han representado en azul).

Las capas vectoriales incorporan información en forma de tablas (puede consultarse la especificación completa del formato en la documentación de ayuda del propio Catastro).

Para acceder a su contenido, se sigue la secuencia “Capa > Abrir tabla de atributos” (equivalente a una pulsación de F6). En la imagen se muestra el contenido de la capa CONSTRU, que incluye, entre otros datos, una columna de igual denominación, con las alturas construidas en cada fracción del parcelario expresadas en números romanos combinados con diversos códigos (ver Anexo I en el manual del formato shapefile). Esta designación sin duda complica su utilización de cara a obtener un modelo volumétrico elemental del ámbito urbano. En este punto, podemos recurrir a un script desarrollado a partir del código creado por Benito M. Zaragozí. El script, desarrollado en python, se puede descargar a través de este enlace.

Para utilizarlo, en la misma tabla de atributos pulsamos sobre el icono “Abrir calculadora de campos” (equivalente a Ctrl+M), y elegimos la pestaña “Editor de funciones”. El icono “+” permite definir el nombre de la nueva función, que, adoptando el criterio de su autor, será “get_alturas”. Se copia el contenido completo del script (incluido en el doc ya descargado) y se pega en la ventana central de código (previo borrado del contenido anterior), para pulsar a continuación “Guardar y cargar funciones”. En la parte superior, se define el “Nombre del campo de salida” como “altura”, y se conserva su tipo (número entero) y su longitud por defecto (10).

Sobre la misma ventana (calculadora de campos) se abre la pestaña “Expresión”, en cuyo recuadro central se ha de haber incorporado la nueva función dentro del término “Custom”. Por último, en la ventana izquierda se escribe get_alturas(“CONSTRU”), y se pulsa sobre el botón “Aceptar”. Si todos los pasos previos se han ejecutado correcamente, la función actúa sobre la columna CONSTRU, multiplicando el número de plantas obtenidas sobre rasante por un valor promedio de 3 metros. Al término del proceso se puede consultar el contenido de la nueva columna (última en la tabla de atributos). Cabe indicar que el contenido de la misma se perderá al abandonar la aplicación, de forma que, caso de volver a abri el proyecto, se ha de ejecutar nuevamente el script para recuperar los valores de altura.

A partir de los atributos contenidos en la tabla se pueden clasificar las edificaciones con arreglo a diversos criterios. Por ejemplo, vamos a seleccionar las construcciones que tengan una altura superior a 23 m (es decir, 8 o más plantas). Para ello, iniciamos la secuencia “Edición > Seleccionar > Seleccionar objetos por expresión” (o Ctrl+F3), escribimos en el recuadro izquierdo “altura”>23, y pulsamos sobre “Seleccionar objetos espaciales”.

Para copiar la selección en una nueva capa, sobre la que poder aplicar diferentes criterios de representación, activamos “Edición > Copiar objetos espaciales” y a continuación “Edición > Pegar objetos como > Nueva capa vectorial”. En la ventana emergente debemos definir un nombre de archivo (en este ejemplo hemos optado por CONSTRU_8P), y nos aseguramos de que se encuentre marcada la casilla “Añadir archivo guardado al mapa” antes de pulsar “Aceptar”.

En la imagen se observa que la nueva capa se presenta superpuesta a la anterior, y por tanto reseña las construcciones previamente seleccionadas.

Para transferir el resultado disponemos de diversas alternativas. En primer lugar, la secuencia “Proyecto > Importar/Exportar” facilita tres posibilidades: “Exportar mapa a imagen”, “Exportar mapa a PDF”, y “Exportar proyecto a DXF”. Asmismo, la opción “Proyecto > Nueva composición de impresión” permite diseñar formatos de salida que incluyan, entre otras muchas cuestiones, leyenda y escala.

De cara a explorar las siguientes funcionalidades, vamos a acotar el ámbito de análisis, por ejemplo, a las edificaciones inscritas en la Primera Fase del Polígono de Elviña, entre las calles Salvador de Madariaga y Camilo José Cela. Esto implica efectuar operaciones de recorte, tanto sobre las capas vectoriales como las de tipo ráster. Abordamos estas cuestiones sobre una copia del proyecto anterior, en la que primeramente suprimimos las capas innecesarias. Como máscara de recorte utilizaremos una nueva capa, que creamos con la secuencia “Capa > Crear capa > Nueva capa de archivo shape”. En “Nombre de archivo”, y con ayuda del botón de exploración (…) definimos un archivo “recorte” situado en el directorio de trabajo. Asimismo seleccionamos el SRC del proyecto y, en tipo de geometría, optamos por “Polígono”. Tras pulsar el botón “Aceptar”, activamos el icono “Conmutar edición” (con forma de lápiz), y pulsamos sobe el icono “Añadir polígono” (situado a la derecha del anterior). En este momento podemos definir los vértices del polígono de recorte, digitalizándolos sobre el propio plano, tarea que se abandona con una pulsación del botón derecho del ratón. Finalmente, con el botón “Conmutar edición” finalizamos el proceso.

Por defecto, el área seleccionada se muestra con un relleno opaco. Si deseamos desactivarlo (dejando únicamente visible su perímetro), debemos ejecutar “Capa > Propiedades de la capa”, pulsar sobre “Relleno sencillo”, y en “Estilo de relleno” elegir “Sin relleno”.

Para cortar las capas vectoriales, se sigue “Vectorial > Herramientas de geoproceso > Cortar”. En la ventana emergente, la capa de entrada es la que se pretende recortar (“CONSTRU” en primer lugar, y posteriormente “ELEMLIN”), la de superposición es la máscara (“recorte”), y, por último, en “Cortado” crearemos un archivo de nombre “CONSTRU_recorte” en la carpeta de trabajo (“ELEMLIN_recorte” para la segunda capa vectorial). La casilla “Abrir el archivo de salida después de ejecutar el algoritmo” debe estar marcada para incorporar la selección como una nueva capa

En el caso de querer seccionar una capa de tipo ráster, como la que contiene el Modelo Digital del Terreno, la operación es similar, si bien con la secuencia “Ráster > Extracción > Cortar ráster por capa de máscara”. El proceso es casi idéntico: la capa de entrada es la que se pretende recortar, la de máscara es la que contiene el perímetro de recorte, se ajustan los SRC a los parámetros de proyecto, en “Cortado (máscara)” se define el archivo en que se guardará la información resultante (nos aseguramos que se sitúe dentro del directorio de trabajo), y se matiene activa la casilla “Abrir el archivo de salida después de ejecutar el algorimo”.
En todo caso, también se puede optar por situarse en la capa de construcciones, ya recortada, y activar “Ver > Zoom a la capa”. Tras esta operación, que amplía el ámbito de estudio al máximo, cabe recortar las capas ráster con arreglo a la extensión de visualización con la secuencia “Ráster > Extracción > Cortar ráster por extensión”.

En lo que sigue se va a afrontar la visualización tridimensional de la fracción de tejido urbano previamente extraída de la información catastral. En primer lugar, mediante “Capa > Abrir tabla de atributos”, se comprueba si se mantiene el contenido de la columna “altura”. Caso de no ser así, pulsamos nuevamente sobre el icono “Abrir calculadora de campos”, cargamos la función “get_cadastre_building_floors” en el “Editor de funciones”, y en “Expresión” introducimos “get_cadastre_building_floors(«CONSTRU») * 3” (como ya se hizo anteriormente) a fin de actualizar dicha columna.


La primera forma de obtener una imagen 3D del conjunto es abrir “Capa > Propiedades de capa”, en la pestaña “Vista 3D” desplegar “Símbolo único”, y asignar como “Extrusión” la capa “altura”. Para apreciar los cambios, debemos activar “Ver > Nueva vista de mapa 3D”, con lo que se superpone una nueva ventana cuya visualización se puede alterar con las habituales combinaciones de ratón y teclado: acercamiento mediante la rueda central, encuadre manteniendo pulsado el botón izquierdo, y dos alternativas de rotación, con May o bien Ctrl, mientras se arrastra el ratón con el botón izquierdo igualmente pulsado. En la nueva ventana, “Mapa 3D 1”, el botón “Configurar” permite afrontar algunos cambios, siendo el más interesante el de asignar una capa ráster a la representación del terreno. No obstante, esta opción del programa resulta muy limitada, en la medida en que sólo admite guardar el resultado en formato de imagen.

Si por el contrario se desea obtener un modelo 3D con el objeto de poder manipularlo en otro tipo de aplicaciones, resulta más conveniente utilizar el plugin Qgis2threejs, de Minoru Akagi. Para incorporarlo al programa, utilizamos “Complementos > Administrar e instalar complementos”, escribimos parte del nombre en el recuadro de búsqueda, lo seleccionamos en la ventana central, y pulsamos “Instalar complemento”. A partir de este instante, la nueva función estará accesible a través del menú “Web > Qgis2threejs > Qgis2threejs Exporter”.

El plugin superpone una nueva ventana, compuesta por un árbol de capas y un previsualizador. En la sección “Layers” asignamos al DEM (Modelo Digital de Elevaciones) la capa ráster, en “Line” activamos la capa vectorial de elementos lineales, y en “Polygon” la relativa a las construcciones. Pulsando sobre la última con el botón derecho, se puede activar la sección “Properties”. En la misma, “Object type” debe estar en modo “Extrude”, “Z coordinate” asociada a la capa ráster, y, dentro de “Style”, “Height > Expression” debe vincularse (mediante el desplegable) a la columna de datos “altura”. Para activar cada modificación en el previsualizador, basta pulsar “Aplicar”. En el menú principal del plugin, la secuencia “File > Save Scene As” permite guardar el resultado como imagen (PNG), o bien como modelo 3D de tipo GLTF. Esta última opción resulta legible por aplicaciones como 3d Viewer y EMB3D, y también manipulable con ayuda del software de infografía 3D y código abierto Blender.

La imagen muestra el modelo tridimensional importado en la versión portable de Blender, desde la que es también posible exportarlo a otros formatos (dae, abc, fbx, ply, obj, x3d, stl) con el fin de poder trabajar con determinadas aplicaciones. En nuestro ejemplo, se ha utilizado el formato dae para transferir el modelo a Sketchup, con el fin de poder analizar los mapas de sombra de cara a un mejor diseño de los ámbitos de carácter público.

Una vez importado a Sketchup, se ha ejecutado “Suavizar aristas” (marcando tanto “Alisar normales” como “Suavizar coplanarias”, con un ángulo entre normales de 20°), de cara a mejorar la representación del terreno. Pulsando con el botón derecho sobre el modelo, se ha activado también “Editar componente” a fin de poder organizar el contenido en capas y poder trabajar sobre sus distintos elementos constitutivos de forma independiente.
En este punto es necesario ajustar las dimensiones globales del modelo, ya que se han modificado con las transformaciones intermedias efectuadas mediante Qgis2threejs y Blender. Para ello descargamos del Catastro la zona en cuestión en formato dxf (como ya se ha descrito al principio del tutorial), y medimos la dimensión real en planta de una de las construcciones mayores. Esta distancia se comprueba también en el modelo de Sketchup con ayuda de la herramienta “Acotación”. La diferencia entre ambos valores nos permite calcular el factor de escala a aplicar.

Para disponer de las sombras reales que las construcciones arrojan sobre las plazas interiores es neceario geolocalizar convenientemente el modelo. Con este fin, seguimos la secuencia “Ventana > Información del modelo > Geolocalización > Añadir localización”. En la ventana emergente, escribimos la dirección del emplazamiento en la celda superior y pulsamos “Buscar”. A continuación, se define el zoom y se encuadra el emplazamiento en la ventana gráfica (mapa u ortofoto), y se pulsa “Seleccionar región” para ajustar la fracción que se va a superponer al modelo. Por último, el botón “Importar” traslada la imagen de dicho ámbito a la aplicación, generando dos nuevas capas: “Location Snapshot”, con la imagen proyectada sobre el plano base, y “Location Terrain”, respetando cotas y pendientes.

El siguiente paso es mover (y en su caso rotar) el modelo hasta que coincida significativamente con la imagen proporcionada por Google.

Una vez que el modelo se ha geolocalizado convenientemente, ya es posible obtener las sombras arrojadas en cualquier instante. En la imagen se han obtenido para las 12:00 horas del día 10 de octubre.

En esta última imagen se muestra una fracción significativa de la Ciudad Vieja de A Coruña. Para facilitar su manipulación, la topografía y las construcciones se han exportado desde Blender a dos archivos dae independientes. En Sketchup se han importado en dos fases sucesivas, lo que simplifica la organización del contenido en capas, y la posible asignación de materiales. Para situar las aristas que definen bordes de vías y ámbitos de ajardinamiento, éstas se han exportado como dxf dessde QGIS. En AutoCAD se han desplazado verticalmente para situarlas en un plano muy por encima de la topografía. Finalmente, se han proyectado sobre esta bajo Sketchup, con ayuda de la herramienta Proyectar (Herramientas > Caja de arena > Proyectar).
Como complemento a todo lo anterior, añadimos a continuación unas breves indicaciones sobre la importación de contenidos desde bases de datos accesibles como OpenStreetMap y Google. En primer lugar, cabe recurrir a un plugin muy potente, OpenLayers, sobre cuya integración y uso bajo QGIS se pueden consultar diversos tutoriales (mappingGIS). Con todo, aquí describiremos una forma de utilizar estos recursos con las herramientas ya residentes en la propia aplicación.

Comenzando con OpenStreetMap, y una vez abierto su visor en el navegador deberemos situarnos sobre el área que se pretenda descargar. Al pulsar sobre el botón superior “Exportar”, se abre una cortina que indica las coordenadas actuales. Bajo las mismas se ofrece también la opción que permite seleccionar manualmente un ámbito rectangular diferente. Pulsando sobre el botón “Exportar” localizadao en la citada cortina, se genera el archivo map.osm con la información del área seleccionada. Si el sistema en este punto presenta un mensaje de error (You requested too many nodes …) se recomienda acotar un ámbito geográfico menor, o bien acudir directamente a la web Geofabrik, que contiene extractos actualizados regularmente, ordenados por continentes, países y, en su caso, regiones.

Desde QGIS, el archivo osm se importa mediante las opciones “Capa > Añadir capa > Añadir capa vectorial”. Asimismo, las capas recuperadas pueden ser exportadas a formato shapefile mediante “Capa > Guardar como”, seleccionando “Archivo shape de ESRI”.

En el caso de Google es necesario establecer la conexión con alguna de las direcciones (Tile Map Service) en las que Google Maps Layer almacena la información:
Google Maps: https://mt1.google.com/vt/lyrs=r&x={x}&y={y}&z={z}
Google Satellite: http://www.google.cn/maps/vt?lyrs=s@189&gl=cn&x={x}&y={y}&z={z}
Google Hybrid: https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}
Google Terrain: https://mt1.google.com/vt/lyrs=t&x={x}&y={y}&z={z}
Google Traffic: https://mt1.google.com/vt?lyrs=h@159000000,traffic|seconds_into_week:-1&style=3&x={x}&y={y}&z={z}
Google Roads: https://mt1.google.com/vt/lyrs=h&x={x}&y={y}&z={z}

Para añadir alguno de estos servicios, debemos dirigirnos al panel “Navegador” de QGIS, localizar “XYZ Tiles”, pulsar con el botón derecho y activar “Conexión nueva”. En la ventana emergente, proporcionamos un nombre (por ejemplo, google_satellite) y en URL copiamos el TMS correspondiente del listado anterior. Una vez ajustado el nivel de zoom máximo (en el ejemplo se ha definido como 25), pulsamos “Aceptar”. Por último, para activar su visualización bajo QGIS debemos hacer una doble pulsación sobre el servicio que hemos incorporado a “XYZ Tiles”, con lo cual se transfiere también al panel “Capas”.

Si se desea recortar un ámbito geográfico específico, la capa importada debe transformarse, mediante la secuencia “Herramientas ráster > Convertir mapa a ráster” que se encuentra en el panel “Caja de herramientas de Procesos”. En la ventana emergente, definimos la extensión mínima a renderizar, para lo cual se admiten tres posibilidades: usar la extensión del lienzo, seleccionar extensión sobre el lienzo, y usar la extensión de la capa … (que habríamos creado previamente con un polígono de recorte siguiendo el procedimiento ya descrito). La cifra que indiquemos en “Unidades de mapa por píxel” permitirá ajustar la resolución de la imagen de salida. La “Capa única a renderizar” es la obtenida de Google, mientras que “Capa de salida” permite guardar el resultado en un archivo. Por último “Abrir el archivo de salida después de ejecutar el algoritmo” incorpora el resultado como una nueva capa.
