Estoy trabajando con..
- un punto inicial de la capa (en azul) llamado : centroid_layer.shp
- una primera capa de polígono (en verde) de bosque llamado : wood_zone.shp
..y necesito obtener el área de interceptó wood_zone dentro de cada búfer (en rojo, creado a partir de centroid_layer), a sabiendas de que casi todos mis tapones se superponen unos a otros. Por lo tanto debo incluir el wood_zone polygones tantas veces como el número de intersección de los buffers.
Yo creía que no es posible hacer sólo con QGIS procesamiento y/o el modelador (???) así que me gustaría resolver a través de PostGIS/PostgreSQL (versión 9.6).
He visto en una similar publicado pregunta de Anna y yo estaba tratando de continuar con SS_Rebelious solución con el uso de su secuencia de comandos SQL no en Spatialite pero en PostGIS/PostgreSQL (con la herramienta de Consulta de pqAdmin 4) de la siguiente manera :
CREATE TABLE buff AS
SELECT gid, ST_Buffer(geom, 1000,'quad_segs=100') FROM centroid_layer ;
y luego :
UPDATE centroid_layer
SET areacolumn = (SELECT ST_Area(
(SELECT ST_Intersection(
(SELECT ST_Union(geom) FROM wood_zone),
(SELECT geom FROM buff WHERE centroid_layer.gid = buff.gid)
)
)
)
);
pero tengo un problema después de la ACTUALIZACIÓN...... paso. De hecho, a mi resultante areacolumn está completamente lleno de 0.0 valores (ver más abajo).
Así que me preguntaba si yo estoy haciendo algo mal o si no sería una diferente secuencia de comandos SQL para usar con Postgres-PgAdmin ?
EDIT : he probado la misma secuencia de comandos SQL con una muestra del grupo de búferes de tres (asociadas con 3 puntos de relacionados con el) y yo era capaz de recoger los valores del área dentro de mi columna denominada "areacolumn". En este punto, la única diferencia que veo es que he utilizado una clave principal diferente, quiero decir que no se utiliza el "gid" (creado automáticamente por postgres/postGIS) clave principal.
Pero yo todavía no entiendo... es el uso de la "gid" como clave primaria de un problema con un script SQL ?