Centroides en PostGIS: ST_CENTROID

Continuando con las consultas sencillas en PostGIS hoy se considerarán los centroides. Estos se consultan con la instrucción ST_CENTROID y tiene sentido para geometrías de tipo línea o polígono. Para puntos el resultado es el propio punto.

Para la tabla ‘route’, de mi database ‘utah’, su visualización en QGIS resulta en:

centroids2

y la consulta y resultado para encontrar el centroide, en la consola de postgresql, es el siguiente:

SELECT ST_CENTROID(route.geom) AS geom
FROM route;
                        geom                        
----------------------------------------------------
 0101000020647F00003F2DCDFCB87B19416A86FE9910F25041
(1 row)

Si se quiere el resultado en WKT entonces se tiene:

SELECT ST_AsText (ST_CENTROID(route.geom)) AS geom
FROM route;
                   geom                   
------------------------------------------
 POINT(417518.246876437 4442178.40615998)
(1 row)

Con el plugin QuickWKT (que también funciona con el formato WKB) obtenemos:

centroids3

Para la tabla ‘polygon8’ de la database su visualización en la Map View de QGIS es la siguiente:

centroids1

La geometría de los centroides, en WKT, resulta del query siguiente:

SELECT ST_AsText (ST_CENTROID(pol8.geom)) AS geom
utah-# FROM polygon8 AS pol8;
                   geom                   
------------------------------------------
 POINT(373322.223552616 4458147.88211152)
 POINT(416574.512916711 4452323.0963131)
 POINT(461837.369499954 4449293.41836002)
 POINT(436161.155996285 4430300.0270299)
 POINT(406326.395826271 4427140.96399961)
 POINT(360474.552061146 4438679.52097404)
 POINT(394887.070163724 4449845.1295541)
 POINT(470637.988701853 4429312.09886688)
(8 rows)

Creando la tabla (centroids_pol8) y añadiendóle el índice espacial para cargarlos posteriormente en QGIS:

CREATE TABLE centroids_pol8 AS (SELECT ST_CENTROID(pol8.geom) AS geom
FROM polygon8 AS pol8);

ALTER TABLE centroids_pol8 ADD COLUMN id SERIAL;
ALTER TABLE centroids_pol8 ADD PRIMARY KEY (id);

se obtiene la visualización siguiente:

centroids4

Para finalizar, se va a realizar una consulta directa de las coordenadas de los centroides en ‘polygon8’ usando los ‘Geometry Accessors’ ST_X y ST_Y.

SELECT pol8.fid, ST_X(ST_CENTROID(geom)) AS x, ST_Y(ST_CENTROID(geom)) AS y
FROM polygon8 AS pol8; 
 fid |        x         |        y         
-----+------------------+------------------
   0 | 373322.223552616 | 4458147.88211152
   1 | 416574.512916711 |  4452323.0963131
   2 | 461837.369499954 | 4449293.41836002
   3 | 436161.155996285 |  4430300.0270299
   4 | 406326.395826271 | 4427140.96399961
   5 | 360474.552061146 | 4438679.52097404
   6 | 394887.070163724 |  4449845.1295541
   7 | 470637.988701853 | 4429312.09886688
Esta entrada fue publicada en Postgres+postgis, QGIS, SIG, Software Libre. Guarda el enlace permanente.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s