Formación PostGIS  para gestión medioambiental

marti.pericay@geomatico.es

www.geomatico.es

TRAGSA
24/10/2023

Presentación

  • Sobre la formación
  • Quiénes somos
  • Temario

Calendario

  • Jornada 1 (24/10/2023): Introducción SQL

  • Jornada 2 (26/10/2023): Instalación y uso

  • Jornada 3 (30/10/2023): Gestión de datos

  • Jornada 4 (31/10/2023): Funciones espaciales

  • Jornada 5 (06/11/2023): Conceptos avanzados

  • Jornada 6 (07/11/2023): Administración + práctica

Bloque 1: introducción a PostGIS y gestión de datos


1.1 Introducción
1.1.1 Teoría de base de datos
1.1.2 Conceptos básicos de SQL


 

Bloque 1: introducción a PostGIS y gestión de datos

 

1.2 Instalación y configuración
1.2.1 PostgreSQL
1.2.2 PostGIS
1.2.3 GDAL/OGR
1.2.4 Open Source
1.2.5 Instalación
1.2.6 Crear BDD: psql
1.2.6 postgresql.conf y pg_hba.conf
 

Bloque 1: introducción a PostGIS y gestión de datos

 

1.3 Uso de PostgreSQL/PostGIS

1.3.1 pgAdmin
1.3.2 Otros clientes: QGIS, DBeaver
1.3.3 Tipos y conceptos básicos PostgreSQL
1.3.4 PostGIS: geometrías, WKT, WKB
1.3.5 PostGIS: sistemas de coordenadas

1.4 Gestión de datos
1.4.1 Importación vía GDAL/OGR
1.4.2 Introducción a QGIS
1.4.3 Importación y exportación vía DBManager
1.5 Caso práctico aplicado a gestión medioambiental/forestal (1 hora)

¿Quiénes somos?

1.1.1 Teoría de base de datos

Para qué una base de datos???

 

  • Limitaciones en la cantidad de datos que era posible almacenar
  • Rendimiento de lectura de estos archivos
  • Bloqueo de los archivos con el acceso por usuario
  • Imposibilidad de gestionar el versionado de manera sencilla

 

Limitaciones archivos

 

  • Manejo de grandes volúmenes de datos
  • Complejidad en la extracción de estos datos
  • Concurrencia en el acceso a datos, accesos simultáneos por varios usuarios

 

Para qué una base de datos???

 

  • Una gran masa de datos relacionados entre si pertenecientes a un mismo contexto
  • Colección estructurada almacenada en un sistema informático

 

Qué es una BDD?

Aplicación web

Arquitecturas web

BDD se encarga del almacenamiento propiamente dicho y el SGBD de la manipulación de la información contenida en la base de datos.

 

Un SGBD contiene varias bases de datos (BDD)

 

Pero se suele usar "BDD" para ambos

Qué es un SGBD ?

  • Recogida
  • Almacenamiento
  • Procesamiento
  • Recuperación

Funciones de una BDD

La atomicidad o integridad describe la propiedad de “todo o nada” de los SGBD, por la que todas las fases de una transacción deben finalizarse por completo y en el orden correcto para que esta sea válida.

Integridad (ACID)

La consistencia implica que las transacciones completadas no afecten la estabilidad de la base de datos, lo que requiere supervisarlas constantemente.

Consistencia (ACID)

El aislamiento es la propiedad que asegura que las transacciones no obstaculicen a las demás, de lo que, por lo general, se encargan algunas funciones de bloqueo.

Aislamiento (ACID)

La permanencia implica que todos los datos queden almacenados permanentemente en el SGBD, no solo después de una transacción correcta, sino también o especialmente en caso de error o caída del sistema. Los registros de las transacciones, donde quedan anotados todos los procesos del SGBD, son fundamentales para garantizar la permanencia.

Permanencia (ACID)

  • Relacionales (SQL)
  • No-relacionales (No-SQL)
  • Otros (jerárquicos, de red ...)

Tipos de Modelos de datos

Bases de datos relacionales

Bases de datos no-relacionales

Objetivos BDD relacionales

  • Abstracción de la información
  • Independencia
  • Redundancia mínima
  • Consistencia
  • Seguridad
  • Integridad
  • Respaldo y recuperación
  • Control de la concurrencia, versionado
  • Tiempo de respuesta

Modelo de datos relacional

  • Tablas
  • Columnas
  • Registros

Hoja de cálculo?????

Modelo de datos relacional

  • Tablas
  • Columnas
  • Registros
  • Relaciones

Modelo de datos relacional

  • Tablas
  • Columnas
  • Registros
  • Relaciones

 

https://www.db-fiddle.com

Modelo de datos relacional

Ejemplos de datos

  • El área de un parque natural
  • El nombre de un parque natural
  • La dirección de una oficina de correos
  • El número de empleados de la oficina de correos
  • El nombre de un accidente geográfico
  • Las coordenadas de un accidente geográfico

Práctica

Defina la estructura de una tabla para los Parques Naturales. Para ello detecte la información necesaria susceptible de ser almacenada y estructúrela en una tabla definiendo el nombre de los campos.

Normalización de BDD

  • Evitar la redundancia de los datos.
  • Evitar problemas de actualización de los datos en las tablas.
  • Proteger la integridad de los datos.

Modelización de BDD

  • Encontrar entidades (conjuntos de entidades)
  • Identificar atributos de las entidades
  • Buscar identificadores
  • Especificar las relaciones y cardinalidades
  • Identificar entidades débiles
  • Especializar y generalizar entidades donde sea posible

La integridad referencial es un sistema compuesto por reglas que permiten la garantía de las relaciones entre las filas de la tabla relacionadas para que sean válidas y que estas relaciones no se eliminen ni se modifiquen por error.

Integridad referencial

1.1.2 Conceptos básicos de SQL

SQL = Structured Query Language

Ejemplo SQL

SELECT *
FROM parcelas

devuelve un listado de registros (filas y columnas)

Ejemplo SQL

Ejemplo SQL

SELECT id, nombre, tipo 
FROM parcelas
WHERE tipo = 'R'

devuelve un listado de registros (filas y columnas)

El punto y coma

SELECT *
FROM parcelas;

SELECT id
FROM parcelas;

El punto y coma ; separa instrucciones SQL

SQL para todos los SGBD relacionales? PostgreSQL, Oracle, MySQL ....?

 

SÍ y NO
https://es.wikipedia.org/wiki/SQL

Oracle vs PostgreSQL

SELECT id FROM (SELECT * FROM tabla1) -- no funciona en PostgreSQL!

SELECT id FROM (SELECT * FROM tabla1) AS foo

Jugar con SQL en la nube

  • Recogida
  • Almacenamiento
  • Procesamiento
  • Recuperación

Funciones de una BDD

  • DDL Data Definition Language
  • DML Data Manipulation Language
  • DCL Data Control Language

Comandos SQL

CREATE Utilizado para crear nuevas tablas, campos e índices
DROP Empleado para eliminar tablas e índices
ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos.

DDL Data Definition Language

 

CREATE / DROP

TABLE

nombre tabla;

DDL Data Definition Language

CREACIÓN DE TABLAS

CREATE TABLE empleado
(
  nombre VARCHAR,
  apellido VARCHAR,
  direccion VARCHAR,
  ciudad VARCHAR,
  telefono VARCHAR
);

TIPOS MÁS HABITUALES

varchar

varchar(50)

int

int4

int8

float8

geom

CREACIÓN DE TABLAS

CREATE TABLE recinto_sigpac (
	gid serial NOT NULL,
	geom geometry(polygon, 4258),
	provincia varchar,
	municipio varchar,
	agregado int4,
	zona int4,
	poligono int4,
	parcela int8,
	recinto int8,
	pendiente_media int4,
	coef_admisibilidad int4,
	coef_regadio int4
 );

ELIMINACIÓN DE TABLAS

DROP TABLE recinto_sigpac;

MANIPULACIÓN DE CAMPOS

ALTER TABLE recinto_sigpac DROP COLUMN coef_regadio;

ALTER TABLE recinto_sigpac ADD anyo int4 NULL;

PRÁCTICA

Definir mediante comandos SQL el modelo de datos creado para los Parques Naturales. Inspirarse en los ddl de los datos de ejemplo.

 

Comprobar sintaxis en
https://www.db-fiddle.com

RESPUESTA

CREATE TABLE parques

(

    gid serial NOT NULL,

    nombre varchar(100),

    titular text,

    fecha_creacion date,

    area integer,

    geom geometry(Polygon,4326)

)

SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado
INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación.
UPDATE Utilizado para modificar los valores de los campos y registros especificados Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos.
DELETE Utilizado para eliminar registros de una tabla

DML Data Manipulation Language

SELECT

SELECT campo1, campo2 
  FROM tabla 
  WHERE "columna1" = 'valor1'

INSERT

INSERT nombre_tabla(campo1, campo2, ...)
 VALUES (valor_campo1, valor_campo2, ...)

INSERT INTO agenda_telefonica (nombre, numero) 
 VALUES ('Roberto Jeldrez', 4886850);
 
INSERT INTO recinto_sigpac
(provincia,municipio,agregado,zona,poligono,parcela,recinto,
pendiente_media,coef_admisibilidad,coef_regadio) 
 VALUES 
 ('Barcelona','Terrassa',0,0,1,6,1,294,100,0);

UPDATE

UPDATE mi_tabla 
  SET campo1 = 'nuevo valor campo1' 
  WHERE campo2 = 'N';
  
UPDATE recinto_sigpac
SET provincia='Jaén'
WHERE municipio = 'Úbeda';

DELETE

DELETE FROM 'tabla' 
  WHERE 'columna1' = 'valor1'

kahoot.it
(id de juego: 07973198)
 
https://kahoot.it/challenge/07973198

Kahoot!

NÚMEROS anyo = 1977
TEXTO provincia = 'Zaragoza'
   

 

COMPARACIONES (=)

"COLUMNAS" "anyo" = 1977
'TEXTO' "provincia" = 'Zaragoza'
   

 

COMILLAS SIMPLES Y DOBLES

< Menor que
>

Mayor que

<>    != Distinto de
<= Menor o igual que
>= Mayor o igual que
BETWEEN Intervalo
LIKE % Comparación texto
In Especificar

OPERADORES DE COMPARACIÓN

FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros
GROUP BY Utilizada para separar los registros seleccionados en grupos específicos
HAVING Utilizada para expresar condición que debe satisfacer cada grupo
ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico
WHERE Utilizada para determinar los registros seleccionados en la clausula FROM

CLÁUSULAS

AND Es el “y” lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas.
OR Es el “o” lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta.
NOT Negación lógica. Devuelve el valor contrario de la expresión.

OPERADORES

QGIS básico

Qué nivel de QGIS tenéis?

(de 0 a 10, por el chat)

 

0: no lo he visto nunca

1: sé añadir capas y navegar

5: sé consultar info y acceder a los atributos

10: sé hacer consultas espaciales, editar y usar toolbox

Conectar a PGSQL remoto

  • Host/anfitrión: tragsa.geomatico.es
  • Database/base de datos: cgarci12 
  • User/usuario: cgarci12
  • Password/contraseña: <pwd>
  • Port/Puerto: 5432

Arc GIS

QGIS: ejecutar SQL

  1. Crear conexión PostGIS
  2. Añadir capa a QGIS (doble clic)
  3. Botón derecho -> Actualizar capa SQL
  4. Escribir SQL y 'Ejecutar'
  5. Para ver en el mapa: 'Actualizar'

QGIS: ejecutar SQL

  1. Crear conexión PostGIS (botón derecho)

QGIS: ejecutar SQL

  1. Crear conexión PostGIS (botón derecho)

QGIS: ejecutar SQL

2. Añadir capa 'bivalvos_mcnb' a QGIS (doble clic o arrastrar)

QGIS: ejecutar SQL

3. Base de datos -> Administrador de BBDD
 

QGIS: ejecutar SQL

4. Ejecutar SQL

QGIS: ejecutar SQL

5. Escribir SQL y 'Ejecutar'

6. Para ver en el mapa: 'Actualizar'

CONSULTAS BIVALVOS_MCNB

  1. bivalvos_mcnb del stateprovince Barcelona
  2. bivalvos_mcnb que no son del stateprovince Barcelona
  3. bivalvos_mcnb de los stateprovince que empiecen por B
  4. bivalvos_mcnb  que no son del stateprovince Barcelona y sí del género Venerupis
  5. bivalvos_mcnb  que tienen un id superior o igual a 100.000
  6. bivalvos_mcnb ordenados alfabéticamente por género
  7. ​actualizar con phylum Mammalia los registros que tienen family Unionidae

RESPUESTAS BIVALVOS_MCNB

SELECT * FROM "bivalvos_mcnb" WHERE stateprovince='Barcelona'

SELECT * FROM "bivalvos_mcnb" WHERE stateprovince!='Barcelona'

SELECT * FROM "bivalvos_mcnb" WHERE stateprovince LIKE 'B%'

SELECT * FROM "bivalvos_mcnb" WHERE stateprovince!='Barcelona' AND genus='Venerupis'

SELECT * FROM "bivalvos_mcnb" WHERE id >=100000

SELECT * FROM "bivalvos_mcnb" ORDER BY genus

UPDATE "bivalvos_mcnb" SET phylum='Mammalia' where family='Unionidae'

CONSULTAS PROVINCIAS
(botón Actualizar)

  1. nameunit de provincias_espana de codnut2 ES42 (CastillaLM) 
  2. nameunit de provincias_espana de codnut2 ES42 ordenadas alfabéticamente descendiente 
  3. nameunit de provincias_espana cuyo nameunit contenga la sílaba ca
  4. listado de todas las autonomías (codnut2) con el número de provincias que contienen
  5. listado de las autonomías (codnut2) que tienen más de 3 provincias

RESPUESTAS PROVINCIAS

SELECT nameunit FROM "provincias_espana" WHERE codnut2='ES42'

SELECT nameunit FROM "provincias_espana" WHERE  codnut2='ES42' ORDER BY nameunit DESC

SELECT nameunit FROM "provincias_espana" WHERE  nameunit LIKE '%ca%'

SELECT codnut2, COUNT(*) FROM "provincias_espana" GROUP BY codnut2

SELECT codnut2, COUNT(*) FROM "provincias_espana" GROUP BY codnut2 HAVING COUNT(*) > 3

1.2 Instalación y configuración

PostgreSQL y PostGIS

Base de datos relacional

Extensión geoespacial

PostgreSQL: core y extensiones 

Sistemas operativos

Windows

Windows

C:\Program Files\PostgreSQL\some version\data

Utilizar PostGIS

http://postgis.net/install/

 

1- Instalar PostgreSQL+PostGIS

2- crear Base de datos

3 CREATE EXTENSION POSTGIS;

Documentación

Versiones

PostgreSQL

 

8.x

9.x

10.x 11.x

12.x +

15

PostGIS

 

1.x

2.x

2.x y 3.x

3.x

3.3

Versiones

tragsa.geomatico.es

PostgreSQL

 

12.12

PostGIS

 

3.2

select version();

select postgis_version();

GDAL

Desde PostGIS 2.0, incluido (Para PostGIS Raster)
https://gdal.org/drivers/raster/index.html

GDAL formatos

Quién usa GDAL?

Software libre

Think free as in free speech, not free beer


R.Stallman

PostgreSQL, PostGIS, GDAL son software libre

Roadmap

Github

Clone, pull request: mantenimiento

Licencias

  • PostgreSQL: PostgreSQL License (BSD/MIT)
  • PostGIS: GNU / GPL v2

Arquitecturas web

Arquitecturas web

Alta disponibilidad

Cómo conectar a PostgreSQL?

sysadmin: psql (viene con PostgreSQL)

 

Técnico GIS: QGIS o ArcMap

 

Administrador BDD: pgAdmin o dBeaver

psql

#desde servidor
ssh root@tragsa.geomatico.es
psql -h localhost -U postgres

#desde cliente (necesita puerto abierto!)
psql -h tragsa.geomatico.es -U postgres

postgres

psql

\q: Quit/Exit
\c __database__: Connect to a database
\d __table__: Show table definition including triggers
\dt *.*: List tables from all schemas (if *.* is omitted will only show SEARCH_PATH ones)
\l: List databases
\dn: List schemas
\df: List functions
\dv: List views
\df+ __function__ : Show function SQL code.
\x: Pretty-format query results instead of the not-so-useful ASCII tables

psql - primera BD

CREATE DATABASE prueba;

\c prueba

CREATE TABLE tabla_prueba ( 
  id SERIAL PRIMARY KEY,
  name VARCHAR(128)
);

ALTER TABLE tabla_prueba ADD COLUMN geom geometry(Geometry, 4326);

-- ERROR?

psql - primera BD

-- Enable PostGIS
CREATE EXTENSION postgis;

SELECT version();
SELECT PostGIS_Version();

-- gdb_template

crear template

ALTER DATABASE prueba WITH is_template TRUE;

CREATE DATABASE nueva_bd_igual_que_prueba TEMPLATE prueba;

postgresql.conf

listen_addresses = '*'

#listen_addresses = 'localhost'

pg_hba.conf

1.3 Uso de PostgreSQL/PostGIS

Cómo conectar a PostgreSQL?

Técnico GIS: QGIS o ArcMap

 

sysadmin: psql

 

Administrador BDD: pgAdmin o dBeaver

https://tragsa.geomatico.es

 

user: vuestrocorreo@tragsa.es

pwd: 

pgAdmin: Register server

postgis

Conectar a PGSQL local

  • Host/anfitrión: localhost
  • Database/base de datos: postgres 
  • User/usuario: postgres
  • Password/contraseña: <pwd>
  • Port/Puerto: 5432

Conectar a PGSQL remoto

  • Host/anfitrión: tragsa.geomatico.es
  • Database/base de datos: <nombre> 
  • User/usuario: <nombre>
  • Password/contraseña: <pwd>
  • Port/Puerto: 5432

Conectar a PGSQL "docker"

  • Host/anfitrión: postgis
  • Database/base de datos: <nombre> 
  • User/usuario: <nombre>
  • Password/contraseña: <pwd>
  • Port/Puerto: 5432

Ejercicios pgAdmin

  1. Crear una tabla con campos
  2. Añadir o eliminar campos en esa tabla
  3. Ejecutar SQL
  4. Determinar versión de PostgreSQL y PostGIS
  5. Mirar usuarios, esquemas, funciones ...
  • puede almacenar muchas conexiones
  • permite consultar las BDD/tablas en las que el usuario tenga permisos
  • permite añadir BDD/tablas/campos por interfaz gráfica 
  • permite asignar roles (Grant Wizard)
  • permite hacer consultas SQL
  • parecido a pgAdmin
  • también software libre
  • permite una cierta visualización de geometrías
  • permite añadir conexiones a otro tipo de bases de datos (MySQL, Oracle, MongoDB ...)
    https://dbeaver.com/databases 
  • no es para administradores de BDD, sino para técnicos GIS
  • las funcionalidades más importantes son visualizar e importar a PostGIS

si QGIS ya permite hacer buffer, unión, intersección, para qué quiero PostGIS?

si QGIS ya permite hacer buffer, unión, intersección, para qué quiero PostGIS?

1) DATOS VIVOS
2) AUTOMATIZACIÓN

TIPOS MÁS HABITUALES

varchar(50) => text

int int4

int8

float8

serial

geom

Data types

¡No uséis mayúsculas ni en tablas ni en campos!

"campo" => campo

"Campo" => Campo

Campo => campo

kahoot.it
(PIN juego: 09202034)
https://kahoot.it/challenge/09202034

Kahoot!

  • GEOMETRY (abstract superclass)

     
  • POINT
  • LINESTRING
  • POLYGON

Spatial types

  • GEOMETRY (abstract superclass)
  • POINT (a single coordinate, usually but not necessarily 2 dimensional)
  • LINESTRING (a set of two or more coordinates, with a linear interpretation of the path between the coordinates)
  • LINEARRING (a linestring of three or more coordinates in which the start and end points are the same, usually not instantiable, but used to build polygons)
  • POLYGON (a set of one or more closed linearrings, one exterior ring that defines a bounded area, and a set of interior rings that define exceptions (holes) to the bounded areas)
  • MULTIPOINT (a set of points)
  • MULTILINESTRING (a set of linestrings)
  • MULTIPOLYGON (a set of polygons)
  • GEOMETRYCOLLECTION (a heterogeneous set of geometries)

Spatial types

WKT, WKB

WKT, WKB

WKT, WKB

ST_AsText

WKB

WKT

select ST_AsText(geom) from bivalvos_mcnb;

La tierra no es plana

Esférica????

La tierra no es plana

La tierra no es plana

La tierra no es plana

coordenadas geográficas: grados (lat/lon)
coordenadas proyectadas: metros (proyección UTM)

La tierra no es plana

EPSG:4326

EPSG = SRID

EPSG está directamente relacionado al término SRID (en realidad, es equivalente). De hecho, si empleas cualquier software GIS (como ArcGIS o QGIS), éstos hacen referencia a los Sistemas de Coordenadas aludiendo al término EPSG, sin embargo, si nos movemos en PostGIS, la alusión a los Sistemas de Coordenadas se hace con el término SRID.

EPSG más habituales

geográficos (lat/lon)

4326

4258

3857

proyectados (UTM)

25829

25830

25831

EPSG más habituales

geográficos (lat/lon)

4326

4258

3857

proyectados (UTM)

25829

25830

25831

Definir columna geometría

CREATE TABLE prueba (

    gid serial NOT NULL,

    geom geometry(polygon, 4326) NULL

 );

Práctica parte 1

Crear tabla ocurrencias_jaen con los siguientes campos:

- gid: autonumérico (entero que se rellena "solo")

- id_especie: número entero que identifica la especie

- geom: geometria puntual con proyección UTM de Jaén

 

Crear tabla especies con los siguientes campos:

- id: número entero que identifica la especie

- nombre: nombre de la especie

 

CON QUÉ HERRAMIENTA?

Práctica parte 2

Insertar registros en las tablas ocurrencias_jaen y especies con valores inventados. Ej:

 

ocurrencias_jaen

- gid: 1

- id_especie: 16

- geom: a partir de QGIS o http://bboxfinder.com

 

especies

- id: 16

- nombre: Aquila pennata

Respuestas Práctica 

create table ocurrencias_jaen(

     gid serial NOT NULL,

     geom geometry(point, 25830),

     id_especie int

);

 

create table especies(

     id int,

     nombre text

);

Respuestas Práctica 

INSERT INTO ocurrencias_jaen(id_especie, geom)

VALUES(2, 'SRID=25830;POINT(423072 4173570)');

 

INSERT INTO ocurrencias_jaen(id_especie, geom)

VALUES(2,'POINT(424072 4173670)');

 

INSERT INTO especies (id, nombre)

VALUES(2,'Aquila pennata');

1.4 Gestión de datos

¿Cómo importar datos?

GDAL y ogr2ogr

ogr2ogr --version

/* lo tengo instalado? */
"C:\Program Files\QGIS 3.22\bin\"ogr2ogr.exe --version

ogr2ogr -f GeoJSON archivo_destino.geojson archivo_origen.shp

GDAL y ogr2ogr

GDAL y ogr2ogr

ogr2ogr -f "PostgreSQL" 
PG:"dbname=marti host=tragsa.geomatico.es port=5432 user=marti password=TragsaFormacion" 
"recintos_sigpac_chapineria.shp" 
-lco GEOMETRY_NAME=geom 
-lco FID=gid 
-progress

GDAL y ogr2ogr

https://tragsa.geomatico.es

 

user: vuestrocorreo@tragsa.es

pwd: 

pgAdmin: Register server

QGIS o GDAL: exportar SQL

 

pgAdmin: ejecutar SQL

OPCION 1 para importar cualquier formato a PG: Administrador de base de datos

Por detrás, usa GDAL

¿Cómo exportar datos?

¿Cómo exportar datos?

 

pgAdmin/dBeaver: query + guardar selección a archivo

¿Cómo exportar datos?

 

QGIS: si tenemos la capa cargada, como siempre! Si no, cargar capa desde Administrador de bases de datos y "crear nueva capa"

¿Cómo exportar datos?

 

QGIS: si tenemos la capa cargada, como siempre! Si no, cargar capa desde Administrador de bases de datos y "crear nueva capa"

kahoot.it
(PIN juego: 05686695)
https://kahoot.it/challenge/05686695

Kahoot!

SIGPAC Downloader

https://plugins.qgis.org/plugins/sigpac_downloader/

 

No descarguéis provincia entera, solo un municipio

Importar

  • recintos_sigpac_chapineria.shp
  • direcciones_catastro_chapineria.geojson

 

https://docs.qgis.org/3.28/es/docs/user_manual/plugins/core_plugins/plugins_db_manager.html

Servicios ATOM

Ejercicio práctico (45 minutos)

  1. De un mismo municipio, descargar Catastro y Sigpac.
  2. Subir los recintos SIGPAC y las direcciones de catastro a PostGIS en proyección 4326 en la BDD con vuestro nombre
  3. Hacer un mapa QGIS en proyección 3857 con estas dos capas de PostGIS debidamente simbolizadas.
  4. Filtrar sólo las parcelas de rústica en la capa de QGIS de recintos.
  5. Filtrar sólo los direcciones que tienen specification parcel en la capa de QGIS de direcciones.
  6. Añadir una capa de base con el plugin Quick Map Services

Tragsa - PostGIS

By mpericay

Tragsa - PostGIS

  • 509