#1 Sat 24 May 2008 17:20
- Stef Goofy
- Participant occasionnel
- Date d'inscription: 16 Jan 2007
- Messages: 14
Créer des polygones depuis un fichier Excel
Je ne parviens pas à visualiser le tutoriel malgré l'installation du plug in qui va bien.
Dommage car j'ai un problème que je ne parviens pas à résoudre malgré la consultation des 3/4 des post parlant d'imports sous MI.
Mon problème est le suivant, je n'ose faire un post particulier car ce tuto me semble spécifier la réponse :
Je possède un fichier excel issu d'un export texte (en extention .csv) contenant un catalogue de données images géolocalisées (coordonnées des 4 coins en lat/long WGS84 et quelques données spécifiant l'origine du capteur et autres informations diverses) exporté depuis une station de travail.
Je parviens sans problèmes majeurs à importer les données ne possédant d'un seul couple de coordonnées (ponctuels) mais les polygones me semblent impossibles à importer sans passer par un autre applicatif qui me ferait un export shape.
Souhaitant intégrer les centaines de références directement dans MI je ne trouve pas de solution.
Est ce que l'import de polygones sous forme de fichier excel ou texte tabulé est impossible sous MI? J'ai retourné le manuel utilisateur dans tous les sens mais pas de solutions!
Si quelqu'un pouvait m'éclairer!!
Merci!!!
Hors ligne
#2 Sat 24 May 2008 18:51
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Créer des polygones depuis un fichier Excel
Bonjour
- à partir du fichier Excel on peut créer des points: il y en aura un par sommet
- on peut (sous conditions d'ordre des points) créer des polygones avec ces "quatuors" de points avec un outil tel que celui-ci...
ps: avec IE7 (que j'utilise peu), j'enregistre le *.swf sur disque et je l'ouvre avec IE ensuite. On doit pouvoir faire mieux, mais en attendant...
Hors ligne
#3 Sat 24 May 2008 19:13
- Stef Goofy
- Participant occasionnel
- Date d'inscription: 16 Jan 2007
- Messages: 14
Re: Créer des polygones depuis un fichier Excel
Merci pour les infos, je viens d'essayer mais il ne me prend que le premier couple et ignore les trois autres qui sont sur la même ligne
Je vais retenter
A de suite
Je viens de retester, il me demande de sélectionner les points mais je n'ai qu'un point à sélectionner qui contient les autres dans ces données attributaires. Comment joindre le point créé dans le fichier .tab avec les points contenus dans les données attributaires? Je suis désolé de ne pas réussir ce qui semble sans doute très simple.
Merci de votre compréhension
Pour être le plus clair possible :
Mon fichier excel s'articule de la manière suivante :
Nom de la donnée / Capteur / Mode / Date de Prise de vue / divers paramètres... / Lat1 / Long1 / Lat2 / Long2 / Lat3 / Long3 / Lat4 / Long4
Et cela sur plusieurs centaines de lignes.
Le système générant ce fichier n'est pas paramètrable et ne permet pas de positionner les 4 coins sur quatre lignes successives.
Vu le nombre de ligne il est quasiment impossible de le faire à la main.
De plus certaines emprises se superposent presque.
Y a t'il un moyen de réaliser cet import avec un autre SIG? Je dispose de Map Info 9 / Geoconcept 5.5 / ArcGis 9 et autres open sources
Dernière modification par Stef Goofy (Sat 24 May 2008 19:40)
Hors ligne
#4 Sun 25 May 2008 10:22
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Créer des polygones depuis un fichier Excel
Pour avancer, avant que ne retrouve ma lucidité (!), on peut déjà créer tous les points en faisant 4 fois la manip' et en choisissant Lat1 / Long1 puis Lat2 / Long2 etc... comme colonne contenant les coordonnées
Ensuite on ajoutera les 4 tables de points obtenues
Entre création et ajout il faudra trouver un "truc" pour que l'ordre des points dans la table soit correctement utilisé par ConnectTheDots (ou autre outil)
Mais comme je pense que ConnectTheDots va avoir du mal à s'en sortir... je préconise la création des 4 tables et une solution par la fenêtre MapBasic du genre de celle-ci. (lire le "mode d'emploi")
Il suffit de créer des variables supplémentaires et de faire deux Fetch et trois insert de plus
Les sélections préalables ne seront pas utiles (mais il faut créer une table "polys" de réception)
dim x1 as float
dim y1as float
dim x2 as float
dim y2 as float
dim x3 as float
dim y3as float
dim x4 as float
dim y4 as float
dim m as smallint
dim n as smallint
dim o as smallint
dim p as smallint
m=1
n=1
o=1
p=1
fetch rec m from table1
x1=table1.Long1
y1=table1.Lat1
fetch rec n from table2
x2=table2.Long2
y2=table2.Lat2
fetch rec o from table3
x3=table3.Long3
y3=table3.Lat3
fetch rec p from table4
x4=table4.Long4
y4=table4.Lat4
insert into polys(obj) values(createline(x1,y1,x2,y2))
insert into polys(obj) values(createline(x2,y2,x3,y3))
insert into polys(obj) values(createline(x3,y3,x4,y4))
insert into polys(obj) values(createline(x4,y4,x1,y1))
m=m+1
n=n+1
o=o+1
p=p+1
print chr$(12)
print m
Pour transformer ces quatuors de lignes en polygones, utiliser le menu Objets->Convertir en polygones
Hors ligne
#5 Sun 25 May 2008 10:47
- Stef Goofy
- Participant occasionnel
- Date d'inscription: 16 Jan 2007
- Messages: 14
Re: Créer des polygones depuis un fichier Excel
Ouah!!!!!
Alors là cela dépasse très largement mes connaissances, en effet, je ne me suis jamais servi de map basic.
Cela dit ce sera l'occasion de débuter.
Donc, après création de mes 4 tables, je crée une table "polys" vide, j'ouvre la fenêtre map basic et je colle ces lignes de commandes dedans c'est ça?Je vais tenter le truc, merci beaucoup!
Génial!
Pour créer la table polys j'ai du donner un nom au premier champ, que j'ai donc appelé polys aussi.
A tout de suite
Alors, j'ai donc créé une table "polys" dont la première ligne s'appelle "polys" (je n'ai pas réussi à créer une table vide)
J'ai recopié ligne par ligne les données ci dessus dans la fenêtre map basic et après validation j'ai le message suivant :
"Variable or field m not defined. Print command failed. Unable to evaluate expression".
Aurais je loupé quelque chose?
Merci et désolé encore!!
Dernière modification par Stef Goofy (Sun 25 May 2008 11:11)
Hors ligne
#6 Sun 25 May 2008 11:21
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Créer des polygones depuis un fichier Excel
Vous voulez dire que votre table "polys" a une première colonne "polys" ?? Pas de problème, MI met toujours au moins une colonne dans une table: il faut juste qu'elle soit vide d'objets (de lignes)
Pour la manip, refermez MI pour nettoyer d'un coup tous les "dim"), réouvrez avec vos 4 tables points et la table polys et copiez-collez depuis le post du forum: comme ça vous serez sûr de ne rien oublier
Sélection de tout (en commençant en plaçant le curseur à la fin et en remontant)... 'enter' une fois
Sélection du gras ..."enter" en laissant le doigt sur la touche jusqu'à ce que que la fenêtre message affiche n+1 (n étant le nombre d'enregistrements dans vos 4 tables, qui ont toutes le même)
Hors ligne
#7 Sun 25 May 2008 11:58
- Stef Goofy
- Participant occasionnel
- Date d'inscription: 16 Jan 2007
- Messages: 14
Re: Créer des polygones depuis un fichier Excel
Alors, je fais cette manipulation, je sélectionne donc la totalité des lignes en partant du bas, j'obtiens le message "2" et je vois que des lignes apparaissent entre les points, mais seulement sur le premier objet. Les autres restent sous forme de points exclusivement.
Ensuite, je resélectionne la partie grisée, puis je laisse mon doigt sur la touche "enter" : résultat mes 847 objets apparaissent avec les lignes joignant les points!!!!!!!! Merci!!!!!!!!!!
Ensuite, le mode opératoire pour convertir ces polylignes en polygones est il de sélectionner les quatuor un par un pour les fusionner en polygone ou bien peut on les sélectionner tous en même temps?
Merci de votre aide précieuse qui m'a fait gagner un temps énorme!!
Hors ligne
#8 Sun 25 May 2008 12:04
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Créer des polygones depuis un fichier Excel
La table polys étant en édition (contrôle des couches), sélectionnez tout dans cette table et actionnez le menu Objets-> Créer polygones (qui ne doit plus être grisé)
Ensuite enregistrez
Hors ligne
#9 Sun 25 May 2008 15:35
- Stef Goofy
- Participant occasionnel
- Date d'inscription: 16 Jan 2007
- Messages: 14
Re: Créer des polygones depuis un fichier Excel
En effet, pour chaque données j'obtiens quatre entrées.
La transformation en polygones ne semble pas fonctionnelle ici car même en sélectionnant les lignes une par une (soit un quatuor) pour les fusionner en polygone je n'obtiens aucun résultat probant.
Seule ma table "polys" est chargée.
J'ai essayé sous Map Info 7.8 et 9 avec le même résultat : sélection des quatres lignes, objet, convertir en polygone : toujours mes quatres lignes sélectionnables et pas de polygone.
Me suis je trompé quelque part?
ps: J'ai récupéré ces coordonnées sur GE puis je les ai recopiées dans un fichier xls.
Ensuite j'ai suivi le même mode opératoire que précédemment avec mes données issues de mon système..
Dernière modification par Stef Goofy (Sun 25 May 2008 16:16)
Hors ligne
#10 Sun 25 May 2008 17:53
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Créer des polygones depuis un fichier Excel
Je ne peux rien faire avec le seul polys.TAB (une table MapInfo c'est au moins polys.TAB +polys.ID +polys.MAP + polys.DAT)
Mais ZUT !!... le passage de 4 lignes à un polygone ne marche pas
Je vous propose donc de faire la même manip' mais
- en commençant par rendre la table "polys" (vide ! et seule présente dans la fenêtre carte) éditable
- en remplaçant
insert into polys(obj) values(createline(x1,y1,x2,y2))
insert into polys(obj) values(createline(x2,y2,x3,y3))
insert into polys(obj) values(createline(x3,y3,x4,y4))
insert into polys(obj) values(createline(x4,y4,x1,y1))
soit par:
create rect into window frontwindow() (x1,y1) (x3,y3) si ce sont res rectangles et que ces deux points sont opposés (??)
soit (et je préfère ça) par:
create pline into window frontwindow() 5 (x1,y1) (x2,y2) (x3,y3) (x4,y4) (x1,y1)
Le passsage aux polygones marche alors
Hors ligne
#11 Sun 25 May 2008 18:51
- Stef Goofy
- Participant occasionnel
- Date d'inscription: 16 Jan 2007
- Messages: 14
Re: Créer des polygones depuis un fichier Excel
Je vais tenter ça de suite!!!
Merci encore, je vous tiens au courant pour que l'on puisse repasser cette série de question/réponse dans un post plus adéquat!
A tout de suite
Génial!!!
Cela fonctionne parfaitement!!!!
Donc pour résumer :
Import du fichier excel contenant les emprises avec leurs coordonnées
Création d'une table par couple de coordonnées (4 tables si emprise rectangulaire)
Création table vide (polys.tab)
Ouverture map basic et copie des données suivantes :
Code:
dim x1 as float dim y1 as float dim x2 as float dim y2 as float dim x3 as float dim y3 as float dim x4 as float dim y4 as float dim m as smallint dim n as smallint dim o as smallint dim p as smallint m=1 n=1 o=1 p=1 [b]fetch rec m from table1 x1=table1.Long1 y1=table1.Lat1 fetch rec n from table2 x2=table2.Long2 y2=table2.Lat2 fetch rec o from table3 x3=table3.Long3 y3=table3.Lat3 fetch rec p from table4 x4=table4.Long4 y4=table4.Lat4 create pline into window frontwindow() 5 (x1,y1) (x2,y2) (x3,y3) (x4,y4) (x1,y1) m=m+1 n=n+1 o=o+1 p=p+1 print chr$(12) print m[/b]
Validation de l'ensemble en sélectionnant à partir de la dernière ligne et en remontant, puis resélection de la partie en gras et validation jusqu'a ce que toutes les lignes soient balayées
Sauvegarde de la table "polys.tab", sélection de l'ensemble des données puis avec la fonction "convertir en polygone" du menu "objet" construction des polygones.
Il ne reste plus qu'a fusionner les tables initiales pour récupérer les valeurs attributaires et les lier à la table des polygones!!
Wahou!!
Génial, merci Maurice!!!!
Dernière modification par Stef Goofy (Sun 25 May 2008 20:19)
Hors ligne
#12 Sun 25 May 2008 19:13
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Créer des polygones depuis un fichier Excel
Bien content et merci pour le retour
Et ouf... fatiguant ce WE (mais j'avais qu'à pas me gourer au départ:)
Hors ligne
#13 Sun 25 May 2008 19:24
- Stef Goofy
- Participant occasionnel
- Date d'inscription: 16 Jan 2007
- Messages: 14
Re: Créer des polygones depuis un fichier Excel
Merci surtout à toi pour ton aide!!
Sans toi je serais toujours au point de départ!!
Allez, je vais relancer mes recherches dans les topics car j'ai vu quelque part comment fusionner deux tables pour récupérer mes valeurs et les mettre dans la table des polygones.
Reposes toi bien, il ne reste plus beaucoup de temps car demain la semaine recommence!
Perso, je vais passer quelques heures à exporter tout les catalogues disponibles pour les passer sur SIG grâce à ton process!
Excellent!
Merci Georezo et son équipe!!
Hors ligne
#14 Mon 27 July 2009 11:25
- ubornalsac
- Juste Inscrit !
- Date d'inscription: 27 Jul 2009
- Messages: 3
Re: Créer des polygones depuis un fichier Excel
Bonjour,
concernant ce sujet, je cherche également à créer des polygones à partir de points dont j'ai les coordonnées.
En fait au début, je voulais essayer de créer des polygones à partir d'un centroide dont j'avais les coordonnées dans un fichier xls en essayant de spécifier la surface du polygone que je voulais, mais je n'y suis pas arrivé.
Alors j'ai décidé de créer 4 points équidistants de mon centroide et ainsi avoir des jeux de 4 points. J'ai importé mes points en faisant "créer des points" puis j'ai voulu relier les points pour créer mes polygones en utilisant le mbx connectthedots. Mais ça n'a pas marché parce que lorsque je sélectionne mes 4 points et que je clique sur relier les points, on me dit que ma table est en "read only" ce qui est faux puisque j'ai coché le case "modifiable" pour cette couche.
Savez vous d'où vient le problème?
merci
(ps, je suis sur MI 5.0... je sais, c'est vieux)
Hors ligne
#15 Mon 27 July 2009 11:37
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Créer des polygones depuis un fichier Excel
Salut,
disposes tu de la FMB (Fenêtre MapBasic)?
----> Options ---> Voir fenêtre Mapbasic
A+
Joël
Hors ligne
#16 Mon 27 July 2009 11:48
- ubornalsac
- Juste Inscrit !
- Date d'inscription: 27 Jul 2009
- Messages: 3
Re: Créer des polygones depuis un fichier Excel
j'ai fait Affichage>fenetre Mapbasic et du coup elle est apparue.
Hors ligne
#17 Mon 27 July 2009 11:56
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Créer des polygones depuis un fichier Excel
Alors voilà d'abord un post qui peut t'être utile: http://georezo.net/forum/viewtopic.php?id=18609
Cette fonction te sera fort utile.
Select * from Pts_Polyg where ID1 =1 into Selection
Create Object As ConvexHull From Selection Into Table Polyg
Maintenant pour générer tout le script ---> Utilise un générateur ----> http://www.geocities.com/rictrem/
Le but du jeu est de créer un script de base pour faire un polygone puis de créer une liste et enfin de générer un script final (pour créer tous tes polygones) ---> Ce script est à coller dans la FMB puis éxecuter.
Dans l'aide du générateur, tu trouveras des exemples pour Mapinfo
Un autre lien intéressant ----> http://sinfotech-sig.teledetection.fr/s … mp;limit=5
Bonne Lecture
A+
Joël
Dernière modification par Spacejo (Mon 27 July 2009 12:10)
Hors ligne
#18 Mon 27 July 2009 13:55
- ubornalsac
- Juste Inscrit !
- Date d'inscription: 27 Jul 2009
- Messages: 3
Re: Créer des polygones depuis un fichier Excel
Ok, merci pour ces renseignements. Je vais essayer via MB, mais il me semble que c'est un peu ardu par rapport à mes capacités
Sinon, j'ai essayé à nouveau d'utiliser connectthedots en sauvant mon fichier sous un autre nom puis en le rouvrant et ça a fonctionné!!
C'est plus fastidieux, mais plus simple
Merci en tout cas
Hors ligne