1 --- !ruby/ShaXpear::Treatment
2 name: taux_reproduction
3 experiment: takeOverTime # l'experience sur la quelle on s'applique
4 parents: # les traitements qui doivent être effectués avant celui-ci
5 # on peut ainsi utiliser leurs fichiers de sortie
6 # (un peu comme les dépendances d'un makefile)
7 date:
8 doc:
9 name: Taux de reproduction moyen
10 author: shaXpear team
11 keywords: [ test ]
12 desc: A lot of stuff very interesting.
13 outputs:
14 - file: # fichiers generes
15 name: taux
16 pattern: taux.dat
17 desc: plein de trucs
18 data:
19 type: column
20 content:
21 - { name: density, desc: the density }
22 - { name: temperature, desc: the temperature }
23 - { name: taux_mean, desc: the mean of taux }
24 - file:
25 name: age_mean
26 pattern: age_mean.dat
27 desc: age moyen maximal de la pop en fonction de la temperature
28 data:
29 type: column
30 content:
31 - { name: temperature, desc: la temperature }
32 - { name: age_mean, desc: "l'age moyen" }
33 - file:
34 name: age_max
35 pattern: age_max.dat
36 desc: age moyen maximal de la population
37 data:
38 type: one_value
39 - file:
40 name: ab_max
41 pattern: means.dat
42 desc: voir traitements...
43 data:
44 type: column
45 content:
46 - { name: mean, desc: moyenne des max de a et b des file2 }
47 body: # descriptions des traitements à effectuer (par chaine de traitement)
48 - chain: # une chaine de traitement
49 descr: >
50 ce traitement cree un tableau a 2 dimensions en faisant
51 la moyenne de la colonne taux des fichiers file1
52 pour chaque valeur du couple (density,temperature).
53 treatments:
54 # Pour les traitements nous avons distingué plusieurs niveaux
55 # Note pour les explications:
56 # Par soucis de simplicité, nous allons dire que tous les labels sont
57 # des colonnes. Bien évidemment, les explications resteront valables
58 # en inversant lignes et colonnes.
59 # row: opérations sur une ligne (inter-colonnes)
60 # label: opérations sur une colonne (pour un fichier)
61 # run: opérations sur les fichiers d'un run
62 # pset: opérations sur les fichiers d'un jeu de paramètre
63 # global: opérations sur tous les fichiers
64 #
65 label_level: mean # on fait la moyenne des elements de chaque colonne taux
66 run_level: last
67 pset_level: max # on fait le maximum de toutes les moyennes
68 input:
69 - { file: file1, labels: [ taux ] } # on ne regardera que la ligne/colonne taux des fichiers 'file1'
70 vars:
71 - density # on répartit les fichiers en fonctions des paramètres
72 - temperature # 'density' et 'temperature'
73 output: taux # on écrit le résultat dans le fichier taux
74 # exemple de sortie:
75 # +---------+-------------+-----------+
76 # | density | temperature | taux_mean |
77 # +---------+-------------+-----------+
78 # | 1.320 | 2.454 | 1.072 |
79 # | 1.320 | 2.277 | 3.085 |
80 # | 3.120 | 2.454 | 4.123 |
81 # | ... | ... | ... |
82 # +---------+-------------+-----------+
83 #
84 # en réalité:
85 # 1.320 2.454 1.072
86 # 1.320 2.277 3.085
87 # 3.120 2.454 4.123
88 - chain:
89 descr: >
90 le maximum des ages moyens en fonction de la temperature
91 treatments:
92 label_level: mean
93 files_level: max
94 inputs:
95 - { file: file1, label: [age] }
96 vars: [ temperature ]
97 output: age_mean
98 - chain:
99 descr: |
100 le maximum des ages moyen de la population.
101 treatments:
102 label_level: max # un seul fichier, donc on aura au final une valeur unique
103 inputs: # age_mean a été 'initialisé' (un traitement a écrit dedans), on peut donc l'utiliser
104 - { file: age_mean, label: [age_mean] }
105 output: best # le résultat est une valeur unique, donc le type du fichier doit être one_value
106 - chain:
107 descr:
108 treatments:
109 row_level: max # on fait le max entre les valeurs des colonnes a et b pour chaque ligne
110 label_level: mean # on fait la moyenne de la colonne ainsi obtenue
111 inputs:
112 - { file: file1, label: [a,b] } # on prend 2 colonnes
113 output: ab_max
114