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 Thu 11 February 2010 15:29

Frédérique
Participant actif
Date d'inscription: 13 Jul 2007
Messages: 51

Détecter et supprimer des doublons de lignes.

Bonjour,

J'ai une couche d'entités administratives polygonales. J'en dérive des polylignes pour des besoins ultérieurs.
Le résultat de cette opération est que, logiquement, je me retrouve avec des doublons : une frontière administrative appartient à 2 entités, chaque entité a donc son segment de frontière.

Une difficulté supplémentaire se présente : je peux avoir un segment étant à la fois une limite d'Etat, une limite de Province et une limite de commune par exemple. De part la "duplication" expliquée ci-dessus, j'aurai 6 segments différents pour cette même "ligne". Mon objectif n'est pas de garder un seul et unique segment mais bien de tenir compte des attributs et de conserver alors :

- une ligne pour l Etat
- une ligne pour la Province
- une ligne pour la commune

J'aimerais faire ça de manière automatique car j'ai un gros set de données. Je travaille en Python mais je suis ouverte à d'autres propositions.

Merci d'avance pour vos bons conseils,

Frédérique

Hors ligne

 

#2 Thu 11 February 2010 20:12

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: Détecter et supprimer des doublons de lignes.

Peux-tu joindre un petit échantillon de données ? Ce serait pratique de pouvoir tester.

Hors ligne

 

#3 Thu 11 February 2010 23:00

sekar
Participant occasionnel
Lieu: Alma, Québec
Date d'inscription: 1 Dec 2006
Messages: 39

Re: Détecter et supprimer des doublons de lignes.

Salut Frédérique

As-tu un champ qui défini le type de limite?  Si oui, dans ta table attributaire polylignes, concatene le dans un nouveau champ avec un champ ID provenant de ta couche polygonale de base.

ensuite, si tu ne l'as pas déjà va sur http://www.ian-ko.com/ clique sur l'onglet FREE et choisi easy calculate.  C'est un ensemble de Formule toutes prêtes pour le "calculer les valeurs" des champs d'une table.

Dans ta table attributaire polylignes fait un nouveau champ [duplicate] de type Integer et fait un calculate value en chargeant la commande de easy calculate nommée field_Mark_Duplicates_2.cal et remplace [type]
par le nom de ton champ concatené. 
L'opération te marquera des 1 pour toutes les lignes rencontrées une première fois et 2, 3, 4 etc. chaque fois qu'un duplicat sera rencontré.  Grace as ton champs qui concatene le type de limite (État, Province ou commune)
ces lignes faisant parties de plusieurs types de limites seront différenciées. 
Tu n'auras ensuite qu'a ouvrir une session d'édition et sélectionner  [duplicate] <> 1 et supprimer la sélection.

séb


Ministère des ressources naturelles et de la faune
801 avenue du pont Taché nord
Alma, Québec, Canada

Hors ligne

 

#4 Fri 12 February 2010 10:51

Frédérique
Participant actif
Date d'inscription: 13 Jul 2007
Messages: 51

Re: Détecter et supprimer des doublons de lignes.

Bonjour,

Tout d'abord, merci à tous les deux pour vos réponses rapides...et votre aide.

J'ai testé la solution apportée par Sekar. Ca ne marche pas si bien, voilà pourquoi j'ai mis un PrintScreen en attachment (cela donnera aussi ) carteq un aperçu de la structure de mes données). Pourrais-tu y jeter un oeil afin de voir si tout est fait "comme il faut"? Merci.

Le champ CONCATENATOR (format string) provenant de la combinaison des attributs FID et Objet_Carto.
Le champ DUPLICATE (format LONG INTEGER) attendant le résultat du code, dans lequel [type] a bien été remplacé par [concatenator]

Le script semble ne pas tourner à cause du message d'erreur que vous pouvez visualiser dans la capture d'écran. Comment puis-je résoudre cela?

Merci d'avance pour votre input, bonne journée dans votre belle région du Québec...où j'ai passé mes vacances d'été!

Frédérique


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

Hors ligne

 

#5 Fri 12 February 2010 12:22

yah
Participant occasionnel
Date d'inscription: 12 Jan 2007
Messages: 20

Re: Détecter et supprimer des doublons de lignes.

Bonjour Frederique,

juste une question, as tu une license Arcinfo ou non ?

Si oui, c'est assez simple:

tu concatènes ttes tes communes (polygones) dans une seule classe d'entités: communes. (outil MERGE Data managment tools, General)

idem pour tes provinces, départements.....

Dans ArcCatalog, bouton droit sur ta classe nouvelle et EXPORT... to Coverage (couverture ArcInfo).

Cette couverture crée  et ouverte te montre toutes communes sous plusieurs aspcets (on va dire comme ça..): polygones, arcs... C'est les arcs qui t'interessent: il n'y a pas de doublons. Ton pb est résolu: tu en fais un shape ou autres pour ne pas t'encombrer de la couverture Arc et voili....

yah

Hors ligne

 

#6 Fri 12 February 2010 20:14

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: Détecter et supprimer des doublons de lignes.

Peut-être aussi qu'elle pourrait concaténer pour obtenir des valeurs uniques (avec des doublons évidemment) et utiliser le SQL avec Select Distinct pour atteindre le but ?

Désolé, Frédérique, mais sans échantillon, je ne peux en faire plus.

Dernière modification par carteq (Fri 12 February 2010 20:15)

Hors ligne

 

#7 Mon 15 February 2010 16:41

sekar
Participant occasionnel
Lieu: Alma, Québec
Date d'inscription: 1 Dec 2006
Messages: 39

Re: Détecter et supprimer des doublons de lignes.

Bonjour Frédérique

Je viens de tester ma méthode et pour moi tout fonctionne bien (Ouf!!).  Je suis en 9.2 avec Arc Editor.

Voici un printscreen de mon Calculate value sur le champs duplicate. 

Salut

Dernière modification par sekar (Mon 15 February 2010 16:46)


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

Ministère des ressources naturelles et de la faune
801 avenue du pont Taché nord
Alma, Québec, Canada

Hors ligne

 

Pied de page des forums

Powered by FluxBB