#1 mer 04 novembre 2009 14:19
- Nelly33
- Membre
- Date d'inscription: 24 jun 2008
- Messages: 8
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 mer 04 novembre 2009 17:32
- xav
- Membre
- Date d'inscription: 27 oct 2005
- Messages: 76
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
SIG Communautaire
Communauté d'Agglomération de la Région Nazairienne et de l'Estuaire
Hors ligne
#3 mer 04 novembre 2009 18:42
- Nelly33
- Membre
- Date d'inscription: 24 jun 2008
- Messages: 8
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 mer 04 novembre 2009 19:30
- Pookie
- Membre
- Date d'inscription: 15 mai 2006
- Messages: 6
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 mer 04 novembre 2009 22:05
- Nelly33
- Membre
- Date d'inscription: 24 jun 2008
- Messages: 8
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 mer 04 novembre 2009 23:13
- Pierre
- Moderateur
- Lieu: Reims
- Date d'inscription: 22 sep 2005
- Messages: 506
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 (jeu 05 novembre 2009 09:22)
Hors ligne
#7 jeu 05 novembre 2009 12:37
- Pookie
- Membre
- Date d'inscription: 15 mai 2006
- Messages: 6
Re: Créer un nouvel attribut et le renseigner
Pierre a écrit:
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 jeu 05 novembre 2009 15:24
- pyjoubert
- Membre
- Lieu: Lyon
- Date d'inscription: 21 mar 2006
- Messages: 97
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
Pierre-Yves JOUBERT
Le grand Lyon
Hors ligne
#9 jeu 05 novembre 2009 17:53
- Pierre
- Moderateur
- Lieu: Reims
- Date d'inscription: 22 sep 2005
- Messages: 506
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...
Hors ligne
#10 jeu 05 novembre 2009 21:08
- jaykayone
- Membre
- Date d'inscription: 15 fév 2007
- Messages: 85
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 ven 06 novembre 2009 10:18
- Nelly33
- Membre
- Date d'inscription: 24 jun 2008
- Messages: 8
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
