Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 lun. 20 mars 2017 12:56

fnixou
Membre
Date d'inscription: 22 févr. 2017
Messages: 82

QGIS 2.18: Intersection et isochrones

Bonjour à tous je cherche actuellement une solution me permettant de calculer le % d'aire partagée pour chacun de mes isochrones dans une shapefile contenant plusieurs isochrones.

Dans l'idée j'ai une couche contenant un ensemble d'isochrones, ces isochrones peuvent potentiellement se toucher.
J'aimerais pour chaque isochrone rajouter un champs dans ma table attributaire correspondant à l'aire partagée par chacun.

Exemple : l'isochrone 1 partage une partie de son aire avec l'isochrone 2,5,8,9 partageant avec chacun 20%,25%,50%,80% de l'aire de 1.
               je voudrais alors que dans mon champs nouvellement créé j'entre la valeur 175 ou 1,75 peut importe.

J'espère avoir été assez clair.
Merci d'avance pour vos retours et n'hésitez pas à me poser des questions si un détail vous manque.

Cordialement,

Dernière modification par fnixou (lun. 20 mars 2017 12:57)

Hors ligne

 

#2 mar. 21 mars 2017 11:14

Florent LUQUET
Membre
Lieu: Vallet
Date d'inscription: 24 mars 2016
Messages: 12

Re: QGIS 2.18: Intersection et isochrones

Bonjour,

Avec PostGIS ou une base spatialite on peut faire ça aisément.

Exemple de syntaxe PostGIS :

Code:

select
    id_org,
    sum(surf_overlap) as surf_overlap_tot,
    sum(perc_overlap) as perc_overlap_tot
from
    (
    select
        a.id as id_org,
        st_area(a.geom) as surf_org,
        b.id as id_overlap,
        st_area(st_intersection(a.geom, b.geom)) as surf_overlap,
        (st_area(st_intersection(a.geom, b.geom))/st_area(a.geom)) * 100 as perc_overlap
    from
        public.isochrone a,
        public.isochrone b
    where
        st_intersects(b.geom, a.geom) and
        a.id <> b.id
    order by
        a.id
    ) qry
group by
    id_org

Sinon en shapefile, il faut d'abord calculer la surface complète de chaque isochrones, puis utiliser la commande "Vecteur / Outils de géotraitements / Union" et faire les calculs de surface de chaque morceaux rapportés à la surface d'origine.

Ensuite, on regroupe par id d'origine grâce à la commande "Traitement / Géotraitements QGIS / Statistiques par catégories".

Bonne continuation.


Florent LUQUET
www.maply.fr

Hors ligne

 

#3 mar. 21 mars 2017 16:18

fnixou
Membre
Date d'inscription: 22 févr. 2017
Messages: 82

Re: QGIS 2.18: Intersection et isochrones

merci pour le coup de main je vais passer par postgis l'utilisant déjà pour d'autres requêtes .
PS : la requête marche parfaitement il faudra tout de même que je l'améliore un poil pour tenir compte du fait que si une portion d'aire a déjà été partagé entre 2 iso alors le calcul doit en tenir compte je sais pas encore bien comment je vais faire mais je vais bien finir par trouver xD

Hors ligne

 

#4 mar. 21 mars 2017 16:23

Florent LUQUET
Membre
Lieu: Vallet
Date d'inscription: 24 mars 2016
Messages: 12

Re: QGIS 2.18: Intersection et isochrones

Effectivement, il y a une petite subtilité... je vais y réfléchir. Bon courage.


Florent LUQUET
www.maply.fr

Hors ligne

 

#5 mar. 21 mars 2017 16:33

fnixou
Membre
Date d'inscription: 22 févr. 2017
Messages: 82

Re: QGIS 2.18: Intersection et isochrones

merci à toi je ne sais pas si tu as vu l'explication exacte de ce que je souhaitais mais si ce n'est pas le cas elle se trouve ici

Dernière modification par fnixou (mar. 21 mars 2017 16:34)

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |