A seguir serão demostradas algumas consultas e análises com os dados da tabela uso_ocupacao_solo.
1) Obtendo Metadados
Para visualizar os metadados de um registro da tabela raster, podemos utilizar a seguinte consulta:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT | |
(md).*, | |
(bmd).* | |
FROM | |
(SELECT | |
ST_Metadata(rast) AS md, | |
ST_BandMetadata(rast) AS bmd | |
FROM | |
uso_ocupacao_solo LIMIT 1 | |
) | |
AS tmp; |
Como resultado, são exibidos diversos valores, tais como: coordenadas do canto superior (esquerdo e direito), tamanho do pixel, SRID , número de bandas, valores NODATA, dentre outros exibidos na Figura 1.
![]() |
Figura 1 - Obtendo Metadados |
Outro dado importante é o espaço ocupado pela tabela no HD, obtido através da seguinte consulta:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT | |
pg_size_pretty(pg_total_relation_size('uso_ocupacao_solo')); |
2) Interseção da Tabela Raster com um Município
Exemplo: gerar uma nova tabela a partir do recorte (clip) do uso e ocupação do solo em função dos limites do município de Ibitinga (Figura 2).
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE TABLE uso_ocupacao_ibitinga_2 AS | |
SELECT | |
gid, | |
(gv).val, | |
(gv).geom | |
FROM ( | |
SELECT | |
gid, | |
ST_Intersection(rast, geom) AS gv | |
FROM | |
municipios, | |
uso_ocupacao_solo | |
WHERE | |
ST_Intersects(rast, geom) | |
AND nome = 'Ibitinga' | |
) | |
AS tmp; |
![]() |
Figura 2 - Clip entre a tabela raster e o município de Ibitinga |
As dimensões de cada polígono desta tabela são equivalentes a resolução espacial do raster, definido na importação com o comando raster2pgsql.
3) Quantificando o Resultado
Exemplo: qual é a área total de cada classe de uso no município de Ibitinga, em hectares?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT | |
dn, | |
SUM(ST_Area(geom::geography))/10000 AS area_ha | |
FROM | |
uso_ocupacao_ibitinga | |
GROUP BY dn | |
ORDER BY dn; |
![]() |
Figura 3 - Área total de cada classe de uso |
Também é possível realizar esta mesma consulta no terminal e exportar o resultado para CSV, através do comando:
$ psql sp -c "copy ( SELECT dn, SUM(ST_Area(geom::geography)) / 10000 AS area_ha FROM uso_ocupacao_ibitinga GROUP BY dn ORDER BY dn ) to STDOUT WITH CSV" -o sum.csv
4) Análise de Buffer
Exemplo: determinar o uso e ocupação do solo para um buffer com raio de 500 metros, em torno do rio formado pelos trechos com os seguintes gids: 8530, 8560, 8561, 8562, 8578, 8590, 8591, 8592,8595 (Figura 4).
![]() |
Figura 4 - Trechos que compõem o rio a ser analisado |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT | |
(row_number() OVER ())::integer AS gid, | |
(gv).val, | |
(gv).geom | |
FROM ( | |
SELECT | |
ST_Intersection(rast, geom) AS gv | |
FROM | |
uso_ocupacao_solo, | |
( | |
SELECT | |
ST_Buffer(Geography(ST_Union(geom)), 500)::geometry AS geom | |
FROM | |
hidrografia | |
WHERE | |
gid IN (8530,8560,8561,8562,8578,8590,8591,8592,8595) | |
) AS buffer_rio | |
WHERE | |
ST_Intersects(rast, geom) | |
) AS tmp; |
![]() |
Figura 5 - Resultado do buffer com as classes de uso e ocupação do solo |
Nenhum comentário:
Postar um comentário