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 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... smile
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

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 Thu 05 November 2009 15:24

pyjoubert
Participant assidu
Lieu: Lyon
Date d'inscription: 21 Mar 2006
Messages: 343

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

 

Pied de page des forums

Powered by FluxBB