Retorna as coordenadas geográficas e os valores de pixel de todas as células em um objeto raster que interceptam um objeto de geometria. A numeração das bandas começa em 0. Por padrão, a função retorna todas as bandas. Ambos os objetos devem compartilhar o mesmo identificador de sistema de referência espacial (SRID).
Sintaxe
set of record ST_Values(raster raster_obj,
geometry geom,
integer pyramidLevel default 0,
cstring bands default '', /* All bands */
cstring clipOption default '',
out point cords,
out integer band,
out float8 value)
A função retorna um set of record. Cada linha contém três campos de saída: cords (coordenadas geográficas), band (número sequencial da banda) e value (valor do pixel). Para expandir todos os campos de saída em uma consulta, use a sintaxe .*:
SELECT (ST_Values(rast, geom)).*
FROM your_table;
Para acessar um campo específico, use a notação de ponto:
SELECT (ST_Values(rast, geom)).cords,
(ST_Values(rast, geom)).value
FROM your_table;
Parâmetros
Parâmetros de entrada
|
Parâmetro |
Tipo |
Padrão |
Descrição |
|
|
raster |
— |
Objeto raster a consultar. |
|
|
geometry |
— |
Objeto de geometria usado para recorte. Deve ter o mesmo SRID que |
|
|
integer |
|
Nível de pirâmide do objeto raster a usar. |
|
|
cstring |
|
Números sequenciais das bandas a retornar, no formato |
|
|
cstring |
|
Opções de recorte como string formatada em JSON. Consulte parâmetros clipOption. |
Campos de saída
|
Campo |
Tipo |
Descrição |
|
|
point |
Coordenadas geográficas do pixel. |
|
|
integer |
Número sequencial da banda do pixel. |
|
|
float8 |
Valor do pixel. |
Parâmetros clipOption
|
Parâmetro |
Tipo |
Padrão |
Descrição |
|
|
Boolean |
|
Controla se o recorte ocorre pela bounding box da geometria ou pela forma exata. Defina como |
Quando usar window_clip:
Use
window_clip: truepara recuperar todas as células dentro da envoltória retangular de uma geometria — por exemplo, ao recortar com um ponto e desejar capturar a grade de pixels ao redor, em vez de apenas a interseção exata.Use
window_clip: false(padrão) quando for necessária uma interseção precisa com a forma real da geometria, como no recorte ao longo de uma linestring ou limite de polígono.
Observações de uso
O objeto de geometria e o objeto raster devem ter um SRID válido e correspondente.
Por padrão, cada chamada retorna até 100 MB de dados. Para ajustar esse limite, defina o parâmetro
ganos.raster.clip_max_buffer_size.
Exemplos
Todos os exemplos chamam ST_Values com a sintaxe .* para expandir a saída em colunas individuais.
Recorte com geometria de ponto
Definir window_clip como true recupera a grade de pixels dentro do MBR do ponto, em vez de uma única célula de interseção exata.
SELECT (ST_Values(rast, ST_geomfromtext('POINT(128.135 29.774)', 4326)::geometry, 0,'{"window_clip":"true"}')).*
FROM rat_clip WHERE id=1;
coord | band | value
--------------+------+-------
(127.8,29.7) | 0 | 11
(127.8,29.7) | 1 | 10
(127.8,29.7) | 2 | 50
(3 rows)
Recorte com geometria de linestring
Este exemplo recorta o raster usando a forma exata de uma linestring e retorna até 10 linhas de todas as bandas.
SELECT (ST_Values(rast, ST_geomfromtext('LINESTRING(0 0, 45 45, 90 0, 135 45)', 4326)::geometry, 0)).*
FROM rat_clip WHERE id=1 LIMIT 10;
coord | band | value
-------------+------+-------
(44.1,45) | 0 | 115
(44.1,45) | 1 | 112
(44.1,45) | 2 | 69
(45,45) | 0 | 122
(45,45) | 1 | 117
(45,45) | 2 | 75
(134.1,45) | 0 | 37
(134.1,45) | 1 | 64
(134.1,45) | 2 | 13
(43.2,44.1) | 0 | 66
(10 rows)
Próximos passos
ST_Value — Retorna o valor de uma única célula em um ponto especificado ou coordenada de pixel.
ST_ClipByMask — Recorta um objeto raster usando uma máscara de geometria e retorna o raster recortado.
ST_Clip — Recorta um objeto raster por um objeto de geometria e retorna o raster recortado.
ST_Intersects — Verifica se um objeto raster e um objeto de geometria se interceptam.