Effectue une interpolation spatiale à partir d'un ensemble de points 3D et renvoie le résultat sous la forme d'un nouvel objet raster. Un point 3D s'exprime au format (x,y,z).
Syntaxe
raster ST_InterpolateRaster(
geometry input_points,
integer width,
integer height,
cstring interpolateOptions,
cstring storageOptions);
Paramètres
| Paramètre | Description |
|---|---|
input_points |
Ensemble des points d'interpolation. |
width |
Nombre de colonnes des données raster. |
height |
Nombre de lignes des données raster. |
interpolateOptions |
Chaîne JSON décrivant les paramètres de l'algorithme d'interpolation spatiale. |
storageOption |
Chaîne JSON décrivant les chunks pour le stockage de l'objet raster. |
Le tableau suivant décrit les champs du paramètre interpolateOptions.
| Champ | Description | Type | Valeur par défaut | Configuration |
|---|---|---|---|---|
method |
Méthode d'interpolation. | string | IDW |
Seule l'interpolation par pondération inverse de la distance (IDW) est prise en charge. |
radius |
Rayon de recherche. | double | 0.0 |
Si la valeur est 0, le rayon de recherche est calculé en fonction du nombre de points d'entrée et de la surface. |
power |
Poids d'interpolation. | double | 2.0 |
Aucune. |
max_points |
Nombre maximal de points. | integer | 10 |
Doit être supérieur à la valeur du champ min_points. |
min_points |
Nombre minimal de points. | integer | 2 |
Aucune. |
nodata |
Valeur nodata. | double | 0.0 |
Aucune. |
parallel |
Degré de parallélisme (DOP). | integer | 1 |
Aucune. |
Le tableau suivant décrit les champs du paramètre storageOption.
| Champ | Description | Type | Format | Valeur par défaut | Notes |
|---|---|---|---|---|---|
chunkdim |
Taille de chaque chunk. | string | (w, h, b) |
Identique à la taille de chaque chunk dans l'objet d'origine. | Aucune. |
chunktable |
Nom de la table de chunks. | string | Aucune. | Aucune. | Si ce champ n'est pas spécifié, une table temporaire est créée. |
celltype |
Type de pixel de l'objet raster. | string | Aucune. | 16BUI |
Valeurs valides : 8BSI, 8BUI, 16BSI, 16BUI, 32BSI, 32BUI, 32BF, 64BF. |
Exemples
L'exemple suivant utilise ST_Collect pour agréger des points 3D issus de point_table et les interpole dans un raster de 256×256 à l'aide de la méthode IDW avec un rayon de recherche 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}}}
L'exemple suivant définit parallel sur 4 afin d'activer l'interpolation parallèle avec un degré de parallélisme (DOP) de 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}}}