Comment calculer l’altitude moyenne des communes héraultaises ?
Données utilisées
- l’altitude mondiale fournie par WorldClim : http://biogeo.ucdavis.edu/data/climate/worldclim/1_4/grid/cur/alt_30s_bil.zip
- la couche vecteur des communes de l’IGN (geofla) : http://professionnels.ign.fr/geofla
Outils utilisés
Quantum Gis et GdalTools
→pour le découpage du ratser mondial :
gdal_translate -projwin -5.27 51.50 9.84 41.26 -of GTiff ~/Documents/tp_postgis_raster/alt_30s_bil/alt.bil ~/Documents/tp_postgis_raster/alt_fr
PostGIS 2
→chargement du raster dans postgis
/usr/pgsql-9.2/bin/raster2pgsql -s 4326 -t 5x5 -I ~/Documents/tp_postgis_raster/alt_fr.tif alt_5x5|psql -h localhost -U dba fmin206
→chargement du shape des communes dans postgis
shp2pgsql -d -s 2154 -g the_geom -W LATIN1 -I ~/Documents/tp_postgis_raster/GEOFLA/COMMUNE.SHP communes|psql -h localhost -U dba fmin206
Requête finale
WITH altitudes as (
SELECT insee_com, nom_comm, (ST_intersection(rast, st_transform(the_geom, 4326))).val::integer AS altitude
FROM alt_5x5 JOIN communes ON ST_Intersects(st_transform(the_geom, 4326), rast)
WHERE insee_com like '34%')
SELECT insee_com, nom_comm, avg(altitude) AS altitude_moyenne
FROM altitudes
GROUP BY insee_com, nom_comm