Densité de bati

Objectif de cette requête:

       Calcul de la densité de bâti dans l'agglomération nantaise.

       Pour cela, on va se servir d'une grille régulière.


Instruction SQL:

        -- Création de la zone d'étude (à partir de la couche VEGETATION)

       create table zone as select ST_envelope(ST_Union(the_geom)) as the_geom from VEGETATION;


       -- Création du maillage avec un pas de 200m, sur la base de la couche "Zone"

       create table maillage as select STO_CreateGrid(200,200) from zone;


       -- On calcul l'intersection entre la couche Bati_surface (filtre sur les zones "REG_BAT") et les cellules de la couche maillage
       create table gridIntersectWithBati as select ST_intersection(a.the_geom,b.the_geom) as the_geom, a.gid from maillage a, BATI_surface b where ST_isValid(b.the_geom) and ST_intersects(a.the_geom,b.the_geom) and b."LAYER" like 'REG_BAT';

        -- On explose le multiploygone
       create table exploded as select STO_Explode() from gridIntersectWithBati;

       -- On conserve tout les objets de type polygone (surface)
       create table filterPointsAndLines as select * from exploded where ST_Dimension(the_geom) = 2;

       -- On fusionne tous les polygones d'une même cellule (via le champ "gid")
       create table unionGridBati as select ST_Union(the_geom) as the_geom,gid from filterPointsAndLines group by gid;

       -- On calcul la surface totale du bâti par cellule
       create table batiDensityPerCell as select ST_Area(the_geom) as area,gid from unionGridBati;

       -- On calcul la densité (sur une échelle de 0 à 1) du bâti par rapport à la surface de la cellule
       create table density as select a.the_geom, a.gid, b.area/ST_Area(a.the_geom) as density from maillage a,batiDensityPerCell b where a.gid=b.gid;

       -- OPTIONNEL

       -- On supprime du Geocatalog les couches intermédiaires
       drop table gridIntersectWithBati;
       drop table exploded;
       drop table filterPointsAndLines;
       drop table unionGridBati;
       drop table batiDensityPerCell;


Résultat :


Le résultat est une grille, avec pour chaque cellule, une valeur de densité de bâti. Pour avoir un rendu intéressant, il faut faire une analyse thématique.

Exemple de caractéristiques : Intervalles de classification / Sur le champ "density" / Type d'intervalle : Quantiles / Nombre d'intervalles : 7


Avant

Après



A partir de la couche de densité calculée précédemment, isolez les cellules où la densité est supérieure à 0,4


Instruction SQL :

create table density_sup_04 as select * from density where density>0.4;

Copyright - IRSTV - 2009 - www.orbisgis.org