Message posté par : Christophe Vergon (christophe.vergon(a)protonmail.com)
----------------------------------------
Bonjour,
La solution finale.
-----------------
Code :
with p as (SELECT idbatiment,dur,rid,the_geom ,rast
FROM elevation,cadastre.batiment
WHERE st_intersects(the_geom,st_envelope(rast)) AND NOT st_bandisnodata(rast)),
p1 as (SELECT idbatiment,dur,rid,rast,the_geom as rid_bat_geom
FROM p
ORDER BY rid),
p2 as (SELECT rid,st_centroid((st_squaregrid(1,st_envelope(rast))).geom) pg FROM
elevation)
SELECT idbatiment,dur,p2.rid,st_value(rast,pg),pg
--INTO elevation_batiment
FROM p1,p2
WHERE st_intersects(rid_bat_geom,pg) AND p1.rid=p2.rid
-----------------
Ce qui donne un temps d'exécution de 37.35 secondes pour un raster de 4 000 * 6 000
et 4 161 bâtiments dans l'emprise du raster.
Et un rendu sympathique cf. PJ
NB : Ceci permet aussi de faire du pur SQL sans passer par gdgdallocationinfo()
----------------------------------------
Ce message est accompagné de fichiers, pour les télécharger, suivre le lien ci-dessous.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=363039#p363039
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net