#1 Thu 01 February 2018 14:08
- ORANGE mélanie
- Juste Inscrit !
- Date d'inscription: 30 Jan 2018
- Messages: 2
QGIS: réalisation d'une carte défense incendie
Bonjour,
Je voudrais savoir si il y a un moyen de créer des lignes de longueurs égales à partir d'un point, sachant que ces lignes doivent passer par des routes.
Ceci est à réaliser dans le but de dessiner une carte de défense incendie, il faut donc, à partir de chaque poteau incendie, délimiter un périmètre de 400 ou 200 m sachant que chacun de ces périmètres est déterminé par les routes que peuvent emprunter les pompiers. Nous devons établir les zones couvertes et les zones non couvertes par les différents poteaux incendie.
Je cherche donc une méthode rapide, automatisée afin de ne pas avoir à tracer chaque ligne à la main.
Je suis novice sur QGIS, je n'ai aucune connaissance en programmation.
Merci beaucoup par avance pour votre aide
Hors ligne
#2 Thu 01 February 2018 18:48
- Benoit91
- Participant assidu
- Date d'inscription: 2 Oct 2008
- Messages: 263
Re: QGIS: réalisation d'une carte défense incendie
Bonjour
C'est possible avec la boite a outils traitement et la commande GRASS v.net.iso
Avec un paramétrage simple, vos PEI d'un coté et un filaire de voie de l'autre (type bdtopo), vous pouvez obtenir une carte de couverture incendie.
Dans le fichier produit, les categorie "cat" correspondent à ce que vous indiquez dans la boite de paramétrage "cost for isoline"
le 1 correspond a votre première valeur (200m)
le 2 à la seconde valeur (400m)
le 3 au reste (supérieur a 400m)
dans votre exemple.
voir http://www.ing.unitn.it/~Grass/docs/tut … node5.html pour aller plus loin.
Cordialement
Dernière modification par Benoit91 (Thu 01 February 2018 18:50)
Hors ligne
#3 Fri 02 February 2018 11:46
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: QGIS: réalisation d'une carte défense incendie
Aloha,
Je rebondis sur la réponse de Benoit. Est-il possible d'utiliser pour la variable "costs" (costs=1000,2000,5000) les valeurs d'attributs de mes hydrants ? In extenso, sur chacun de mes hydrants, j'ai une valeur de pression qui indique s'ils couvrent 150, 200 ou plus.
D'avance, merci
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#4 Fri 02 February 2018 12:07
- ORANGE mélanie
- Juste Inscrit !
- Date d'inscription: 30 Jan 2018
- Messages: 2
Re: QGIS: réalisation d'une carte défense incendie
Merci pour ces informations, ça a l'air de bien fonctionner. Je suis également intéressée par la réponse à la question de Pierre.
Cordialement,
Hors ligne
#5 Fri 02 February 2018 13:00
- Benoit91
- Participant assidu
- Date d'inscription: 2 Oct 2008
- Messages: 263
Re: QGIS: réalisation d'une carte défense incendie
Bonjour Pierre
Il me semble que c'est possible, mais je n'ai pas testé.
Dans la boite paramètre v.net.iso dans "paramètres avancés" il y a l'option "Node cost column".
Sinon, il faut filtrer les PEI en fonction de leur pression et adapter les plages du paramètre "costs for isolines".
Cordialement.
Hors ligne
#6 Fri 02 February 2018 18:56
Re: QGIS: réalisation d'une carte défense incendie
Bonjour,
En alternative, c'est possible de le faire avec une requête PostGIS. Cela permet d'appliquer plus finement les conditions de suivi topologique, ainsi que les conditions d'arrêt en fonction des attributs de chaque hydrant ( distance, pression, conditions sur la voirie, etc).
C'est une CTE récursive, qui permet le parcours d'un réseau topologique, et ensuite donne la zone concernée avec un buffer sur les géométries des voies.
Cette présentation donne la requête et des explications sur la problématique ( à partir de la slide 35) :
https://github.com/Oslandia/presentatio … patial.pdf
Un exemple complet de requête récursive est donné ci-dessous. En combinant les éléments de la présentation, la requête complète ci-dessous avec vos données cela devrait être possible d'avoir un résultat global de carte de couverture incendie en une requête PostGIS.
Code:
-- La requete recursive (on met les resultats dans une table) -- Cette requete recherche tous les chemins possibles a partir d'un troncon -- donne en suivant les troncons dans leur sens naturel (de la source a la target). drop table rec_res; create table rec_res as with recursive -- la CTE search_graph(id, target, depth, path, cycle) as ( -- Initialisation -- on part d'un troncon specifique select g.id, g.target, 1 as depth, ARRAY[g.id] as path, false as cycle from edge_table as g where -- mettre ici les conditions des troncons initiaux desquels on part source = 6 union all -- Partie récursive select g.id -- on a besoin de garder la target pour pouvoir jointurer a la prochaine iteration , g.target -- on incremente la profondeur a chaque iteration , sg.depth + 1 as depth -- on ajoute le troncon en cours dans le chemin deja parcouru , path || g.id as path -- l'opérateur || permet d'ajouter la valeur au tableau -- on calcule la longueur du chemin au fur et a mesure --, sg.length + g.length as length -- on verifie si on est deja passe par ce troncon , g.id = ANY(path) as cycle from -- la table qu'on jointure : c'est le graphe (au format pgrouting) edge_table as g join -- la CTE search_graph as sg on -- on jointure la CTE et edge_table pour se déplacer dans le graphe -- nos chemins sont crees en avancant dans le sens naturel des troncons -- on ne revient donc pas en arriere sg.target = g.source where -- on ne prend pas en compte les eventuels cycles not cycle -- si on veut s'arrêter dans la propagation il faut ajouter des conditions ici. Par exemple sur l'attribut length ( voir dans la présentation) ) select -- tous les champs de la CTE sg.* -- on renvoie egalement la geometrie pour pouvoir visualiser dans qgis -- pour cela on jointure avec la table du graphe , edge_table.the_geom from -- La CTE search_graph as sg join edge_table on sg.id = edge_table.id -- on limite toujours les resultats pour ne pas avoir de boucle infinie meme -- si on s'est trompe dans les criteres d'arret limit 10000;
Hors ligne