Cassiopee Forum
CFD python modules
S'il vous plaît connectez vous ou Enregistrement'.
Date et heure en ce moment : dimanche, 22 octobre 2017, 06:36

Nouvelle discussion | Répondre
Cassiopee Forum :: Discussions, suggestions, bug report :: Converter :: Conflit lecture fichier fmt_tp & module python annexe  ::
AntoinePlaczek
Newbie
Image


Messages: 5
Conflit lecture fichier fmt_tp & module python annexe (mercredi, 13 janvier 2016, 17:51) citation  
Bonjour à tous,

je rebondis sur le post de Guillaume Depommier concernant la lecture de fichiers fmt_v3d avec l'import de modules python maison chez AH.

De mon côté j'importe matplotlib dans mon script de lecture de fichier avec Cassiopee R4 ce qui semble poser problème pour lire le simple fichier suivant écrit au format fmt_tp :

TITLE = ""
VARIABLES = "a"
ZONE T="toto", I=1 ,F=POINT
0.4


Avant la création d'un objet matplotlib dans mon script, la lecture avec Cassiopee fonctionne bien, les lignes de codes suivantes

> A = CV.convertFile2Arrays('toto_fmt_tp.dat',format='fmt_tp')
> print 'before plt: ', A

donnent à l'affichage: before plt: [['a', array([[ 0.4]]), 1, 1, 1]]

Par contre si une figure matplotlib est créée avant avec les lignes de code suivantes

> plt.figure()
> A = CV.convertFile2Arrays('toto_fmt_tp.dat',format='fmt_tp')
> print 'after plt: ', A

j'ai une mauvaise valeur lue par Cassiopee : after plt: [['a', array([[ 0.]]), 1, 1, 1]]

En gros tout ce qui est après un point dans les valeurs numériques n'est pas lu. Le même exercice avec un fichier binaire écrit par elsA ne pose pas de problème pourtant...

Je vous donne le script python pour la lecture des fichiers ainsi que les 2 fichiers de test au format fmt_tp et bin_tp pour info.




Ip enregistré Statut: déconnecté Profil | Site Web 
Ordre des réponses: Première réponse en dernier :: Première réponse en premier
AntoinePlaczek
Newbie
Image


Messages: 5
RE: Conflit lecture fichier fmt_tp & module python annexe (lundi, 18 janvier 2016, 08:41) citation  
Ok super, merci pour la solution de dépannage

Antoine

Ip enregistré Statut: déconnecté Profil | Site Web 
ChristopheBenoit
Administrator
Image


Messages: 169
RE: Conflit lecture fichier fmt_tp & module python annexe (vendredi, 15 janvier 2016, 18:01) citation  
Bonjour,

Le probleme vient du fait que matplotlib change le "locale",
qui dit au systeme d'interpreter les grandeurs 0,1 plutot
que 0.1 pour un flottant.
Pour que tout rentre dans l'ordre pour Cassiopee, il faut reforcer le "locale", apres matplotlib par ex:

import matplotlib.pyplot as plt
import Converter as CV
import Converter.PyTree as C
import numpy
import Generator as G

import locale

FILE = 'in.dat'
fmt = 'fmt_v3d'
fmt = 'fmt_tp'
a = G.cart((0.5,1.4,0.7),(1,1,1),(1,1,1))
CV.convertArrays2File([a],FILE,fmt)
print 'after write-OK', a

plt.figure() # le locale est trafique

locale.setlocale(locale.LC_ALL, 'en_US') # OK
A = CV.convertFile2Arrays(FILE,fmt)
print 'after plt: ', A

Il y a surement une facon mieux de le faire. Je crois
que l'on peut modifier matplotlib pour qu'il ne change pas
le locale.

a+





Ip enregistré Statut: déconnecté Profil | Site Web 
StephaniePeron
Full Member
Image


Messages: 158
RE: Conflit lecture fichier fmt_tp & module python annexe (vendredi, 15 janvier 2016, 11:56) citation  
Bonjour,
Effectivement cela apparaît pour les cas où l'on lit des fichiers formattés tecplot et v3d. Avec les autres formats, cela fonctionne. Si on crée ou modifie des pyTree ou des arrays en local, les numpy sont corrects.
Le fait que cela apparaît à l'appel de fonctions matplotlib est probablement un effet de bord, le problème est lié à la lecture de ces formats.
On regarde ça et on te tient au courant.


Ip enregistré Statut: déconnecté Profil | Site Web 
Nouvelle discussion | Répondre

Software PBLang 4.65 © 2002-2003 by Martin Senftleben
Image