#1 Wed 04 November 2009 14:19
- Nelly33
- Participant occasionnel
- Date d'inscription: 24 Jun 2008
- Messages: 14
Créer un nouvel attribut et le renseigner
Bonjour à tous,
Je travaille avec Arcgis 9.3 et FME Worchbench 2007.
Je dispose de plusieurs shape point, dans lesquels je souhaiterai créer un nouveau champ "MULTI". Ce champs devra renseigner le nombre de colonne à lire pour chaque point.
En clair, dans mes tables attributaires je dispose de 30 champs et chaque points est plus ou moins renseignés dans ceux là. Du coup pour une meilleure lisibilité j'aimerai un champs qui me donne le nombre de champs renseignés pour tel ou tel point.
Etant donné que je suis novice en FME, pourriez vous m'expliquer comment procéder, pour créer un nouvel attribut et le renseigner?
Merci :)
Hors ligne
#2 Wed 04 November 2009 17:32
- xav
- Participant assidu
- Date d'inscription: 27 Oct 2005
- Messages: 280
Re: Créer un nouvel attribut et le renseigner
bonjour,
pour créer un nouvel attribut, il faut utiliser attribute_creator
Par contre je ne comprend pas tres bien à partir de quoi vous souhaitez le renseigner
Xavier Lang
Information géographique et observatoire - DSI Communautaire
Cap Atlantique
Hors ligne
#3 Wed 04 November 2009 18:42
- Nelly33
- Participant occasionnel
- Date d'inscription: 24 Jun 2008
- Messages: 14
Re: Créer un nouvel attribut et le renseigner
Bonsoir,
c'est vrai que j'étais pas très clair dans mes explications...
J'ai une couche de points, ces points sont positionnés sur une ou plusieurs images. La table attributaire est composé comme suit: ID/IMAGE1/COORDX/COORDY/IMAGE2/COORDX... J'aimerai avoir un champs qui repertorie le nombre d'image sur lequel est posé mon point en fonction des attributs IMAGE1, IMAGE 2...etc.
EX: Si le point 01 n'est renseigné que dans IMAGE1 ---> 1
Si le point 02 est renseigné jusqu'à l'IMAGE 4 ---> 4
Je cherche donc à automatiser cette tâche via FME car je dispose de plusieurs couches.
J'ai essayé avec attribut creator mais je ne sais pas quoi renseigner dans 'Valeur'...
J'éspère avoir étais plus clair et surtout que quelqu'un pourra m'aider!
Hors ligne
#4 Wed 04 November 2009 19:30
- Pookie
- Participant occasionnel
- Date d'inscription: 15 May 2006
- Messages: 25
Re: Créer un nouvel attribut et le renseigner
Bonjour,
Je tenterais de :
- Remplacer les attributs nul avec nullatributeremover
- Avec un attributeremover je sors les champs nul (tester la valeur de l'attribut)
- Création d'une liste listbuilder
- et pour finir un listelementcounter + attributecreator
on devrait obtenir le nombre de champs, il doit y avoir plus simple mais je ne vois pas autrement (enfin si une requête SQL serait plus facile à mon avis).
Bonne chance.
Hors ligne
#5 Wed 04 November 2009 22:05
- Nelly33
- Participant occasionnel
- Date d'inscription: 24 Jun 2008
- Messages: 14
Re: Créer un nouvel attribut et le renseigner
Merci pour la réponse, je teste ça dès demain !!!
Bonne soirée!
Hors ligne
#6 Wed 04 November 2009 23:13
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: Créer un nouvel attribut et le renseigner
Aloha
Avec un tcl caller, cela ne prend qu'une boîte. Je complète ce message demain matin avec un exemple de boucle pour compter le nombre d'attributs.
Sinon +1 pour la solution proposée par pookie.
*****************
Edit :
Donc voici le code à mettre dans un TCL caller précédé d'un attribute creator (créer l'attribut nombre).
Code:
proc somattr{} { #initialisation de la variable dans laquelle nous allons mettre la liste des attributs non nuls set l_attr [list] #initialisation de la boucle foreach attr [FME_AttributeNames] { #récupération de la valeur de chaque attribut set val_attr [FME_GetAttribute $attr ] #test valeur non nulle puis peuplement de la liste avec le nom de l'attribut if {$val_attr != "" } {lappend retval $attr} } #calcul de la dimension de la liste set n [llength $l_attr] #mise à jour de l'attribut nombre (attribut créé par un attribute creator) FME_SetAttribute nombre $n }
Dernière modification par Pierre (Thu 05 November 2009 09:22)
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#7 Thu 05 November 2009 12:37
- Pookie
- Participant occasionnel
- Date d'inscription: 15 May 2006
- Messages: 25
Re: Créer un nouvel attribut et le renseigner
Aloha
Donc voici le code à mettre dans un TCL caller précédé d'un attribute creator (créer l'attribut nombre).
Plutôt intéressant cette façon de faire que je ne connaissais pas, en cherchant sur internet et la doc FME je n'ai pas trouvé grand chose sur le TCL et FME, existe-t-il un tutoriel sur le sujet ?
Pookie
Hors ligne
#8 Thu 05 November 2009 15:24
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: Créer un nouvel attribut et le renseigner
Bonjour,
Dans un TCLCALLER, on peut préciser la fonction a executer, et le fichier TCL qui contient cette fonction.
Cela marche bien en général
Voici 2 sites, le 1er sur le TCL et l'autre un forum TCl
http://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html
http://groups.google.com/group/fr.comp.lang.tcl
Hors ligne
#9 Thu 05 November 2009 17:53
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: Créer un nouvel attribut et le renseigner
Peu de tuto malheureusement. Pas mal d'entraide cependant. Le TCL reste un langage bien documenté (cf les liens de PY). Et reste à privilégier si l'on souhaite limiter le nombre de boîte, pour des traitements très algorithmiques ou alors juste pour prendre des vacances de listbuilder...
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#10 Thu 05 November 2009 21:08
- jaykayone
- Participant actif
- Date d'inscription: 15 Feb 2007
- Messages: 95
Re: Créer un nouvel attribut et le renseigner
D'ailleurs, pour tous les fans de python, la même chose peut être faite en python, langage plus accessible que le TCL ..
et il existe un bon tutoriel : http://www.fmepedia.com/index.php/Olive … hon_Corner
Hors ligne
#11 Fri 06 November 2009 10:18
- Nelly33
- Participant occasionnel
- Date d'inscription: 24 Jun 2008
- Messages: 14
Re: Créer un nouvel attribut et le renseigner
Merci beaucoup pour vos réponses, ça m'a bien aidé !
Passez une bonne journée!!!
Hors ligne