5. Quelques astuces utiles#
On propose ici quelques manipulations des données des tables en Python récurrentes lorsque de l’on veut aller plus loin dans la génération de courbes depuis Code_Aster .
Extraire de la table issue de POST_RELEVE_Tla liste des nœuds de post-traitement:
Lorsque l’on post-traite une grandeur sur un groupe de nœuds (à plus d’un nœud) pour plusieurs instants, les nœuds apparaissent pour chaque instant, il est donc nécessaire d’extraire la liste de ces nœuds sans répétition.
tabpy = tab.EXTR_TABLE() |
Création de l’objet Table Python |
tno = tabpy.NOEUD.values() |
On extrait les valeurs de la colonne NOEUD |
lno = list(set([i.strip() for i in tno])) |
|
Méthode performante pour éliminer les |
|
doublons utilisant set |
|
lno.sort() |
Tri par ordre croissant |
Construire un ou plusieurs mots-clés dynamiquement:
Ceci peut notamment être utile pour renseigner le mot-clé facteur FILTRE d’IMPR_TABLE en fonction du contexte; on construit dans ce cas un dictionnaire qui est ensuite fourni en argument de la commande.
Ceci:
IMPR_TABLE(
UNITE = unit,
TABLE = tab,
FORMAT = “XMGRACE”,
FILTRE = (_F(NOM_PARA=”NOEUD”,
VALE_K = “N4”,),
_F(NOM_PARA=”NOEUD”,
VALE_K = “N4”,),),
NOM_PARA = (“INST”, “VMIS”),
)
est équivalent à cela:
mfac = {‘FILTRE’ : [{‘NOM_PARA’:‘NOEUD’, ‘VALE_K’: ‘N4’},
{‘NOM_PARA’:‘INTITULE’, ‘VALE_K’: ‘exemple’},],
‘NOM_PARA’ : [‘INST’, ‘VMIS’],
‘UNITE’ : unit,
‘FORMAT’ : “XMGRACE”,}
IMPR_TABLE(
TABLE = tab,
**mfac
)
L’intérêt étant bien entendu de pouvoir construire le dictionnaire comme on le souhaite.
Remarque
Les mots-clés facteurs (ici FILTRE) peuvent être construits en utilisant _F(mot_clé = valeur), mais il est plus souple de les voir comme une liste de dictionnaires.