),
DATA_DATA = BLOC ( condition = " FROM in ( 'DataFile', ) ",
DATA_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'CSV Text Files (*.csv);;TSV Text Files (*.tsv);;TXT Text Files (*.txt);;NPY Binary Numpy Files (*.npy);;NPZ Binary Numpy Files (*.npz);;All Files (*)", ',), validators=[OnlyStr(), FunctionVal(ColDataFileExtVal)], fr="En attente d'un nom de fichier de données, avec ou sans le chemin complet pour le trouver, contenant ou plusieurs colonnes pour définir un unique vecteur continu", ang="Waiting for a data file name, with or without the full path to find it, containing one or more columns to define a unique continuous vector"),
+ ColMajor = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Variables en colonnes acquises par ligne (0) ou par colonne (1)", ang="Variables in columns acquired by line (0) or by column (1)"),
),
STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
STRING = SIMP(statut = "o", typ = "TXM",{ms_default} fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
- in binary format (single-variable in a Numpy file with a ".npy"
extension, multi-variables in a NumpyZ file with a ".npz" extension)
- By default, the values of a variable has to be ordered in rows
- ("ColMajor=False"), but they can also be ordered in lines
+ By default, the values of a variable has to be ordered in rows to be
+ acquired record line by record line ("ColMajor=False"), but they can also
+ be ordered in lines to be acquired record row by record row
("ColMajor=True").
Without information or with a void list, all the values of all the
variables are used, but one can also select only the ones of the variables
- that are indicated in the name list in "ColNames".
+ that are indicated in the name list "ColNames". the variable names are
+ always as header of columns.
Example of CSV file for "*Observation*" variable in "*DataFile*" ::
".npy", multi-variables dans un fichier NumpyZ à extension ".npz").
Par défaut, les valeurs d'une variable doivent être rangées en colonnes
- ("ColMajor=False"), mais elles peuvent aussi être rangées en lignes
+ pour être acquises ligne d'enregistrement par ligne d'enregistrement
+ ("ColMajor=False"), mais elles peuvent aussi être rangées en lignes pour
+ être acquises colonne d'enregistrement par colonne d'enregistrement
("ColMajor=True").
- Sans précision ou avec une liste vide pour les noms de variable, on utilise
- les valeurs toutes les variables, mais on peut aussi sélectionner
- uniquement celles des variables indiquées dans la liste indiquée de noms
- dans "ColNames".
+ Sans précision ou avec une liste vide pour les noms de variables, on
+ utilise les valeurs toutes les variables, mais on peut aussi sélectionner
+ uniquement celles des variables indiquées dans la liste de noms fournie
+ dans "ColNames". Les noms de variable sont toujours en entête de colonne.
Exemple de fichier CSV pour la variable "*Observation*" en "*DataFile*" ::
if sys.version_info.major > 2: import adao
from daCore.Interfaces import ImportFromFile as aif
-vector = numpy.ravel( aif(script).getvalue(columns)[1] )
+if colmajor:
+ vector = numpy.ravel( numpy.transpose( aif(script).getvalue(columns)[1] ) )
+else:
+ vector = numpy.ravel( aif(script).getvalue(columns)[1] )
]]></code></script>
<inport name="script" type="string"/>
<inport name="columns" type="stringvec"/>
+ <inport name="colmajor" type="bool"/>
<outport name="vector" type="pyobj"/>
<outport name="type" type="string"/>
<outport name="stored" type="bool"/>
if sys.version_info.major > 2: import adao
from daCore.Interfaces import ImportFromFile as aif
if len(columns) == 0: columns = None
-vector = numpy.transpose( aif(script).getvalue(columns)[1] )
+if colmajor:
+ aif(script).getvalue(columns)[1]
+else:
+ vector = numpy.transpose( aif(script).getvalue(columns)[1] )
]]></code></script>
<inport name="script" type="string"/>
<inport name="columns" type="stringvec"/>
+ <inport name="colmajor" type="bool"/>
<outport name="vector" type="pyobj"/>
<outport name="type" type="string"/>
<outport name="stored" type="bool"/>
self.text_da += data_name + "_config['Data'] = '" + data + "'\n"
if search_text+"Stored" in self.dictMCVal.keys():
self.text_da += data_name + "_config['Stored'] = '" + str(self.dictMCVal[search_text+"Stored"]) + "'\n"
+ if search_type+"DATA_DATA__ColMajor" in self.dictMCVal.keys():
+ self.text_da += data_name + "_config['ColMajor'] = '" + str(self.dictMCVal[search_type+"DATA_DATA__ColMajor"]) + "'\n"
self.text_da += "study_config['" + data_name + "'] = " + data_name + "_config\n"
if from_type == "ScriptWithSwitch":
AnalysisFromList = ["String", "Script"]
# -- Infos from daCore --
-AssimData = ["Background", "BackgroundError",
- "Observation", "ObservationError",
- "ObservationOperator",
- "EvolutionModel", "EvolutionError",
- "AlgorithmParameters",
- "CheckingPoint", "ControlInput",
- ]
+AssimData = [
+ "Background",
+ "BackgroundError",
+ "Observation",
+ "ObservationError",
+ "ObservationOperator",
+ "EvolutionModel",
+ "EvolutionError",
+ "AlgorithmParameters",
+ "CheckingPoint",
+ "ControlInput",
+ ]
AssimType = {}
AssimType["Background"] = ["Vector", "VectorSerie"]
back_node = factory_back_node.cloneNode("Get" + key)
back_node.getInputPort("script").edInitPy(data_config["Data"])
back_node.getInputPort("columns").edInitPy((key,)) # On impose le concept, et le schéma YACS est ammendable
+ if "ColMajor" in data_config:
+ colmajor = bool(data_config["ColMajor"])
+ else:
+ colmajor = False
+ back_node.getInputPort("colmajor").edInitPy(colmajor) # On impose le concept, et le schéma YACS est ammendable
ADAO_Case.edAddChild(back_node)
# Set content of the node
back_node_script = back_node.getScript()
back_node = factory_back_node.cloneNode("Get" + key)
back_node.getInputPort("script").edInitPy(data_config["Data"])
back_node.getInputPort("columns").edInitPy(()) # On impose aucun nom et le schéma YACS est ammendable
+ if "ColMajor" in data_config:
+ colmajor = bool(data_config["ColMajor"])
+ else:
+ colmajor = False
+ back_node.getInputPort("colmajor").edInitPy(colmajor) # On impose le concept, et le schéma YACS est ammendable
ADAO_Case.edAddChild(back_node)
# Set content of the node
back_node_script = back_node.getScript()