Suite

Dissoudre les segments de ligne dans QGIS s'ils se touchent et appartiennent à la même classe ?

Dissoudre les segments de ligne dans QGIS s'ils se touchent et appartiennent à la même classe ?


J'ai des segments de ligne qui ont les 3 attributs suivants (Class, start_point, end_point). Je voudrais fusionner/dissoudre les segments de ligne qui appartiennent à la même classe s'ils se croisent (touchent).

c'est-à-dire si le point de fin d'un segment de ligne et le point de départ d'un autre segment de ligne sont identiques (valeurs similaires). (NB. J'aimerais dissoudre les lignes avec la même valeur de classe. Le champ de dissolution peut également être un nouveau champ qui sera généré lorsque les flux remplissent la condition ci-dessus : c'est-à-dire qu'ils appartiennent à la même classe ainsi qu'au point final d'un segment = point de départ d'un autre segment)

Les nombres encerclés représentent la classe (ordre) des cours d'eau. Chaque segment a un numéro de classe correspondant, comme indiqué. Les segments entourés en rouge doivent être dissous séparément. Il faut faire de même pour les segments entourés de vert. Chaque segment a un point de départ et un point de fin. Par exemple, pour les segments en jaune, le end_point d'un segment et le start_point de l'autre coïncident.

Le segment inférieur entouré en rouge ne doit pas être dissous avec le segment inférieur entouré en vert car seuls leurs points de terminaison coïncident.

Comment puis-je procéder pour le faire dans QGIS?


Tout dépend à quoi ressemblent vos données. Un moyen simple consiste à utiliser deux étapes :

  1. Banque d'images - Outils de géotraitement - Dissoudre (dissoudre tout avec la même classe)
  2. Banque d'images - Outils de géométrie - Multipart à singleparts (les lignes de freinage qui ne se touchent pas aux lignes simples)

Veuillez noter de cette façon que les valeurs de la table - start_point et end_point pour les lignes après ces étapes n'auront plus beaucoup de valeur. Le résultat de cette manière sera également des lignes dissoutes si leurs points de début et de fin touchent toujours exactement 2 lignes. S'ils se touchent en dehors des points de départ/fin, se croisent ou se touchent plusieurs (généralement une croix en Y), ils ne seront pas dissous après la deuxième étape.


@Miro, je dois encore dire merci. J'ai réutilisé votre approche et j'ai trouvé un autre outil qui m'aide, à savoir "diviser les lignes avec les lignes". Pour chaque classe je l'intersecte en utilisant l'ordre immédiatement supérieur. Donc finalement l'approche que j'ai utilisée est;

  1. Dissoudre (dissoudre tout avec la même classe)

  2. Multipart to singleparts (cassera les lignes qui ne se touchent pas aux lignes simples)

  3. Extraire chaque classe (ordre) de flux (créant ainsi de nouveaux fichiers de formes pour chaque ordre de flux)

  4. A partir de la boîte à outils de traitement, utilisez l'outil "Split lines with lines" - Intersectez chaque classe avec une classe supérieure.

Les résultats sont comme prévu.


Voir la vidéo: Границы кадастрового деления в QGIS