#1 Fri 07 August 2015 17:00
- Beastyjip
- Juste Inscrit !
- Date d'inscription: 13 Nov 2013
- Messages: 5
QGIS : Conception d'un modèle
Bonjour,
Je cherche à créer un modèle pour automatiser une tâche que j'exécute régulièrement manuellement.
J'ai une couche vectorielle de polygones (iris insee) et une couche vectorielle de lignes (routes).
Mon objectif est d'obtenir un nouveau fichier de route pour chaque iris et d'affecter un nombre d'habitant à chaque tronçon de routes.
Pour arriver à ce résultat, je veux séparer :
Tous mes polygones de ma couche vectorielle iris.
Découper la couche vectorielle de lignes par chacun des polygones iris.
Recalculer les longueurs de lignes obtenues et les sommer pour pour chaque couche de ligne obtenues.
Avec cette somme et le champ population de chaque polygone iris, je veux calculer une densité de population au mètre linéaire.
Avec ce résultat, je veux recalculer le nombre d'habitant pour chaque tronçon de chaque couche de lignes.
Pouvez-vous m'indiquer comment procéder ? Je bloque surtout sur la bonne utilisation du calculateur de champ et la récupération des résultats dans e modeleur graphique.
J'ai joint le modèle créé.
Merci pour votre aide.
Dernière modification par Beastyjip (Fri 07 August 2015 17:07)
Hors ligne
#2 Mon 10 August 2015 11:16
- Beastyjip
- Juste Inscrit !
- Date d'inscription: 13 Nov 2013
- Messages: 5
Re: QGIS : Conception d'un modèle
J'ai mis à jour le modèle pour retirer la séparation de tous les polygônes. Ca ne fonctionnait pas dès cette étape.
Lors de l'exécution du modèle mis à jour, j'ai un soucis avec le calcul de la densité. Voici ce que j'obtiens :
Démarrage de l'algorithme Densité linéaire ...
Préparation de l'algorithme : QGISCLIP_1
Exécution de Découpe des routes selon iris [1/5]
Parameters: INPUT =L...Rte.shp, OVERLAY =L.../IRIS__0101.shp
Converting outputs
OK. L'exécution a duré 4.710 ms (1 sorties).
Préparation de l'algorithme : QGISFIELDCALCULATOR_1
Exécution de Mise à jour longueur [2/5]
Parameters: INPUT_LAYER =C:\...\OUTPUT.shp, FIELD_NAME =METERS, FIELD_TYPE =0, FIELD_LENGTH =10, FIELD_PRECISION =3, NEW_FIELD =False, FORMULA =$length
Converting outputs
OK. L'exécution a duré 0.265 ms (1 sorties).
Préparation de l'algorithme : QGISBASICSTATISTICSFORNUMERICFIELDS_1
Exécution de SOMME METERS [3/5]
Parameters: INPUT_LAYER =C:\...\OUTPUTLAYER.shp, FIELD_NAME =METERS
Converting outputs
OK. L'exécution a duré 0.094 ms (11 sorties).
Préparation de l'algorithme : QGISFIELDCALCULATOR_2
Exécution de Densité [4/5]
Parameters: INPUT_LAYER =L.../IRIS__0101.shp, FIELD_NAME =Densité, FIELD_TYPE =0, FIELD_LENGTH =10, FIELD_PRECISION =3, NEW_FIELD =True, FORMULA ='Population' / ''METERS'
Echoué
Erreur lors de l'exécution de l'algorithme Densité function takes exactly 5 arguments (1 given) See log for more details
J'ai joint le modèle modifié.
Avez-vous une idée de comment gérer correctement ce calcul de densité ?
Dernière modification par Beastyjip (Mon 10 August 2015 11:19)
Hors ligne
#3 Mon 10 August 2015 11:43
- Beastyjip
- Juste Inscrit !
- Date d'inscription: 13 Nov 2013
- Messages: 5
Re: QGIS : Conception d'un modèle
J'ai trouvé le point qui bloquait pour le calcul de la densité. Il fallait renseigner le champ précision par 'Somme créé par l'algorithme' pour le module calculteur de champ.
En revanche, j'ai une nouvelle erreur dans l'exécution du modèle :
Démarrage de l'algorithme Densité linéaire ...
Préparation de l'algorithme : QGISCLIP_1
Exécution de Découpe des routes selon iris [1/4]
Parameters: INPUT =L.../Rte.shp, OVERLAY =L.../IRIS__0101.shp
Converting outputs
OK. L'exécution a duré 4.709 ms (1 sorties).
Préparation de l'algorithme : QGISFIELDCALCULATOR_1
Exécution de Mise à jour longueur [2/4]
Parameters: INPUT_LAYER =C:\...\OUTPUT.shp, FIELD_NAME =METERS, FIELD_TYPE =0, FIELD_LENGTH =10, FIELD_PRECISION =3, NEW_FIELD =False, FORMULA =$length
Converting outputs
OK. L'exécution a duré 0.281 ms (1 sorties).
Préparation de l'algorithme : QGISBASICSTATISTICSFORNUMERICFIELDS_1
Exécution de SOMME METERS [3/4]
Parameters: INPUT_LAYER =C:\...\OUTPUTLAYER.shp, FIELD_NAME =METERS
Converting outputs
OK. L'exécution a duré 0.078 ms (11 sorties).
Préparation de l'algorithme : QGISFIELDCALCULATOR_2
Echoué
Erreur lors de l'exécution de l'algorithme Densité Mauvaise valeur : 16152.75
La valeur indiqué comme mauvaise correspond bien à la somme de mes longueurs de route. Mais le calcul population / somme de meters ne se fait pas.
Avez-vous une idée ?
Dernière modification par Beastyjip (Mon 10 August 2015 11:44)
Hors ligne
#4 Mon 10 August 2015 15:33
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS : Conception d'un modèle
Bonjour,
Vous utiliser la statistique "sum" pour définir la précision du nouveau champs densité, or la précision du champs définie le nombre de chiffre après la virgule, elle n'a donc rien avoir avec "sum". Par exemple, si vous créez un champ d’une longueur de 10 et doté d’une précision de 3, vous aurez 6 chiffres avant la virgule et 3 chiffres après, soit un total de 10.
Je ne suis pas certain qu'il soit possible de récupérer la sortie "sum" pour l'utiliser dans la formule de densité. Mais de toute façon cette valeur est la somme totale de tous les tronçon et non pas la somme des tronçons par IRIS. L'outil "statistics by categories" serait plus approprié mais il faudrait avoir un champs identifiant l'IRIS dans la table des routes. Ce qui nous amène à la nécessité d'utiliser des jointures spatiales via l'outil "join attributes by location". D'autant que cet outil permets de calculer directement des statistiques sur les champs joint.
Attention, si vous voulez découper vos routes avec vos polygones IRIS ce n'est pas l'outil "clip" qu'il faut utiliser, mais l'outil intersect. L'outil clip vous permet simplement de faire une extraction des lignes qui intersectent l'emprise de l'ensemble des IRIS mais ne fait pas de découpage.
Attention également quand vous écrivez des expressions dans la calculatrice de champs: les noms de colonne sont définis par des double quote et les chaines de texte par de simple quote.
Je vous joins un modèle exemple.
Dernière modification par dominique.lys (Mon 10 August 2015 15:41)
Hors ligne
#5 Mon 10 August 2015 16:41
- Beastyjip
- Juste Inscrit !
- Date d'inscription: 13 Nov 2013
- Messages: 5
Re: QGIS : Conception d'un modèle
Merci pour votre réponse et ses précisions, je regarde ça.
Hors ligne
#6 Mon 10 August 2015 17:38
- Beastyjip
- Juste Inscrit !
- Date d'inscription: 13 Nov 2013
- Messages: 5
Re: QGIS : Conception d'un modèle
En effet, les jointures spatiales répondent bien à mon besoin. Merci beaucoup pour votre aide.
Hors ligne