Pages: 1
- Sujet précédent - ArcView 9.2 SP4 - Faire un Dissolve en conservant des attributs - Sujet suivant
#1 Tue 18 March 2008 10:08
- Trotamundos
- Participant assidu
- Lieu: Geneva
- Date d'inscription: 16 Jan 2007
- Messages: 230
ArcView 9.2 SP4 - Faire un Dissolve en conservant des attributs
Bonjour,
Je cherche à faire une manip sur une table mais sans succès pour le moment.
Voilà ci-joint un exemple type. Il s'agit de regrouper les lignes (Dissolve) ayant le même ET_ID avec la Length MAX et surtout l'Azimuth correspondant!
L'outil Dissolve me permet bien de regrouper les ET_ID et les Length Max mais pas forcément de récupérer l'Azimuth se trouvant sur la même ligne...
Sans doute qu'il faut faire un code VBA mais s'il existe des scripts, astuces ou outils déjà... Par avance, merci
Hors ligne
#2 Tue 18 March 2008 10:32
Re: ArcView 9.2 SP4 - Faire un Dissolve en conservant des attributs
Hello,
Juste une question pour préciser ta question, je reformule pour être sûr : tu veux regrouper les lignes ayant le même ET_ID.
Ensuite tu veux y adjoindre la longueur : de quoi ? du tout ou de la polyligne la plus longue ?
Et tu veux aussi l'azimuth : de quoi ? de chaque polyligne, de la somme, du max ou l'azimuth globale de la polyligne créee ?
Hors ligne
#3 Tue 18 March 2008 12:40
- Trotamundos
- Participant assidu
- Lieu: Geneva
- Date d'inscription: 16 Jan 2007
- Messages: 230
Re: ArcView 9.2 SP4 - Faire un Dissolve en conservant des attributs
Bonjour Robin,
Il s'agit bien de regrouper les lignes ayant le même ET_ID, en choississant comme attributs la longueur la plus longue (MAX) dans la colonne Length, ET aussi en choississant l'azimuth correspondant (qui n'est pas forcément le MAX ni le MIN dans la colonne Azimuth!). Pas évident ! Merci
Hors ligne
#4 Tue 18 March 2008 12:52
- carteq
- Participant assidu
- Date d'inscription: 8 Mar 2008
- Messages: 829
Re: ArcView 9.2 SP4 - Faire un Dissolve en conservant des attributs
Tu peux essayer de faire une jointure de table à partir de Lenght Max après le dissolve. Si tes données Lenght sont variées et très précises (x,xxxxxx), il y peu de chance qu'il te manque des infos après la jointure.
Vincent
Hors ligne
#5 Tue 18 March 2008 12:54
- Trotamundos
- Participant assidu
- Lieu: Geneva
- Date d'inscription: 16 Jan 2007
- Messages: 230
Re: ArcView 9.2 SP4 - Faire un Dissolve en conservant des attributs
Merci, quelqu'un m'a suggéré la même idée sur le forum ESRI, mais hélas seul 6 records passent à la jointure... sur des centaines !
Hors ligne
#6 Tue 18 March 2008 13:36
- vipere
- Participant actif
- Date d'inscription: 23 Jan 2008
- Messages: 100
Re: ArcView 9.2 SP4 - Faire un Dissolve en conservant des attributs
bonjour,
je ne suis pas sur d'avoir bien compris, mais si tu crées un nouveau champ dans lequel tu concatènes les 3 valeurs sur lesquelles tu veux faire ton dissolve, et qu'après tu lance ton dissolve sur ce champ commun, ça pourrait pas marcher?
Hors ligne
#7 Tue 18 March 2008 13:58
Re: ArcView 9.2 SP4 - Faire un Dissolve en conservant des attributs
Merci, quelqu'un m'a suggéré la même idée sur le forum ESRI, mais hélas seul 6 records passent à la jointure... sur des centaines !
Tu aurais un extrait ? Si tes longueurs sont trop précises, c'est bizarre, par contre si elle sont trop imprécises (des segments ont la même longueur), il suffit de multiplier par 1000 pour avoir une longueur suffisamment unique.
Hors ligne
#8 Tue 18 March 2008 14:06
- Trotamundos
- Participant assidu
- Lieu: Geneva
- Date d'inscription: 16 Jan 2007
- Messages: 230
Re: ArcView 9.2 SP4 - Faire un Dissolve en conservant des attributs
Voilà un jeu de données. Ce sont des rectangles qui sont convertis en polylignes. C'est du WGS84 car les longueurs et azimuths sont calculés sur l'ellipsoide pour s'approcher du vrai (et non en projetés). Merci
Hors ligne
#9 Tue 18 March 2008 14:19
Re: ArcView 9.2 SP4 - Faire un Dissolve en conservant des attributs
Tiens, avant que je teste ton jeu de données, une autre idée. J'ai testé avec des lignes bidons, ca semble marcher.
Soit un shape-source Poly.shp et une shp agrégé Diss.shp
1. Tu fais ton dissolve avec Length, fonction stat max..
2. Tu fais une jointure via ET_ID entre les deux shapes (Poly.shp et Diss.shp)
3. Tu créé un nouveau champ LM (Length Max) dans Poly.shp
4. Tu renseignes ce champ [LM] avec la valeur du champ joint [Diss].Length_Max
5. Toutes les identités de même ET_ID ont maintenant la même valeur de LM
6. Tu sélectionne les entités où [LM] = Length (à ajuster jusqu'à ce que ca marche)
7. Tu crée un nouveau champ Azimuth_LM
8. Tu le renseigne avec la valeur d'Azimuth uniquement pour les entités sélectionnées
Ca doit donner quelque chose comme ça
[img]http://img98.imageshack.us/img98/9158/lmld7.jpg[/img]
9. Tu relance ton dissolve en cochant ET_ID et LM et tu met dans le champ de stat Azimuth avec la fonction somme.
C'est tarabiscoté et ca revient un peu au même mais ca te permet d'ajuster l'étape 7 jusqu'à ce que ca marche.
Robin.
Hors ligne
#10 Tue 18 March 2008 14:35
- Trotamundos
- Participant assidu
- Lieu: Geneva
- Date d'inscription: 16 Jan 2007
- Messages: 230
Re: ArcView 9.2 SP4 - Faire un Dissolve en conservant des attributs
Toujours pas! C'est le même principe et la jointure sur les champs Length ne passe pas. Seulement 6 dans mon jeu de données Data Sample !
Faire une "formule égalité" sur des nombres décimaux n'est pas forcément facile et efficace car il se peut qu'il y ait des arrondis quelque part... Franchement, des puristes me recommanderaient une macro VBA mais c'est dommage pour un problème qui parait si simple ! Peut-être qu'il existe des outils qui me faciliterait la tâche, c'est pour cela que j'ai posté sur Georezo. Mais là...
Merci toutefois.
Hors ligne
#11 Tue 18 March 2008 14:36
Re: ArcView 9.2 SP4 - Faire un Dissolve en conservant des attributs
Re,
Après test, mon conseil : multiplie ton champ length par 100 dans un nouveau champ de type entier et recommence la manip.
J'ai remarqué que ton champ longueur est plus précis que le champ créé par le dissolve, ce qui fait que certaines entités ne sont pas sélectionnées.
Ci joint le résultat de la manip avec les azimuth des troncons max.
Robin.
Hors ligne
#12 Tue 18 March 2008 15:11
- Trotamundos
- Participant assidu
- Lieu: Geneva
- Date d'inscription: 16 Jan 2007
- Messages: 230
Re: ArcView 9.2 SP4 - Faire un Dissolve en conservant des attributs
Merci !
La technique fonctionne bien cette fois-ci. Tout est question de la précision des champs Double, c'est exact. Je vais m'en sortir maintenant...
Hors ligne
Pages: 1
- Sujet précédent - ArcView 9.2 SP4 - Faire un Dissolve en conservant des attributs - Sujet suivant