Realiza interpolação espacial com base em um conjunto de pontos 3D e retorna o resultado como um novo objeto raster. Um ponto 3D é expresso no formato (x,y,z).
Sintaxe
raster ST_InterpolateRaster(
geometry input_points,
integer width,
integer height,
cstring interpolateOptions,
cstring storageOptions);
Parâmetros
|
Parâmetro |
Descrição |
|
|
Conjunto de pontos de interpolação. |
|
|
Número de colunas dos dados raster. |
|
|
Número de linhas dos dados raster. |
|
|
String JSON que descreve as configurações do algoritmo de interpolação espacial. |
|
|
String JSON que define os chunks para armazenamento do objeto raster. |
A tabela a seguir detalha os campos do parâmetro interpolateOptions.
|
Campo |
Descrição |
Tipo |
Valor padrão |
Configuração |
|
|
Método de interpolação. |
string |
|
Suporta apenas interpolação por Inverso da Distância Ponderada (IDW). |
|
|
Raio de busca. |
double |
|
Se definido como |
|
|
Peso da interpolação. |
double |
|
Nenhuma. |
|
|
Quantidade máxima de pontos. |
integer |
|
Deve ser maior que o valor do campo |
|
|
Quantidade mínima de pontos. |
integer |
|
Nenhuma. |
|
|
Valor de nodata. |
double |
|
Nenhuma. |
|
|
Grau de paralelismo (DOP). |
integer |
|
Nenhuma. |
A tabela a seguir descreve os campos do parâmetro storageOption.
|
Campo |
Descrição |
Tipo |
Formato |
Valor padrão |
Observações |
|
|
Tamanho de cada chunk. |
string |
|
Igual ao tamanho de cada chunk no objeto original. |
Nenhuma. |
|
|
Nome da tabela de chunks. |
string |
Nenhum. |
Nenhum. |
Se este campo não for especificado, o sistema cria uma tabela temporária. |
|
|
Tipo de pixel do objeto raster. |
string |
Nenhum. |
|
Valores válidos: |
Exemplos
O exemplo a seguir usa ST_Collect para agregar pontos 3D da tabela point_table e os interpola em um raster de 256×256 usando IDW com raio de busca de 3.0.
SELECT ST_InterpolateRaster(
st_collect(ST_MakePoint(st_x(geom),st_y(geom),value)),
256,
256,
'{"method":"IDW","radius":"3.0","max_points":"4","min_points":"1"}',
'{"chunktable":"rbt","celltype":"8bui"}')
FROM point_table;
st_interpolateraster
---------------------
{"attributes":{"id":"f54cff0a-cca4-4e51-ac11-7aa5a3c9d9b6","name":"","type":"normal","version":1.1,"storage":{"mode":"internal","location":"rbt","md5":"","endian":"ndr","compress":"lz4","compressQuality":75,"fileSystem":"null","chunking":{"enable":true,"chunkHeight":256,"chunkWidth":256,"chunkBand":1,"rowChunksDimension":1,"columnChunksDimension":1,"bandChunksDimension":1},"cellType":"8bui","interleaving":"bsq"},"description":"","width":256,"height":256,"bands":1,"pyramid":{"resample":"near","level":0,"table":""},"overview":{"table":"","column":"","pyramidLevel":1},"referenceOriginPoint":{"type":"Raster","ulp":{"row":0,"column":0,"band":0},"rrp":{"row":0,"column":0,"band":0},"wrp":{"x":0,"y":0,"z":0}}},"spatialReference":{"valid":true,"srid":0,"refLocation":"center","affline":{"upperleftx":0.0,"upperlefty":2.0,"scalex":0.0078125,"scaley":-0.0078125,"skewx":0.0,"skewy":0.0},"gcps":{"count":0}}}
O exemplo abaixo defina parallel como 4 para ative a interpolação paralela com grau de paralelismo (DOP) igual a 4.
SELECT ST_InterpolateRaster(
st_collect(ST_MakePoint(st_x(geom),st_y(geom),value)),
256,
256,
'{"radius":"2.0","max_points":"4","min_points":"1","parallel":"4"}',
'{"chunktable":"rbt","celltype":"8bui"}')
FROM point_table;
st_interpolateraster
---------------------
{"attributes":{"id":"b769c306-4416-4e31-9e60-d2b847642190","name":"","type":"normal","version":1.1,"storage":{"mode":"internal","location":"rbt","md5":"","endian":"ndr","compress":"lz4","compressQuality":75,"fileSystem":"null","chunking":{"enable":true,"chunkHeight":256,"chunkWidth":256,"chunkBand":1,"rowChunksDimension":1,"columnChunksDimension":1,"bandChunksDimension":1},"cellType":"8bui","interleaving":"bsq"},"description":"","width":256,"height":256,"bands":1,"pyramid":{"resample":"near","level":0,"table":""},"overview":{"table":"","column":"","pyramidLevel":1},"referenceOriginPoint":{"type":"Raster","ulp":{"row":0,"column":0,"band":0},"rrp":{"row":0,"column":0,"band":0},"wrp":{"x":0,"y":0,"z":0}}},"spatialReference":{"valid":true,"srid":0,"refLocation":"center","affline":{"upperleftx":0.0,"upperlefty":2.0,"scalex":0.0078125,"scaley":-0.0078125,"skewx":0.0,"skewy":0.0},"gcps":{"count":0}}}