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 !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Mon 20 March 2017 12:56

fnixou
Participant actif
Date d'inscription: 22 Feb 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 (Mon 20 March 2017 12:57)

Hors ligne

 

#2 Tue 21 March 2017 11:14

Florent LUQUET
Participant occasionnel
Lieu: Vallet
Date d'inscription: 24 Mar 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 Tue 21 March 2017 16:18

fnixou
Participant actif
Date d'inscription: 22 Feb 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 Tue 21 March 2017 16:23

Florent LUQUET
Participant occasionnel
Lieu: Vallet
Date d'inscription: 24 Mar 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 Tue 21 March 2017 16:33

fnixou
Participant actif
Date d'inscription: 22 Feb 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 (Tue 21 March 2017 16:34)

Hors ligne

 

Pied de page des forums

Powered by FluxBB