Pages: 1
- Sujet précédent - Vérifications de doublons dans une banque de données sous MapInfo 8.0 - Sujet suivant
#1 Mon 16 July 2007 10:18
- Marl
- Juste Inscrit !
- Date d'inscription: 13 Jul 2007
- Messages: 6
Vérifications de doublons dans une banque de données sous MapInfo 8.0
Bonjour,
Je suis stagiaire au BRGM et mon travail est de vérifier que des ouvrages (forages, travaux de fouilles...) ne sont pas en doubles dans la banque de données. Pour vérifier cela, je clique donc sur les points et je vérifie si les informations qui s'y rapportent sont identiques.
Mais j'aimerais pouvoir faire cela automatiquement et je pense qu'il est possible de sélectionner les points selon 2 critères (la distance entre eux et la profondeur du forage, qui il me semble est un attribut), ce qui me permettrait d'éliminer un certain nombre de points trop différents ou trop éloignés. En effet, si je parviens à faire dessiner un cercle de 30 m de diamètre autour de chaque point et que je demande à MapInfo de sélectionner tous les points dont les cercles s'intersectent, puis que je lui demande de ne garder que les points dont les cercles s'intersectent dont la différence de profondeur du forage est inférieure à 2 m, je n'aurais plus qu'à comparer les documents numérisés pour déterminer si ce sont bel et bien les mêmes forages. L’idéal serait d’avoir en sortie un tableau avec indices des points (les indices doivent probablement être des attributs) et les différences de profondeur.
Une difficulté à prendre en compte est qu'il faut comparer des points qui se trouvent sur la même couche et sur différentes couches.
Auriez-vous une idée de comment est-ce que je peux parvenir à faire tout ceci sur MapInfo 8.0 ? Je crois qu’il faut faire des requêtes SQL, mais je ne sais pas vraiment comment m’y prendre. C’est en particulier la création du cercle de 15 m de rayon autour de chaque point qui me pose problème. La profondeur et l’indice sont indiqués dans le champs « colonne » dans la requête SQL. j'ai vu également qu'il y a avait un outil "suppression de doublons" mais je pense qu'il n'est pas adapté à ce que je veux faire.
Merci d'avance
Hors ligne
#2 Mon 16 July 2007 11:10
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Vérifications de doublons dans une banque de données sous MapInfo 8.0
...j'ai vu également qu'il y a avait un outil "suppression de doublons" mais je pense qu'il n'est pas adapté à ce que je veux faire...
Bonjour
Cet outil supprimera tous les points (dans ton cas il s'agit bien de points ??) qui sont au même endroit et n'en gardera qu'un
Il peut être adapté et supprimer (par exemple) tous les points qui, bien qu'à des endroits différents, portent les mêmes attributs....ou qui sont au même endroit ET portent les mêmes attributs.Si tu veux bien préciser et faire une liste des attributs concernés (peut être pas tous, sinon ça prendra des heures...) en fournissant le TAB de la table à traiter, je peux faire ça assez vite
nb: s'il y a plusieurs tables de points, le plus simple sera peut être de les ajouter dans une seule table. Attention dans ce cas à la structure des données: les attributs doivent être de même type et dans le même ordre
Hors ligne
#3 Mon 16 July 2007 11:33
- Marl
- Juste Inscrit !
- Date d'inscription: 13 Jul 2007
- Messages: 6
Re: Vérifications de doublons dans une banque de données sous MapInfo 8.0
Merci, mais le problème c'est que la plupart de mes points en double ne sont pas superposés (erreur lors du report des coordonnées) et n'ont pas forcément les mêmes attributs (par exemple la profondeur peut être arrondie au mètre au donnée au centimètre près), d'où l'intérêt de prendre une distance de 30 m maximum entre les points et une différence de profondeur de quelques mètres. C'est aussi pour cela que je dois répertorier ces points, sans les supprimer, pour vérifier sur les logs et les coupes géologiques qui vont avec s'ils sont vraiment en double.
Les attributs a prendre en compte sont la profondeur et l'indice (qui est un numéro unique donné à chaque point). L'indice me permettra ensuite de savoir quel point regarder pour vérifier si c'est un point en double ou juste un forage ressemblant.
Hors ligne
#4 Mon 16 July 2007 11:49
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Vérifications de doublons dans une banque de données sous MapInfo 8.0
....C’est en particulier la création du cercle de 15 m de rayon autour de chaque point qui me pose problème...
Menu Table->Tampons
Pour le reste...il semble qu'il y a trop d'expertise humaine pour vraiment automatiser
La solution d'éliminer les points sans ambiguité est donc bonne...si le reliquat à examiner n'est pas trop gros !!
Hors ligne
#5 Mon 16 July 2007 13:33
- Marl
- Juste Inscrit !
- Date d'inscription: 13 Jul 2007
- Messages: 6
Re: Vérifications de doublons dans une banque de données sous MapInfo 8.0
Il doit y avoir au moins 800 points à examiner. Est-il possible de faire une boucle "for" dans la case "Critères"?
(par exemple:
for i=0 à n
faire x(i)= profondeur(i)-profondeur(i+1)
....)
Hors ligne
#6 Mon 16 July 2007 13:45
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Vérifications de doublons dans une banque de données sous MapInfo 8.0
Trop beau...
Ca n'est possible que dans un outil (mbx) ...qui nécessite de disposer du compilateur MapBasic
800 points: c'est ce qui reste (après élimination des points à plus de 30 m les uns des autres), ou le total ??
Hors ligne
#7 Mon 16 July 2007 14:02
- Marl
- Juste Inscrit !
- Date d'inscription: 13 Jul 2007
- Messages: 6
Re: Vérifications de doublons dans une banque de données sous MapInfo 8.0
c'est une évaluation optimiste de ce qu'il y a en tout, vu que les nouveaux points sont a peu près 400 et qu'il y en a à peu près autant (voire plus) d'anciens.
Je n'ai pas encore réussi à tracer les cercles autour des points avec le tampon, donc je ne sais pas combien sont à moins de 30 m les uns des autres mais à vu de nez je dirai une centaine (les données sont sur Paris, c'est un vrai gruyère).
J'ai fait:
Créer une nouvelle table: Ajouter à la fenêtre active
Structure: Créer
mais je ne peux faire que des caractères, entiers, flottants, dates... pas de cercles ou de figures géométriques.
Sinon, en ce qui concerne la profondeur, avec mon maître de stage, on pense faire une sélection SQL sur la sélection faite avec les cercles du type:
profondeur<27 && profondeur>25
en faisant varier les profondeurs.
Hors ligne
#8 Mon 16 July 2007 15:00
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Vérifications de doublons dans une banque de données sous MapInfo 8.0
Désolé je pars en réunion...
La table de points étant ouverte, le Menu Table->Tampons te crée des tampons (quasi cercles si tu prend un lissage à 100) pour chaque point de la table et les met dedans (je crois)
Tu peux en les sélectionnant et en enregistrant cette sélection mettre ces tampons dans une nouvelle table
Hors ligne
#9 Mon 16 July 2007 15:20
- Marl
- Juste Inscrit !
- Date d'inscription: 13 Jul 2007
- Messages: 6
Re: Vérifications de doublons dans une banque de données sous MapInfo 8.0
Merci, vous avez déjà fais beaucoup. Je viens d'y parvenir en choisissant Menu Objet -> Tampons (au lieu de Menu Table). J'attaque donc l'étape suivante qui consiste à sélectionner les cercles qui s'intersectent.
J'ai enregistré les cercles dans une couche, mais j'ai quelques difficultés à utiliser l'opérateur géographique "intersects". En effet, si je lui demande dans Sélection -> sélection:
Code:
obj Intersects obj
il sélectionne tous les cercles et non pas seulement ceux qui s'intersectent. Je crois que le problème vient du fait que les cercles sont dans la même table.
Dernière modification par Marlène (Mon 16 July 2007 16:39)
Hors ligne
#10 Mon 16 July 2007 22:06
- Damien BEAUSEIGNEUR
- Participant assidu
- Lieu: meyzieu
- Date d'inscription: 5 Sep 2005
- Messages: 425
Re: Vérifications de doublons dans une banque de données sous MapInfo 8.0
Bonsoir,
Une autre proposition au lieu de faire des cercles de 15 et de vouloir intersecter vos cercles.
Faîtes des cercles de 30. Et rechercher si les points qui sont à l'intérieur de ces cercles.
Ce qui implique d'utiliser pour la requête la table de point et la table des buffers.
Note dans ce cas
La requête donnera pour chaque cercle les points proches. Mais l'information sera doublée
Cercle 1 Point 1 (normal)
Cercle 1 Point a (Erreur)
Cercle 1 Point b (Erreur)
et aussi
Cercle a Point 1 (Erreur)
Cercle a Point a (Erreur)
Cercle a Point c (Erreur)
etc ...
donc dans la requête finale, il sera intéressant de se débarrasser des éventuels doublon
Id Cercle < Id Point (les tables devant donner le même nombre de cercle que le nombre de points en supposant aussi que les id d'origines ai été gardés)
Note ta requête actuelle viens à dire champ1 = champ1. Le fonctionnement est donc normal.
cordialement.
Hors ligne
#11 Mon 16 July 2007 23:50
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Vérifications de doublons dans une banque de données sous MapInfo 8.0
Pour obtenir facilement une table de cercles qui auront les mêmes attributs que les points:
-copier la table de points ("points", avec un identifiant unique "id") sous le nom de votre choix (disons "cercles")
- taper dans la fenêtre MapBasic
set coordsys table cercles '(ça c'est pour forcer les calculs dans la projection de la table "points")
Update cercles Set Obj = CreateCircle(centroidx(obj), centroidy(obj),15)
- enregistrer cercles
Pour sélectionner les points à moins de 15 m d'un autre point (ceux dans au moins un cercle autre que le leur)
- Select * from points, cercles where points.Obj Within cercles.Obj And points.id<>cercles.id
Hors ligne
#12 Tue 17 July 2007 10:55
- Marl
- Juste Inscrit !
- Date d'inscription: 13 Jul 2007
- Messages: 6
Re: Vérifications de doublons dans une banque de données sous MapInfo 8.0
Bonjour,
Merci à tous les deux, grâce à vous j'ai pu parvenir à mes fins alors que je n'avais absolument aucune connaissance sur MapInfo. Je ne crois pas qu'il y ait MapBasic sur cet ordinateur, j'ai utilisé en compléments de vos conseils le document "utilisation avancée de MapInfo sans MapBasic" de Sébastien RODIER et Jacques PARIS qui était conseillé sur le forum.
J'ai finalement créé des cercles de 30 m de rayon (avec l'outil tampon) auxquels j'ai assigné les profondeurs des forages (Table-> Mettre à jour colonne). Puis pour sélectionner par exemple les forages déclarés par la RATP et par l'inspection générale des carrières éloignés de moins de 30 m et d'une différence de profondeur de moins de 2m, je fais une sélection SQL avec:
Code:
CERCLES__sondagesRATP.Obj Contains Dossier_Archive_IGC.obj And Abs(CERCLES_ sondagesRATP.profondeur - Dossier_Archive_IGC.profondeur)<2
Merci beaucoup, mon stage est devenu beaucoup plus intéressant grâce à vous.
Hors ligne
#13 Mon 14 April 2008 12:23
- Delphine974
- Participant occasionnel
- Date d'inscription: 29 Feb 2008
- Messages: 15
Re: Vérifications de doublons dans une banque de données sous MapInfo 8.0
Bonjour,
Je ne sais pas si je suis dans le bon thème mais j'ai tapé "reliquat" et j'ai atterri ici. Puis-je expliquer mon problème?
Hors ligne
#14 Mon 21 April 2008 22:00
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Vérifications de doublons dans une banque de données sous MapInfo 8.0
Dites toujours !!
Si ça mérite un nouveau sujet, on s'occupera de le créer pour une bonne lisibilité du forum
Hors ligne
Pages: 1
- Sujet précédent - Vérifications de doublons dans une banque de données sous MapInfo 8.0 - Sujet suivant