Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

GEODATA DAYS 2024

#1 Wed 04 June 2008 12:28

Fabius
Participant actif
Date d'inscription: 19 Mar 2008
Messages: 130

[MAP BASIC 7.0] Supprimer doublons par colonne de référence

Bonjour à tous et à toute.


une question me taraude aujourd'hui : à savoir l'élimination de doublon par affectation de distance. Plus clairement j'ai créé grace a un distancier deux zones autour de deux communes, le probleme c'est que ces deux communes étant proches certaines autres communes ou iris (cela dépend de l'étude) sont situés sur les deux zones. Cependant j'ai une variable distance qui me permet de trier les communes dans un premier temps par nom puis par distance. Par quelle manip pourrais je supprimer les communes en double en tenant compte de la distance (gardrr la plus proche) ?



Merci d'avance

Hors ligne

 

#2 Wed 04 June 2008 17:04

Gérard parcoli
Participant actif
Date d'inscription: 9 Jan 2007
Messages: 95

Re: [MAP BASIC 7.0] Supprimer doublons par colonne de référence

Bonjour,
Comment sont calculés les distances (ligne droite , routier) ? En ligne droite les Voronoi pourraient arbitrer... a condition de rajouter un troisieme centre 'fictif' très éloigné de la France.
Autrement, comment sont structurés vos distanciers (en deux tables, en une seule) et leurs données ?
Si vous etes sur deux tables distincts,
- Avec la commande Table, mettre à jour colonne basculez la distance d'un distancier vers l'autre,
- Selectionnez (par SQL) les enregistrements ou la distance originale est supérieur à la distance associé : supprimez le résultat,
- meme chose sur l'autre table.

Hors ligne

 

#3 Mon 09 June 2008 14:07

Fabius
Participant actif
Date d'inscription: 19 Mar 2008
Messages: 130

Re: [MAP BASIC 7.0] Supprimer doublons par colonne de référence

Bonjour,
En fait mon distancier  est une table avec le point de départ comme premiere colonne (donc plusieurs points de départ) les noms des communes en deuxieme colonnes et en troisieme la distance entre le point de départ et la commune de la ligne.

Seulement voila je voudrais éliminer les communes en doubles et pour cela éliminer celle dont le champ distance est le plus gros (rattaché la commune au point de départ le plus proche)

Hors ligne

 

#4 Mon 09 June 2008 16:52

Gérard parcoli
Participant actif
Date d'inscription: 9 Jan 2007
Messages: 95

Re: [MAP BASIC 7.0] Supprimer doublons par colonne de référence

Bonjour,
En trois coups :

1/ Trouver les distances les plus faibles pour chaque origine :

Code:

Select Origine, min(Distance) from Distancier group by Origine into PlusProches

2/ Ajouter la distance la plus proche de chaque origine à la table originale
Dans le menu Mettre à jour colonne :
* Mettre à jour : la table original (le distancier)
* Utilise une colonne : la selection faite précédment 'PlusProches' (jointure Origine = Origine)
* Colonne a mettre a jour : ajouter une colonne tempo
* Calculer valeur de min(Distance)
3/ Selectionner toutes les origines ou la distance est differente à la colonne temporaire

Code:

Select * from Distancier where Distance <> _COL2 into Asupprimer
ou
Select * from Distancier where Distance <> COL4 into Asupprimer

Travaillez sur une copie de votre distancier.

Hors ligne

 

#5 Mon 09 June 2008 16:56

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

Re: [MAP BASIC 7.0] Supprimer doublons par colonne de référence

Ma réponse classique... Excel !! tongue
Mais puisqu'il y a [MAP BASIC 7.0] en balise, il va falloir se creuser pour trouver une ou une série de requête qui fasse ça sad
Vu les explications... un petit exemple des données en capture d'écran ferait le plus grand bien smile

[EDIT MAurice] Aarrgh... grillé par Gérard !! Reste à trouver en 2, voire en un ... big_smile

Hors ligne

 

#6 Tue 10 June 2008 11:37

Fabius
Participant actif
Date d'inscription: 19 Mar 2008
Messages: 130

Re: [MAP BASIC 7.0] Supprimer doublons par colonne de référence

Bonjour,


merci pour vos réponses, mais je ne comprend pas le raisonnement. je vous mets un screen pour mieux epliquer mon propos:
[img]http://img501.imageshack.us/img501/2870/screencm0.jpg[/img]
La colonne départ correspond au lieu d'ou le distancier part (ici des id) , arrivé correspond au codepost des communes compris dans le distancier puis suive leur distance en temp et en km. Le pb c'est que certaines communes sont dans les zones de plusieurs id, le but serait de supprimer ceux ou celle les plus loins et donc rattacher la commune à l'id dont elle est  la plus proche

Dernière modification par Fabius (Tue 10 June 2008 11:43)

Hors ligne

 

#7 Tue 10 June 2008 13:47

Gérard parcoli
Participant actif
Date d'inscription: 9 Jan 2007
Messages: 95

Re: [MAP BASIC 7.0] Supprimer doublons par colonne de référence

Le raisonnement est le suivant :
Détecter la distance la plus proche pour chaque Depart et créer une table Depart - Distance la plus proche, ou chaque Depart est unique
Ensuite, réassocier la distance la plus proche aux départs d'origine, on aura donc d'associé à chaque départ d'origine la distance minimale par rapport à toutes les arrivées de ce meme depart.
A partir du moment ou on connait cette distance minimal, on peut estimer que si la distance minimal est différente de la distance de l'enregistrement, c'est qu'il n'est pas le plus proche...

Ci dessous les étapes en reprenant vos informations :

1/ Trouver les distances les plus faibles pour chaque origine :

Code:

Select Depart, min(Distances) from SCREEN group by Depart into PlusProches

min(distances) = calcul de la distance minimal pour tout les départs identiques
2/ Ajouter la distance la plus proche de chaque origine à la table originale
Dans le menu Mettre à jour colonne :
* Mettre à jour : la table SCREEN
* Utilise une colonne : la selection faite precedement 'PlusProches' (jointure Depart = Depart)
* Colonne a mettre a jour : ajouter une colonne temporaire
* Calculer valeur de min(Distances)
3/ Selectionner toutes les origines ou la distance est differente à la colonne temporaire

Code:

Select * from Screen where Distances <> COL4 into Asupprimer

A ce point vous avez de selectionné tous les enregistrements quin sont les paires les plus éloignées : si vous supprimez cette selection, ce qui restera sera les paires les plus proches.
Travaillez sur une copie de votre table Screen.

Hors ligne

 

Pied de page des forums

Powered by FluxBB