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é ?

#1 Wed 29 July 2020 10:04

Lemat
Membre
Date d'inscription: 21 Dec 2017
Messages: 3

QGIS: Angles aux intersections

Bonjour à tous,

Je travaille actuellement sur une problématique de sécurité routière. Je fabrique des indicateurs composites qui tendent à mettre en lumière les routes accidentogènes, ça fonctionne plutôt bien pour le moment, j'en suis content.

Cependant, dans un soucis d'optimiser mon SIG, j'aimerai faire ressortir les intersections selon leur angle.

Mais je sèche de plus en plus...

Pour faciliter les calculs, je me suis créé un fichier de formes qui ne prend en compte que les intersections (j'ai découpé le fichier route d'OSM dans des buffers de 3m) et chacune d'entre elles a un ID qui lui est propre (ce qui permet de fusionner les routes par ID au besoin).

Ma question est la suivante : comment créer une entité qui mette en lumière ces angles ?

J'ai eu plusieurs approches pour l'instant, la première était de découper mes buffers en fonction des routes, cependant cela ne fonctionne que pour les carrefours en X (cela me donne un camembert en 4 parts).
Pour les carrefours en T rien ne se passe. Mon intuition est que le segment de route qui ne représente qu'un rayon du buffer ne le coupe pas car Qgis ne prend en compte que les polylignes traversant le polygone en totalité.

Dans l'idéal j'aimerai que les angles aux intersections apparaissent dans ma table attributaire mais n'importe quelle solution ferait l'affaire.

Des idées ?

Hors ligne

 

#2 Wed 12 August 2020 15:42

MathieuR
Moderateur
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1678
Site web

Re: QGIS: Angles aux intersections

Bonjour,


Pour le calcul des angles, il est important que la couche de lignes soit de type ligne et non polyligne, selon moi, sinon, le calcul des angles sera compliqué

Soit :
- une couche de tronçons
- une couche de noeuds d'intersections

Cette expression peut faire l'affaire :

Code:

array_to_string(

array_foreach(

generate_series(1,aggregate('lignes', 'count', fid)),

with_variable(
'feat',
get_feature_by_id('lignes', @element)
,
case when intersects($geometry, geometry(@feat)) = 1 
then 
atan2(
(y_max(geometry(@feat)) - y_min(geometry(@feat))),
(x_max(geometry(@feat)) - x_min(geometry(@feat)))
)
end
)
)
)

Elle permet en un point donné de récupérer la liste des angles

L'expression sera sans doute à affiner et personnaliser !

En PJ, un projet test


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

geodata au cerema et petits billets en géomatique

Hors ligne

 

#3 Mon 24 August 2020 10:11

Lemat
Membre
Date d'inscription: 21 Dec 2017
Messages: 3

Re: QGIS: Angles aux intersections

Merci d'avoir pris le temps de me répondre, je vais essayer ça au plus vite !





PS : je suis aussi au Cerema, le monde de la géomatique est décidément très petit

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |