St_value() et géometries nulles

En voulant mettre à jour des données d'altitude d'une distribution de points, nous avons rencontré une erreur :

La requête suivante :

UPDATE export.tous_point_espece_selon_format_esri SET pente_mnt = ST_VALUE(rast, geometrie, true)
FROM raster.pente_mnt30
WHERE code_insee LIKE '30%' AND st_intersects(geometrie, rast)

retournait ceci :

ERREUR: syntaxe en entrée invalide pour l'entier : « NaN »
CONTEXTE : PL/pgSQL function "st_world2rastercoordx" lors de la conversion de la valeur de retour au type de retour de la fonction PL/pgSQL function "st_value" line 13 at RETURN

La solution est venue de la liste postgis-users et particulièrement de Bborie Park (http://postgis.17.n6.nabble.com/st-value-st-world2rastercoordx-error-td4999247.html).

Certaines geometries étaient nulles. Il faut donc ajouter cette condition à la claude WHERE (AND geometrie IS NOT NULL), ou corriger les données concernées.

Bborie a créé un ticket suite à ce problème pour tester dans la fonction l'existence de la géometrie.

Les contenus des sites sig.cenlr.org et si.cenlr.org sont mis à disposition selon
les termes de la licence Creative Commons Attribution 3.0 France

Licence Creative Commons