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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 20 August 2008 17:18

JMichel_31
Juste Inscrit !
Date d'inscription: 12 Mar 2008
Messages: 6

[Mapinfo] Assembler les polygones avec conservation des attributs

Bonjour,

Nouveau venu sur le Forum, je félicite les animateurs et contributeurs pour la mine d'information offerte à la communauté !

Voici mon problème : Sur Mapinfo 7.5, je cherche à récupérer les informations symboliques utiles issus d'un fichier microstation représentant des réseaux de fourreaux télécom.

A l'issue de différents traitements, je dispose :
- d'une couche Reseau (type lignes et polylignes) jointif,
- d'une couche PtReseauDebut et PtReseauFin correspondant aux extrémités de tronçons orientés (type point), même structure de table que la couche Reseau. La couche PtReseauTout concatenne ces deux couches.
- d'une couche Chambre, correspondant aux regards implantés aux intersections des tronçons de réseau. Il s'agit de polygones rectangulaires, dont certains sont englobés dans le plus "enveloppant", mais avec les mêmes données attributaires. La structure de table est différente que celle du Réseau.

Je souhaiterais récupérer les attributs de la couche Chambre dans les colonnes (à créer prélablement) de la couche de points PtReseauTout pour génerer ensuite une couche PtNoeud correspondant aux noeuds du réseau, non redondante.
Je pensais résoudre le problème comme suit :

1) Dans un premier temps, assembler les polygones pour récupérer l'enveloppe dans une couche ChambreEnveloppe pour supprimer les objets rectangles en doublon, mais comment ne pas perdre les attributs alors qu'il sont identiques pour les objets à assembler (un seul choix est proposé : valeur, somme ou moyenne, mais pas de formule ou fonction...) ?

2) Dans un deuxième temps, identifier les objets de PtReseau inclus dans ChambreEnveloppe via une requête. Mais alors, comment transférer les attributs de la couche ChambreEnveloppe vers les objets "enveloppés" de la couche PtReseauTout, dans les colonnes adhoc.

3) Comment enfin supprimer les objets points en doublon pour générer la couche Noeud ?


Quelqu'un aurait une idée sur la solution ou des conseils méthodologies ?
Merci par avance.

Jean-Michel Barbier, DSI-Ville de Toulouse

Hors ligne

 

#2 Wed 20 August 2008 18:07

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [Mapinfo] Assembler les polygones avec conservation des attributs

Bonjour
1) menu Table->Fusionner des objets depuis une colonne offre le choix de "valeur": il garde la valeur de l'attribut du premier objet trouvé. Condition: qu'une des colonnes comporte un identifiant commun aux chambres qui se chevauchent mais différent suivant les "groupes de chambres
2) menu Table->Mettre à jour colonne...avec la condition "within" (nb: je suppose que c'est PtReseauTout - et non PtReseau - que vous avez voulu dire au début du paragraphe ?)
3) après - ou mieux avant le 2) - un petit coup de cet outil, ou de celui-ci supprimera les points ayant la même localisation pour ne garder que l'un d'entre eux

Hors ligne

 

#3 Thu 21 August 2008 18:11

JMichel_31
Juste Inscrit !
Date d'inscription: 12 Mar 2008
Messages: 6

Re: [Mapinfo] Assembler les polygones avec conservation des attributs

Merci Maurice pour cette réponse "en temps réel" !

1) Je butte à cette étape.

En effet :
- J'ouvre la table Chambre, puis je lance Table > Fusionner les objets depuis une colonne.
- Je choisis le groupage par l'ID_ChambreEnveloppe qui répond bien aux critères que vous avez définis : tous les objets de la table "Chambre" devant être fusionnés (partageant la même enveloppe "ChambreEnveloppe") ont les mêmes attributs colonne par colonne. C'est en particulier le cas, bien sûr, pour la colonne_ID_ChambreEnvellope qui constitue l'identifiant "fédérateur". Les données attributaires diffèrent d'un objet à l'autre s'il ne font pas partie de la même ChambreEnveloppe (valeur d'ID_ChambreEnveloppe différent).

Si je définis ensuite la table sortante ChambreEnveloppe avec la même structure que la table Chambre, 5 cases à cocher sont offertes dans la boîte de dialogue "agrégation des données" :
Méthode :
- Blanc
- Valeur (qui semble le seul choix possible, mais n'admet pas de formule ou fonction)
- Somme
- Moyenne
et
- Aucune donnée (Autre possibilité...)

Dans les différents cas que j'ai testés, j'obtiens des objets parfaitement fusionnés d'un point de vue graphique (reprenant l'enveloppe du plus grand rectangle), mais avec perte des données attributaires sur l'ensemble des colonnes (données vides ou identiques par colonne en fonction de la valeur saisie, reprise comme du texte...
Quelque chose m'aurait-il échappé pour atteindre mon but de Récupérer les attributs de l'ensemble des champs ? Comment faire ?

2) En lancant une mise à jour de colonne, j'ai effectivement découvert qu'on pouvait faire une jointure géographique (avec within), et je pense que je peux maintenant résoudre le problème en effectuant de même pour récupérer un par un les attributs m'intéressant. Merci pour la piste !

nb: je suppose que c'est PtReseauTout - et non PtReseau - que vous avez voulu dire au début du paragraphe ?)


Oui c'est effectivement PtRéseauTout qu'il falait comprendre !

3) Je donnerais des nouvelles après avoir testé les outils proposés pour éliminer les points doublons...


Finalement c'est l'étape 1 qui est maintenant le facteur limitant dans la résolution de mon problème...

JMichel

Hors ligne

 

#4 Thu 21 August 2008 19:05

Marc-André
Participant assidu
Lieu: Montréal
Date d'inscription: 30 Sep 2005
Messages: 688

Re: [Mapinfo] Assembler les polygones avec conservation des attributs

Bonjour,

Lorsque vous fusionnez des polygones vous pouvez préalablement définir comme cible le polygone qui devra conserver les attributs. De cette façon, le nouvel ensemble ainsi crée héritera des attributs du polygone ciblé, à moins que certaines soient le résultat d'un calcul (ex: somme des superficies).

Hors ligne

 

#5 Thu 21 August 2008 19:21

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [Mapinfo] Assembler les polygones avec conservation des attributs

On parle bien ici de Table > Fusionner les objets depuis une colonne
Avec le choix Valeur (et sans rien indiquer dans la cas blanche !!) vous devez vous retrouver avec les attributs !!
La valeur retenue sera celle du premier objet rencontré dans le "groupe", ce qui n'a pas d'importance puisque toutes les valeurs sont identiques dans le groupe sauf ID_ChambreEnveloppe...pour lequel aucun choix n'est proposé puisque c'est le critère
S'il en est autrement c'est que la topologie de votre table est "bizarre" sad

Hors ligne

 

#6 Thu 18 September 2008 11:12

JMichel_31
Juste Inscrit !
Date d'inscription: 12 Mar 2008
Messages: 6

Re: [Mapinfo] Assembler les polygones avec conservation des attributs

Merci pour ces conseils, qui m'ont permis de résoudre le problème (il y avait effectivement quelques problèmes dans la table, et j'avais mal parametré la jointure !).

J'ai pu à l'occasion comparer les outils doublon.mbx et skimall.mbx.

Doublons travaille sur la table initiale et effectue directement les modifications dans la table (suppression des doublons)
Skimall apparaît quant à lui plus complet et la documentation de Jacques Paris est très complète.

A toutes fins utiles, si cela peut permettre à d'autres de gagner du temps, je résumerai les résultats "pratiques" obtenus par Skimall comme suit. Si l'on demande de générer la totalité des fichiers proposés, 5 fichiers peuvent être générés. On les obtient dans l'ordre suivant (ce n'est pas précisé dans la doc) :

1) Skim1     : fichier des "parents"
               (première occurence pour chaque groupe d'occurences multiples)
2) Skim2     : fichiers des dupliqués
               (dans le fichier initial)
3) Skim3     : fichier des occurence simples (non dupliqués)
               (dans le fichier initial)
4) Skim4     : Fichier purgé des duplicatas

5) SkimFinal = Skim4 non compressé

(les fichiers Skim4 et Skim5 ne diffèrent que par la taille du fichier TABLE.

On vérifie bien que :

Init      = Skim3 + Skim2 = occurences simples + dupliquées (dans le fichier original)
Skim4     = Skim3 + Skim1 = occurences simples + parents (fichier initial expurgés de ses doublons)

-------------------------------------

Remarque sur la comparaison des programmes SKIMALL (fichier Skim4) et DOUBLON :

Les tables ont la même apparence à l'édition sous Mapinfo.
Les fichiers ont la même taille sauf le fichier NOM_TABLE.IND, environ le double dans le cas du fichier issu de DOUBLON, ce que je n'ai pu m'expliquer (mais qui n'a rien de vital, pratiquement !).

Merci encore à Maurice et Marc-André pour leur appui !

Jean-Michel

Hors ligne

 

Pied de page des forums

Powered by FluxBB