try:
p = xmlLoader.load("<ADAO YACS xml scheme>")
except IOError,ex:
- print "IO exception:",ex
+ print("IO exception:",ex)
logger = p.getLogger("parser")
if not logger.isEmpty():
- print "The imported file has errors :"
- print logger.getStr()
+ print("The imported file has errors :")
+ print(logger.getStr())
if not p.isValid():
- print "The schema is not valid and can not be executed"
- print p.getErrorReport()
+ print("The schema is not valid and can not be executed")
+ print(p.getErrorReport())
info=pilot.LinkInfo(pilot.LinkInfo.ALL_DONT_STOP)
p.checkConsistency(info)
if info.areWarningsOrErrors():
- print "The schema is not consistent and can not be executed"
- print info.getGlobalRepr()
+ print("The schema is not consistent and can not be executed")
+ print(info.getGlobalRepr())
e = pilot.ExecutorSwig()
e.RunW(p)
if p.getEffectiveState() != pilot.DONE:
- print p.getErrorReport()
+ print(p.getErrorReport())
This method allows for example to edit the YACS XML scheme in TUI, or to gather
results for further use.
Xa = Study.getResults().get("Analysis")[-1]
- print
- print "Analysis =",Xa
- print
+ print()
+ print("Analysis =",Xa)
+ print()
The (initial or augmented) YACS scheme can be saved (overwriting the generated
scheme if the "*Save*" command or button are used, or with a new name through
#
# Verifying the results by printing
# ---------------------------------
- print
- print "xt = %s"%xt
- print "xa = %s"%numpy.array(xa)
- print
+ print()
+ print("xt = %s"%xt)
+ print("xa = %s"%numpy.array(xa))
+ print()
for i in range( len(x_series) ):
- print "Step %2i : J = %.5e and X = %s"%(i, J[i], x_series[i])
- print
+ print("Step %2i : J = %.5e and X = %s"%(i, J[i], x_series[i]))
+ print()
At the end, we get a description of the whole case setup through a set of files
listed here:
"*ValuePrinter*"), that can be used to print the value of the monitored
variable::
- print " --->",info," Value =",var[-1]
+ print(" --->",info," Value =",var[-1])
Stored as a Python file or as an explicit string, these script lines can be
associated to each variable found in the keyword "*SELECTION*" of the
import numpy
xa=numpy.ravel(ADD.get('Analysis')[-1])
- print 'Analysis:',xa"
+ print('Analysis:',xa)
The ``numpy.ravel`` function is here to be sure that the ``xa`` variable will
contain a real unidimensional vector, whatever the previous computing choices
import numpy
xa=numpy.ravel(ADD.get('Analysis')[-1])
f='/tmp/analysis.txt'
- print 'Analysis saved in "%s"'%f
+ print('Analysis saved in "%s"'%f)
numpy.savetxt(f,xa)"
The chosen recording file is a text one named ``/tmp/analysis.txt``.
import numpy
xa=numpy.ravel(ADD.get('Analysis')[-1])
- print 'Analysis:',xa
+ print('Analysis:',xa)
f='/tmp/analysis.txt'
- print 'Analysis saved in "%s"'%f
+ print('Analysis saved in "%s"'%f)
numpy.savetxt(f,xa)
To facilitate these examples extension for user needs, we recall that all the
"*UserPostAnalysis*" keyword, one can use::
Xa = ADD.get("Analysis")[-1]
- print "Optimal state:", Xa
- print
+ print("Optimal state:", Xa)
+ print()
This ``Xa`` variable is a vector of values, that represents the solution of the
data assimilation or optimization evaluation problem, noted as
try:
p = xmlLoader.load("<Schéma xml YACS ADAO>")
except IOError,ex:
- print "IO exception:",ex
+ print("IO exception:",ex)
logger = p.getLogger("parser")
if not logger.isEmpty():
- print "The imported file has errors :"
- print logger.getStr()
+ print("The imported file has errors :")
+ print(logger.getStr())
if not p.isValid():
- print "Le schéma n'est pas valide et ne peut pas être exécuté"
- print p.getErrorReport()
+ print("Le schéma n'est pas valide et ne peut pas être exécuté")
+ print(p.getErrorReport())
info=pilot.LinkInfo(pilot.LinkInfo.ALL_DONT_STOP)
p.checkConsistency(info)
if info.areWarningsOrErrors():
- print "Le schéma n'est pas cohérent et ne peut pas être exécuté"
- print info.getGlobalRepr()
+ print("Le schéma n'est pas cohérent et ne peut pas être exécuté")
+ print(info.getGlobalRepr())
e = pilot.ExecutorSwig()
e.RunW(p)
if p.getEffectiveState() != pilot.DONE:
- print p.getErrorReport()
+ print(p.getErrorReport())
Cette démarche permet par exemple d'éditer le schéma YACS XML en mode texte TUI,
ou de rassembler les résultats pour un usage ultérieur.
Xa = Study.getResults().get("Analysis")[-1]
- print
- print "Analysis =",Xa
- print
+ print()
+ print("Analysis =",Xa)
+ print()
Le schéma YACS (initial ou complété) peut être enregistré (en écrasant le schéma
généré si la commande ou le bouton "*Enregistrer*" sont utilisés, ou sinon avec
#
# Verifying the results by printing
# ---------------------------------
- print
- print "xt = %s"%xt
- print "xa = %s"%numpy.array(xa)
- print
+ print()
+ print("xt = %s"%xt)
+ print("xa = %s"%numpy.array(xa))
+ print()
for i in range( len(x_series) ):
- print "Etape %2i : J = %.5e et X = %s"%(i, J[i], x_series[i])
- print
+ print("Etape %2i : J = %.5e et X = %s"%(i, J[i], x_series[i]))
+ print()
Finalement, on obtient la description de l'ensemble des conditions
d'expériences à travers la série de fichiers listée ici:
"*ValuePrinter*"), utilisable pour afficher la valeur d'une variable
surveillée::
- print " --->",info," Value =",var[-1]
+ print(" --->",info," Value =",var[-1])
Stockées comme un fichier Python ou une chaîne de caractères explicite, ces
lignes de script peuvent être associées à chaque variable présente dans le
import numpy
xa=numpy.ravel(ADD.get('Analysis')[-1])
- print 'Analysis:',xa"
+ print('Analysis:',xa)
La fonction ``numpy.ravel`` assure simplement que la variable ``xa`` contienne
un vrai vecteur unidimensionnel, quels que soient les choix informatiques
import numpy
xa=numpy.ravel(ADD.get('Analysis')[-1])
f='/tmp/analysis.txt'
- print 'Analysis saved in "%s"'%f
+ print('Analysis saved in "%s"'%f)
numpy.savetxt(f,xa)"
Le fichier d'enregistrement choisi est un fichier texte ``/tmp/analysis.txt``.
import numpy
xa=numpy.ravel(ADD.get('Analysis')[-1])
- print 'Analysis:',xa
+ print('Analysis:',xa)
f='/tmp/analysis.txt'
- print 'Analysis saved in "%s"'%f
+ print('Analysis saved in "%s"'%f)
numpy.savetxt(f,xa)
Pour faciliter l'extension de ces exemples selon les besoins utilisateurs, on
l'intermédiaire du mot-clé "*UserPostAnalysis*", on peut utiliser::
Xa = ADD.get("Analysis")[-1]
- print "Optimal state:", Xa
- print
+ print("Optimal state:", Xa)
+ print()
Cette variable ``Xa`` est un vecteur de valeurs, qui représente la solution du
problème d'évaluation par assimilation de données ou par optimisation, notée