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 Tue 26 July 2022 16:12

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1668

QGIS: orientation ligne electrique dans un atlas

Bonjour,
Je suis en train de faire un atlas par pylône sur lequel passe une ligne électrique. Cette ligne est orientée grosso modo nord-ouest - sud-est. Est-il possible de visualiser cette ligne de manière horizontale dans l'atlas, c'est orientée ouest-est (ou est-ouest)?
Merci.

Hors ligne

 

#2 Tue 26 July 2022 18:29

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: QGIS: orientation ligne electrique dans un atlas

Bonjour,

Si l'orientation est fixe, il est possible d'utiliser l'option Rotation de la carte dans les propriétés de l'objet carte.

Sinon, il faut calculer la rotation à appliquer à chaque pylône selon la ligne.

Voir ces ressources que j'ai trouvé en faisant une recherche rapide :
https://gis.stackexchange.com/questions … line-layer
https://gis.stackexchange.com/questions … on-in-qgis

Il existe aussi une fonction azimuth dans QGIS, à voir si utilisable facilement.

Hors ligne

 

#3 Tue 26 July 2022 19:27

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1668

Re: QGIS: orientation ligne electrique dans un atlas

Il faudrait découper la ligne électrique par l'emprise de l'atlas, et calculer son orientation et sa ré-orientation à l'horizontale comme expliqué ici : https://georezo.net/forum/viewtopic.php … tion+atlas
Ensuite par une jointure spatiale rapatrier cette ré-orientation sur les pylones.
Mais comment découper la ligne électrique par l'emprise de l'atlas?
En pj un exemple d'atlas


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

Hors ligne

 

#4 Tue 26 July 2022 21:04

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: QGIS: orientation ligne electrique dans un atlas

Hum... je ne comprends pas pourquoi vous avez fait un nouveau sujet sur le forum, votre besoin est toujours le même que dans l'autre sujet ?

Dans le premier sujet, il y avait un doute : orienter l'atlas selon la parcelle ou selon la ligne électrique ?
Ici vous parlez d'un atlas des pylônes et d'orienter selon la ligne électrique. Je suppose que votre couche de couverture pour l'atlas est la couche des pylônes ?

Si c'est bien le cas, je propose de calculer pour chaque pylône son orientation selon la ligne électrique la plus proche.

Pour ça on peut utiliser un champ virtuel dans lequel on calcule l'orientation avec l'expression suivante :

Code:

-- création de la variable geom qui sera utilisée juste après
with_variable('geom',
-- intersection entre le perimetre du buffer de 50m autour du pylône et la ligne électrique la plus proche
intersection(
    --exterior ring permet de récupérer le périmètre du buffer
    exterior_ring(buffer($geometry,50)),
    -- overlay_nearest() récupère la valeur du champ id de la ligne la plus proche, ligne étant le nom de la couche
    -- get_feature() récupère l'entité ayant cette valeur de champ id
    -- geometry() récupère la géométrie de cette entité
    -- si vous avez déjà dans un champ des pylônes l'identifiant de la ligne électrique correspondante il est possible de se passer du overlay_nearest()
    geometry(get_feature('ligne','id',array_to_string(overlay_nearest('ligne',"id"))))
),
-- calcul de l'orientation en degrés selon les deux points sur la ligne électrique à 50m autour du pylône
round(degrees(azimuth(
    -- point_n() permet de récupérer le premier ou le deuxième point de la géométrie résultante de l'intersection (un multipoint)
    -- try() pour gérer le cas ou le pylône est en début ou fin de ligne électrique et donc l'intersection a donné seulement un unique point après le début/avant la fin, dans ce cas on prend le point lui-même pour premier point ou deuxième point
    try(point_n(@geom,1),$geometry),
    try(point_n(@geom,2),$geometry)
)))
)

Ensuite dans le composeur d'impression (mise en page) il suffit d'utiliser 90 - la valeur de l'attribut orientation calculé :

Code:

90-orientation

Dernière modification par p.jeremie (Tue 26 July 2022 21:37)

Hors ligne

 

#5 Tue 26 July 2022 21:36

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: QGIS: orientation ligne electrique dans un atlas

conejo a écrit:

Il faudrait découper la ligne électrique par l'emprise de l'atlas, et calculer son orientation et sa ré-orientation à l'horizontale comme expliqué ici : https://georezo.net/forum/viewtopic.php … tion+atlas
Ensuite par une jointure spatiale rapatrier cette ré-orientation sur les pylones.
Mais comment découper la ligne électrique par l'emprise de l'atlas?
En pj un exemple d'atlas


Si votre couche de couverture est la parcelle et que vous voulez orienter l'atlas selon le morceau de ligne qui traverse la parcelle, alors il faut calculer l'orientation en fonction du point d'entrée et de sortie de la ligne dans la parcelle.

Je propose cette expression :

Code:

-- création de la variable geom qui sera utilisée juste après
with_variable('geom',
-- intersection entre la géométrie de la parcelle et la ligne électrique la plus proche
    intersection(
        $geometry,
        -- overlay_nearest() récupère la valeur du champ id de la ligne la plus proche, ligne étant le nom de la couche
        -- get_feature() récupère l'entité ayant cette valeur de champ id
        -- geometry() récupère la géométrie de cette entité
        -- si vous avez déjà dans un champ des pylônes l'identifiant de la ligne électrique correspondante il est possible de se passer du overlay_nearest()
        geometry(get_feature('ligne','id',array_to_string(overlay_nearest('ligne',"id"))))
),
-- calcul de l'orientation en degrés selon le premier et le dernier point de la ligne intersectant la parcelle (donc le point d'entrée et de sortie de la ligne dans la parcelle)
round(degrees(azimuth(
    -- utilisation des fonction start_point et end_point
    start_point(@geom),
    end_point(@geom)
)))
)

Puis même chose dans le composeur d'impression (mise en page) il suffit d'utiliser 90 - la valeur de l'attribut orientation calculé.

Hors ligne

 

#6 Wed 27 July 2022 10:38

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1668

Re: QGIS: orientation ligne electrique dans un atlas

Je suppose que votre couche de couverture pour l'atlas est la couche des pylônes ?


Oui, par contre j'ai vraiment du mal à saisir l'expression dans Qgis. J'ai tenté ceci sans résultat.

with_variable('geom', exterior_ring(buffer($geometry,50)),geometry(get_feature('Ligne','id',array_to_string(overlay_nearest('Ligne',"id")))))


Désolé mais je n'arrive pas malgré vos explications

Hors ligne

 

#7 Wed 27 July 2022 12:05

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: QGIS: orientation ligne electrique dans un atlas

Avez-vous pris le temps de lire mes commentaires dans l'expression proposée ?
Ce sont les lignes qui commencent par --

Et avez-vous essayé de reprendre telle quelle l'expression dans la calculatrice de champ en remplaçant id et ligne par vos valeurs dans cette partie de l'expression :

Code:

geometry(get_feature('ligne','id',array_to_string(overlay_nearest('ligne',"id"))))

Hors ligne

 

#8 Wed 27 July 2022 13:52

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1668

Re: QGIS: orientation ligne electrique dans un atlas

J'ai remplacé ligne par Ligne (nom de ma ligne) et id par Parcelle

geometry(get_feature('Ligne','Parcelle',array_to_string(overlay_nearest('Ligne',"Parcelle"))))


sans résultat

Hors ligne

 

Pied de page des forums

Powered by FluxBB