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 Thu 04 July 2019 16:06

BOYER.M
Participant actif
Date d'inscription: 5 Sep 2012
Messages: 147

QGIS 3.6: Selection sur plusieurs criteres

Bonjour,

Je vous sollicite étant donné que je ne parviens pas à trouver la solution malgré mes recherches.

J'ai une couche de type ligne, qui a un attribut appelé "Type" (type A, B ou C).
Je souhaite à partir de plusieurs critères modifier certains tronçons qui son en C ou en B en A.

Les critères :

- la longueur du tronçons doit être inférieur ou égal à 30 m - pas de soucis pour celui-ci.

- le tronçons ne doit pas contenir d'angle inférieur à 170° ou supérieur à 190° (sur les sommets) - ici je sèche sur la méthode de calcul des angles d'un tronçon (un tronçon pouvant avoir 0 ou plusieurs sommets), j'ai regardé du coté de l'azimut mais cela indique un seul azimut par tronçon.

- le tronçons de "type C"doit intersecter à ses 2 extrémités un tronçon en de "type A" - ici je ne parviens pas à trouver la méthode pour indiqué uniquement au 2 extrémités, si l'intersection n'est qu'a une extrémité il ne pas me le sélectionner.

En espérant avoir était assez clair.
Si certains on des idées, pistes de réflexion je suis preneurs

Merci par avance,

Hors ligne

 

#2 Thu 04 July 2019 16:35

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS 3.6: Selection sur plusieurs criteres

le tronçons ne doit pas contenir d'angle inférieur à 170° ou supérieur à 190° (sur les sommets)


Pouvez-vous inclure un schéma de ce qui est acceptable et de ce qui ne l'est pas ?

Merci

Hors ligne

 

#3 Fri 05 July 2019 16:34

BOYER.M
Participant actif
Date d'inscription: 5 Sep 2012
Messages: 147

Re: QGIS 3.6: Selection sur plusieurs criteres

carteq a écrit:

le tronçons ne doit pas contenir d'angle inférieur à 170° ou supérieur à 190° (sur les sommets)


Pouvez-vous inclure un schéma de ce qui est acceptable et de ce qui ne l'est pas ?

Merci


Bonjour,

en espérant que se soit plus claire.

Merci,


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#4 Fri 05 July 2019 21:14

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS 3.6: Selection sur plusieurs criteres

le tronçons ne doit pas contenir d'angle inférieur à 170° ou supérieur à 190° (sur les sommets) - ici je sèche sur la méthode de calcul des angles d'un tronçon (un tronçon pouvant avoir 0 ou plusieurs sommets), j'ai regardé du coté de l'azimut mais cela indique un seul azimut par tronçon.


Il faudrait soit programmer une boucle qui passe tous les segments,

Ou bien diviser chaque ligne en segments. Il y a un outil pour ça : exploser des lignes. On peut alors utiliser l'azimuth sur chacun. Ajoutez un champ qui contiendra 0 ou 1, selon que l'azimuth est accepté ou pas. Il est accepté en fonction de la différence avec le précédent sur la même ligne d'origine. Je ferais cette dernière opération en SQL, mais il est sûrement possible d'y arriver avec la calculatrice de champs. Enfin, il faut aggréger les lignes ensemble à nouveau, en utilisant le champ de 0/1 pour aggréger, en utilisant l'aggrégateur min(). Si une ligne aggrégée se retrouve avec un 0, elle contient un angle non désiré.

le tronçons de "type C"doit intersecter à ses 2 extrémités un tronçon en de "type A" - ici je ne parviens pas à trouver la méthode pour indiqué uniquement au 2 extrémités, si l'intersection n'est qu'a une extrémité il ne pas me le sélectionner.


Ça se fait bien en SQL. Je vais y travailler si j'ai le temps dans les prochains jours.

Hors ligne

 

#5 Mon 08 July 2019 13:42

BOYER.M
Participant actif
Date d'inscription: 5 Sep 2012
Messages: 147

Re: QGIS 3.6: Selection sur plusieurs criteres

Bonjour,

Merci carteq, je vais regarder ce que tu me dis.

Cordialement

Hors ligne

 

#6 Tue 09 July 2019 03:31

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS 3.6: Selection sur plusieurs criteres

(supprimé)

Dernière modification par carteq (Tue 09 July 2019 15:50)

Hors ligne

 

#7 Tue 09 July 2019 15:27

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS 3.6: Selection sur plusieurs criteres

(supprimé)

Dernière modification par carteq (Tue 09 July 2019 15:49)

Hors ligne

 

#8 Tue 09 July 2019 15:48

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS 3.6: Selection sur plusieurs criteres

le tronçons de "type C"doit intersecter à ses 2 extrémités un tronçon en de "type A" - ici je ne parviens pas à trouver la méthode pour indiqué uniquement au 2 extrémités, si l'intersection n'est qu'a une extrémité il ne pas me le sélectionner.


Comme ça, ça fonctionne :

Code:

Select Z from (
Select a.geometry as GZ, a.[ID 2] as Z from L1 as a, L2 as b where  intersects(buffer(StartPoint(a.geometry), 0.01), b.geometry)
), L2 as c 
where  intersects(buffer(EndPoint(GZ), 0.01), c.geometry)

Pour le moment, je dois ajouter un buffer de 1cm autour de chaque point, sinon ça ne fonctionne pas. Je ne trouve pas d'opérateur spatial qui semble bien fonctionner entre les lignes et les points. "Touches" fonctionne dans un autre logiciel, mais pas avec spatialite...

Peut-être que mes géométries ne se touchent pas, mais en théorie elles se touchent.

Dernière modification par carteq (Tue 09 July 2019 16:12)

Hors ligne

 

#9 Thu 11 July 2019 14:56

BOYER.M
Participant actif
Date d'inscription: 5 Sep 2012
Messages: 147

Re: QGIS 3.6: Selection sur plusieurs criteres

Bonjour,

Merci pour vos retours, j'ai eu différentes urgences cette semaine qui mon eloignée de cette problématique je pourrai m'y remettre semaine prochaine. Encore merci.

Hors ligne

 

#10 Wed 17 July 2019 14:17

BOYER.M
Participant actif
Date d'inscription: 5 Sep 2012
Messages: 147

Re: QGIS 3.6: Selection sur plusieurs criteres

carteq a écrit:

le tronçons de "type C"doit intersecter à ses 2 extrémités un tronçon en de "type A" - ici je ne parviens pas à trouver la méthode pour indiqué uniquement au 2 extrémités, si l'intersection n'est qu'a une extrémité il ne pas me le sélectionner.


Comme ça, ça fonctionne :

Code:

Select Z from (
Select a.geometry as GZ, a.[ID 2] as Z from L1 as a, L2 as b where  intersects(buffer(StartPoint(a.geometry), 0.01), b.geometry)
), L2 as c 
where  intersects(buffer(EndPoint(GZ), 0.01), c.geometry)

Pour le moment, je dois ajouter un buffer de 1cm autour de chaque point, sinon ça ne fonctionne pas. Je ne trouve pas d'opérateur spatial qui semble bien fonctionner entre les lignes et les points. "Touches" fonctionne dans un autre logiciel, mais pas avec spatialite...

Peut-être que mes géométries ne se touchent pas, mais en théorie elles se touchent.


Bonjour,

Quel outil utilises-tu ?

Penses-tu que l'outil de sélection par expréssion de QGIS suffise ?

Cordialement,

Hors ligne

 

Pied de page des forums

Powered by FluxBB