SankeyExcelParser 1.0.0b0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. SankeyExcelParser/__init__.py +0 -0
  2. SankeyExcelParser/io_excel.py +1867 -0
  3. SankeyExcelParser/io_excel_constants.py +811 -0
  4. SankeyExcelParser/sankey.py +3138 -0
  5. SankeyExcelParser/sankey_utils/__init__.py +0 -0
  6. SankeyExcelParser/sankey_utils/data.py +1118 -0
  7. SankeyExcelParser/sankey_utils/excel_source.py +31 -0
  8. SankeyExcelParser/sankey_utils/flux.py +344 -0
  9. SankeyExcelParser/sankey_utils/functions.py +278 -0
  10. SankeyExcelParser/sankey_utils/node.py +340 -0
  11. SankeyExcelParser/sankey_utils/protos/__init__.py +0 -0
  12. SankeyExcelParser/sankey_utils/protos/flux.py +84 -0
  13. SankeyExcelParser/sankey_utils/protos/node.py +386 -0
  14. SankeyExcelParser/sankey_utils/protos/sankey_object.py +135 -0
  15. SankeyExcelParser/sankey_utils/protos/tag_group.py +95 -0
  16. SankeyExcelParser/sankey_utils/sankey_object.py +165 -0
  17. SankeyExcelParser/sankey_utils/table_object.py +37 -0
  18. SankeyExcelParser/sankey_utils/tag.py +95 -0
  19. SankeyExcelParser/sankey_utils/tag_group.py +206 -0
  20. SankeyExcelParser/su_trace.py +239 -0
  21. SankeyExcelParser/tests/integration/__init__.py +0 -0
  22. SankeyExcelParser/tests/integration/test_base.py +356 -0
  23. SankeyExcelParser/tests/integration/test_run_check_input.py +100 -0
  24. SankeyExcelParser/tests/integration/test_run_conversions.py +96 -0
  25. SankeyExcelParser/tests/integration/test_run_load_input.py +94 -0
  26. SankeyExcelParser/tests/unit/__init__.py +0 -0
  27. SankeyExcelParser-1.0.0b0.data/scripts/run_parse_and_write_excel.py +155 -0
  28. SankeyExcelParser-1.0.0b0.data/scripts/run_parse_excel.py +115 -0
  29. SankeyExcelParser-1.0.0b0.dist-info/METADATA +113 -0
  30. SankeyExcelParser-1.0.0b0.dist-info/RECORD +32 -0
  31. SankeyExcelParser-1.0.0b0.dist-info/WHEEL +5 -0
  32. SankeyExcelParser-1.0.0b0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,811 @@
1
+ '''
2
+ Author : Vincent LE DOZE
3
+ Date : 31/05/23
4
+
5
+ This file contains all constants for excel parsing.
6
+
7
+ '''
8
+
9
+ # Variables globales ==========================================================================
10
+ # Tags for nodes & links -----------------------------------------------
11
+ TAG_SHEET = 'tags'
12
+ TAG_NAME, TAG_TYPE, TAG_TAGS, TAG_IS_PALETTE, TAG_COLORMAP, TAG_COLOR =\
13
+ 'tag_name', 'tag_type', 'tags', 'is_palette', 'colormap', 'tag_color'
14
+ TAG_SHEET_COLS = [
15
+ TAG_NAME, TAG_TYPE, TAG_TAGS, TAG_IS_PALETTE, TAG_COLORMAP, TAG_COLOR]
16
+ TAG_TYPE_DATA = 'dataTags'
17
+ TAG_TYPE_FLUX = 'fluxTags'
18
+ TAG_TYPE_NODE = 'nodeTags'
19
+ TAG_TYPE_LEVEL = 'levelTags'
20
+
21
+ # Tags for nodes --------------------------------------------------------
22
+ NODE_TYPE = 'Type de noeud'
23
+ NODE_TYPE_PRODUCT = 'produit'
24
+ NODE_TYPE_SECTOR = 'secteur'
25
+ NODE_TYPE_EXCHANGE = 'echange'
26
+
27
+ # Tags for AFM module --------------------------------------------------
28
+ DATA_TYPE_LABEL = 'Type de donnée'
29
+ DATA_COMPUTED = 'Donnée calculée'
30
+ DATA_COLLECTED = 'Donnée collectée'
31
+
32
+ # Node description sheet -----------------------------------------------
33
+ NODES_SHEET = 'nodes'
34
+ PRODUCTS_SHEET = 'dim_products'
35
+ SECTORS_SHEET = 'dim_sectors'
36
+ EXCHANGES_SHEET = 'exchanges'
37
+
38
+ NODES_LEVEL = 'level'
39
+ NODES_NODE = 'node'
40
+ NODES_MAT_BALANCE = 'mat_balance'
41
+ NODES_SANKEY = 'sankey'
42
+ NODES_COLOR = 'color'
43
+ NODES_DEFINITIONS = 'definitions'
44
+ NODES_SHEET_COLS = [
45
+ NODES_LEVEL, NODES_NODE, NODES_MAT_BALANCE,
46
+ NODES_SANKEY, NODES_COLOR, NODES_DEFINITIONS
47
+ ]
48
+
49
+ # Data description sheets ----------------------------------------------
50
+ DATA_SHEET = 'data'
51
+ DATA_ORIGIN = 'origin'
52
+ DATA_DESTINATION = 'destination'
53
+ DATA_VALUE = 'value'
54
+ DATA_QUANTITY = 'quantity'
55
+ DATA_NATURAL_UNIT = 'natural_unit'
56
+ DATA_FACTOR = 'factor'
57
+ DATA_UNCERT = 'uncert'
58
+ DATA_SOURCE = 'sources'
59
+ DATA_HYPOTHESIS = 'hypotheses'
60
+ DATA_SHEET_COLS_1 = [DATA_ORIGIN, DATA_DESTINATION]
61
+ DATA_SHEET_COLS_2 = \
62
+ [DATA_VALUE, DATA_QUANTITY, DATA_NATURAL_UNIT, DATA_FACTOR,
63
+ DATA_UNCERT, DATA_SOURCE, DATA_HYPOTHESIS]
64
+ DATA_SHEET_COLS = DATA_SHEET_COLS_1 + DATA_SHEET_COLS_2
65
+
66
+ DEFAULT_SIGMA_RELATIVE = 0.1
67
+ DEFAULT_SIGMA_PERCENT = DEFAULT_SIGMA_RELATIVE*100.0
68
+
69
+ # Flux description sheet -----------------------------------------------
70
+ FLUX_SHEET = 'flux'
71
+ FLUX_SHEET_COLS = [DATA_ORIGIN, DATA_DESTINATION]
72
+
73
+ IO_SHEET = 'input_output'
74
+ TER_SHEET = 'ter'
75
+ IO_DATA_SHEET = 'input_output_data'
76
+
77
+ # Constraint description sheets ----------------------------------------
78
+ MIN_MAX_SHEET = 'min_max'
79
+ MIN_MAX_ORIGIN = 'origin'
80
+ MIN_MAX_DESTINATION = 'destination'
81
+ MIN_MAX_MIN = 'min'
82
+ MIN_MAX_MAX = 'max'
83
+ MIN_MAX_MIN_QUANTITY = 'min_quantity'
84
+ MIN_MAX_MAX_QUANTITY = 'max_quantity'
85
+ MIN_MAX_NATURAL_UNIT = 'natural_unit'
86
+ MIN_MAX_FACTOR = 'factor'
87
+ MIN_MAX_SOURCE = 'sources'
88
+ MIN_MAX_HYPOTHESIS = 'hypotheses'
89
+ MIN_MAX_SHEET_COLS_1 = [
90
+ MIN_MAX_ORIGIN, MIN_MAX_DESTINATION]
91
+ MIN_MAX_SHEET_COLS_2 = [
92
+ MIN_MAX_MIN, MIN_MAX_MAX,
93
+ MIN_MAX_MIN_QUANTITY, MIN_MAX_MAX_QUANTITY,
94
+ MIN_MAX_NATURAL_UNIT, MIN_MAX_FACTOR,
95
+ MIN_MAX_SOURCE, MIN_MAX_HYPOTHESIS]
96
+ MIN_MAX_SHEET_COLS = MIN_MAX_SHEET_COLS_1 + MIN_MAX_SHEET_COLS_2
97
+
98
+ CONSTRAINTS_SHEET = 'constraints'
99
+ CONSTRAINT_ID = 'id'
100
+ CONSTRAINT_ORIGIN = 'origin'
101
+ CONSTRAINT_DESTINATION = 'destination'
102
+ CONSTRAINT_EQ = 'eq = 0'
103
+ CONSTRAINT_INEQ_INF = 'eq <= 0'
104
+ CONSTRAINT_INEQ_SUP = 'eq >= 0'
105
+ CONSTRAINT_TRADUCTION = 'traduction'
106
+ CONSTRAINT_SOURCE = 'source'
107
+ CONSTRAINT_HYPOTHESIS = 'hypotheses'
108
+ CONSTRAINT_SHEET_COLS_1 = [
109
+ CONSTRAINT_ID, CONSTRAINT_ORIGIN, CONSTRAINT_DESTINATION]
110
+ CONSTRAINT_SHEET_COLS_2 = [
111
+ CONSTRAINT_EQ, CONSTRAINT_INEQ_INF, CONSTRAINT_INEQ_SUP,
112
+ CONSTRAINT_TRADUCTION, CONSTRAINT_SOURCE, CONSTRAINT_HYPOTHESIS]
113
+ CONSTRAINT_SHEET_COLS = CONSTRAINT_SHEET_COLS_1 + CONSTRAINT_SHEET_COLS_2
114
+
115
+ DATA_UNCERTAINTY_LABEL = 'Incertitudes données'
116
+ UNCERTAINTY_LABEL = 'Incertitudes réconciliées'
117
+ UNCERT_1_PRCT_LABEL = '< 1%'
118
+ UNCERT_5_PRCT_LABEL = '< 5%'
119
+ UNCERT_10_PRCT_LABEL = '< 10%'
120
+ UNCERT_25_PRCT_LABEL = '< 25%'
121
+ UNCERT_50_PRCT_LABEL = '< 50%'
122
+ UNCERT_50_MORE_PRCT_LABEL = '> 50%'
123
+
124
+ RESULTS_SHEET = 'results'
125
+ RESULTS_ORIGIN = 'origin'
126
+ RESULTS_DESTINATION = 'destination'
127
+ RESULTS_VALUE = 'value'
128
+ RESULTS_FREE_MIN = 'free min' # Si variable libre (indeterminée), valeur min de l'intervalle
129
+ RESULTS_FREE_MAX = 'free max' # Si variable libre (indeterminée), valeur max de l'intervalle
130
+ RESULTS_SHEET_COLS_1 = [RESULTS_ORIGIN, RESULTS_DESTINATION]
131
+ RESULTS_SHEET_COLS_2 = [RESULTS_VALUE, RESULTS_FREE_MIN, RESULTS_FREE_MAX]
132
+ RESULTS_SHEET_COLS = RESULTS_SHEET_COLS_1 + RESULTS_SHEET_COLS_2
133
+
134
+ ANALYSIS_SHEET = 'analysis'
135
+ ANALYSIS_VALUE_IN = 'value in'
136
+ ANALYSIS_VALUE_IN_SIGMA = 'sigma in'
137
+ ANALYSIS_VALUE_IN_SIGMA_PRCT = 'sigma in %'
138
+ ANALYSIS_VALUE_MIN_IN = 'min in'
139
+ ANALYSIS_VALUE_MAX_IN = 'max in'
140
+ ANALYSIS_NB_SIGMAS = 'nb_sigmas' # Eloignement en sigma de la valeur resultat / donnée entrée
141
+ ANALYSIS_CLASSIF = 'classif' # Mesurée / Redondandes / Determinable / Indeterminable (libre)
142
+ ANALYSIS_AI = 'Ai' # Liste de lignes dans lesquelles la donnée est impliquée dans la matrice de contrainte.
143
+ ANALYSIS_SHEET_COLS_1 = [RESULTS_ORIGIN, RESULTS_DESTINATION]
144
+ ANALYSIS_SHEET_COLS_2 = [
145
+ RESULTS_VALUE, RESULTS_FREE_MIN, RESULTS_FREE_MAX,
146
+ ANALYSIS_VALUE_IN, ANALYSIS_VALUE_IN_SIGMA, ANALYSIS_VALUE_IN_SIGMA_PRCT,
147
+ ANALYSIS_VALUE_MIN_IN, ANALYSIS_VALUE_MAX_IN, ANALYSIS_NB_SIGMAS,
148
+ ANALYSIS_CLASSIF] # , ANALYSIS_AI]
149
+ ANALYSIS_SHEET_COLS = ANALYSIS_SHEET_COLS_1 + ANALYSIS_SHEET_COLS_2
150
+
151
+ UNCERTAINTY_SHEET = 'uncertainty'
152
+ UNCERTAINTY_ORIGIN = RESULTS_ORIGIN
153
+ UNCERTAINTY_DESTINATION = RESULTS_DESTINATION
154
+ UNCERTAINTY_MC_MU_IN = 'MC mu in' # Valeur Moyenne tirage monté-carlo avant reconcilliation
155
+ UNCERTAINTY_MC_STD_IN = 'MC std in' # Ecart-type tirage monté-carlo avant reconcilliation
156
+ UNCERTAINTY_MC_MU = 'MC mu' # Valeur Moyenne tirage monté-carlo après reconcilliation
157
+ UNCERTAINTY_MC_STD = 'MC std' # Ecart-type tirage monté-carlo après reconcilliation
158
+ UNCERTAINTY_MC_MIN = 'MC min'
159
+ UNCERTAINTY_MC_MAX = 'MC max'
160
+ UNCERTAINTY_MC_P0 = 'MC p0'
161
+ UNCERTAINTY_MC_P5 = 'MC p5'
162
+ UNCERTAINTY_MC_P10 = 'MC p10'
163
+ UNCERTAINTY_MC_P20 = 'MC p20'
164
+ UNCERTAINTY_MC_P30 = 'MC p30'
165
+ UNCERTAINTY_MC_P40 = 'MC p40'
166
+ UNCERTAINTY_MC_P50 = 'MC p50'
167
+ UNCERTAINTY_MC_P60 = 'MC p60'
168
+ UNCERTAINTY_MC_P70 = 'MC p70'
169
+ UNCERTAINTY_MC_P80 = 'MC p80'
170
+ UNCERTAINTY_MC_P90 = 'MC p90'
171
+ UNCERTAINTY_MC_P95 = 'MC p95'
172
+ UNCERTAINTY_MC_P100 = 'MC p100'
173
+ UNCERTAINTY_MC_HIST0 = 'MC hist0'
174
+ UNCERTAINTY_MC_HIST1 = 'MC hist1'
175
+ UNCERTAINTY_MC_HIST2 = 'MC hist2'
176
+ UNCERTAINTY_MC_HIST3 = 'MC hist3'
177
+ UNCERTAINTY_MC_HIST4 = 'MC hist4'
178
+ UNCERTAINTY_MC_HIST5 = 'MC hist5'
179
+ UNCERTAINTY_MC_HIST6 = 'MC hist6'
180
+ UNCERTAINTY_MC_HIST7 = 'MC hist7'
181
+ UNCERTAINTY_MC_HIST8 = 'MC hist8'
182
+ UNCERTAINTY_MC_HIST9 = 'MC hist9'
183
+ UNCERTAINTY_SHEET_PCOLS = [
184
+ UNCERTAINTY_MC_P0,
185
+ UNCERTAINTY_MC_P5,
186
+ UNCERTAINTY_MC_P10,
187
+ UNCERTAINTY_MC_P20,
188
+ UNCERTAINTY_MC_P30,
189
+ UNCERTAINTY_MC_P40,
190
+ UNCERTAINTY_MC_P50,
191
+ UNCERTAINTY_MC_P60,
192
+ UNCERTAINTY_MC_P70,
193
+ UNCERTAINTY_MC_P80,
194
+ UNCERTAINTY_MC_P90,
195
+ UNCERTAINTY_MC_P95,
196
+ UNCERTAINTY_MC_P100]
197
+ UNCERTAINTY_SHEET_HCOLS = [
198
+ UNCERTAINTY_MC_HIST0,
199
+ UNCERTAINTY_MC_HIST1,
200
+ UNCERTAINTY_MC_HIST2,
201
+ UNCERTAINTY_MC_HIST3,
202
+ UNCERTAINTY_MC_HIST4,
203
+ UNCERTAINTY_MC_HIST5,
204
+ UNCERTAINTY_MC_HIST6,
205
+ UNCERTAINTY_MC_HIST7,
206
+ UNCERTAINTY_MC_HIST8,
207
+ UNCERTAINTY_MC_HIST9]
208
+ UNCERTAINTY_SHEET_COLS = [
209
+ UNCERTAINTY_ORIGIN,
210
+ UNCERTAINTY_DESTINATION,
211
+ UNCERTAINTY_MC_MU_IN,
212
+ UNCERTAINTY_MC_STD_IN,
213
+ UNCERTAINTY_MC_MU,
214
+ UNCERTAINTY_MC_STD,
215
+ UNCERTAINTY_MC_MIN,
216
+ UNCERTAINTY_MC_MAX] + UNCERTAINTY_SHEET_PCOLS + UNCERTAINTY_SHEET_HCOLS
217
+
218
+ SIMULATIONS_SHEET = 'simulations'
219
+
220
+ CONVERSIONS_SHEET = 'conversions'
221
+ CONVERSIONS_LOCATION = 'location'
222
+ CONVERSIONS_PRODUCT = 'product'
223
+ CONVERSIONS_COMMENTARY = 'commentary'
224
+ CONVERSIONS_NATURAL_UNIT = 'natural unit'
225
+ CONVERSIONS_FACTOR = 'factor'
226
+ CONVERSIONS_FACTOR_INV = 'factor_inv'
227
+ CONVERSIONS_SHEET_COLS = [
228
+ CONVERSIONS_LOCATION, CONVERSIONS_PRODUCT, CONVERSIONS_NATURAL_UNIT,
229
+ CONVERSIONS_FACTOR, CONVERSIONS_FACTOR_INV, CONVERSIONS_COMMENTARY]
230
+
231
+ # Possible names for sheets of I/O Excel file --------------------------------------
232
+ # Language
233
+ LANG_FR = 0 # First value is French
234
+ LANG_EN = 1 # Second value is always English, etc.
235
+
236
+ # All following names (sheet & cols) are list of std name as [French, English]
237
+ # Does not apply for RE (RegEx references)
238
+ DICT_OF_SHEET_NAMES = {
239
+ TAG_SHEET: ['Etiquettes', 'Tags'],
240
+
241
+ NODES_SHEET: ['Noeuds', 'Nodes'],
242
+ PRODUCTS_SHEET: ['Produits', 'Products'],
243
+ SECTORS_SHEET: ['Secteurs', 'Sectors'],
244
+ EXCHANGES_SHEET: ['Echanges', 'Exchanges'],
245
+
246
+ FLUX_SHEET: ['Liste des flux', 'Flux list'],
247
+ TER_SHEET: ['Table emplois ressources', 'Supply-use table'],
248
+ IO_SHEET: ['Table entrées-sorties', 'Input-Output table'],
249
+ IO_DATA_SHEET: ['Table entrée sortie avec données', 'Input-Output table with datas'],
250
+
251
+ DATA_SHEET: ['Valeurs', 'Values'],
252
+ MIN_MAX_SHEET: ['Min Max', 'Min Max'],
253
+ CONSTRAINTS_SHEET: ['Contraintes', 'Constraints'],
254
+
255
+ RESULTS_SHEET: ['Résultats', 'Results'],
256
+ ANALYSIS_SHEET: ['Analyses des résultats', 'Results analysis'],
257
+ UNCERTAINTY_SHEET: ['Analyses d\'incertitudes', 'Uncertainty analysis'],
258
+ SIMULATIONS_SHEET: ['Simulations', 'Simulations'],
259
+
260
+ CONVERSIONS_SHEET: ['Conversions', 'Conversions'],
261
+
262
+ 'proxy': ['proxi', 'proxy'],
263
+ 'pflow': ['flow'],
264
+ 'psect': [],
265
+ 'geo': ['geo']
266
+ }
267
+
268
+ # Format RegEx for sheet name mathcing
269
+ DICT_OF_SHEET_NAMES__RE = {
270
+ TAG_SHEET: ['e?tiquettes?', 'tags?', TAG_SHEET],
271
+
272
+ NODES_SHEET: ['noeuds.*', 'nodes.*', NODES_SHEET],
273
+ PRODUCTS_SHEET: ['(dim )?produits.*', '(dim )?products?', 'dim_products', PRODUCTS_SHEET],
274
+ SECTORS_SHEET: ['(dim )?secteurs.*', '(dim )?sectors?', 'dim_sectors', SECTORS_SHEET],
275
+ EXCHANGES_SHEET: ['e?changes?( territoires?)?', 'exchanges?', EXCHANGES_SHEET],
276
+
277
+ FLUX_SHEET: ['liste des flux', 'flux list', FLUX_SHEET],
278
+ TER_SHEET: [
279
+ 'table emplois?[ \-]?ressources?', # noqa
280
+ 'supply[\- ]?use table', # noqa
281
+ 'structure( des flux)?',
282
+ 'ter.*',
283
+ 'flux.*',
284
+ TER_SHEET],
285
+ IO_SHEET: [
286
+ 'table entr[eé]?es?[ -]?sorties?',
287
+ 'input[_\- ]?output[ ]*(table)?', # noqa
288
+ IO_SHEET],
289
+ IO_DATA_SHEET: [
290
+ 'table entr[ée]?es?[ -]?sorties?( avec )?donnees?',
291
+ 'input[_\- ]?output table( with )?datas?', # noqa
292
+ IO_DATA_SHEET],
293
+
294
+ DATA_SHEET: [
295
+ 'valeurs?( de flux)?',
296
+ 'values?',
297
+ 'donnee?s?',
298
+ 'data',
299
+ 'donn',
300
+ DATA_SHEET],
301
+ MIN_MAX_SHEET: ['min[ _]max', MIN_MAX_SHEET],
302
+ CONSTRAINTS_SHEET: ['contraintes?', 'constraints?', CONSTRAINTS_SHEET],
303
+
304
+ RESULTS_SHEET: ['resultats?', 'results?', RESULTS_SHEET],
305
+ # ANALYSIS_SHEET: ['analyses?( des resultats?)?', '(results )?analysis', ANALYSIS_SHEET],
306
+ UNCERTAINTY_SHEET: ['analyses? d\'incertitudes?', 'uncertainty analysis', UNCERTAINTY_SHEET],
307
+ SIMULATIONS_SHEET: ['simulations?', SIMULATIONS_SHEET],
308
+
309
+ CONVERSIONS_SHEET: ['conversions?', 'convert', CONVERSIONS_SHEET],
310
+
311
+ 'proxy': ['prox[yi]'],
312
+ 'pflow': ['flow'],
313
+ 'psect': [],
314
+ 'geo': ['geo']
315
+ }
316
+
317
+ # Possible names for existing columns for each sheets of Excel file
318
+ # All following names are list of std name as [French, English]
319
+ # Does not apply for RE (RegEx references)
320
+ DICT_OF_COLS_NAMES = {
321
+ TAG_SHEET: {
322
+ TAG_NAME: ['Nom du groupe d\'étiquette', 'Tags group name'], # *
323
+ TAG_TYPE: ['Type d\'étiquette', 'Tags type'], # *
324
+ TAG_TAGS: ['Etiquettes', 'Tags'], # *
325
+ TAG_IS_PALETTE: ['Palette visible', 'Visible colormap'],
326
+ TAG_COLORMAP: ['Palette de couleur', 'Colormap'],
327
+ TAG_COLOR: ['Couleurs', 'Colors']
328
+ },
329
+ NODES_SHEET: {
330
+ NODES_LEVEL: ['Niveau d\'agrégation', 'Aggregation level'], # int
331
+ NODES_NODE: ['Noeuds', 'Nodes'], # *
332
+ NODES_MAT_BALANCE: ['Equilibre entrée-sortie', 'Input-output balance'], # int
333
+ NODES_SANKEY: ['Affichage sur le diagramme de Sankey', 'Sankey'],
334
+ NODES_COLOR: ['Couleur', 'Color'],
335
+ NODES_DEFINITIONS: ['Définitions', 'Definition']
336
+ },
337
+ PRODUCTS_SHEET: {
338
+ NODES_LEVEL: ['Niveau d\'agrégation', 'Aggregation level'], # int
339
+ NODES_NODE: ['Noeuds', 'Nodes', 'Produits', 'Products'], # *
340
+ NODES_MAT_BALANCE: ['Equilibre entrée-sortie', 'Input-output balance'], # int
341
+ NODES_SANKEY: ['Affichage sur le diagramme de Sankey', 'Sankey'],
342
+ NODES_COLOR: ['Couleur', 'Color'],
343
+ NODES_DEFINITIONS: ['Définitions', 'Definition']
344
+ },
345
+ SECTORS_SHEET: {
346
+ NODES_LEVEL: ['Niveau d\'agrégation', 'Aggregation level'], # int
347
+ NODES_NODE: ['Noeuds', 'Nodes', 'Secteurs', 'Sectors'], # *
348
+ NODES_MAT_BALANCE: ['Equilibre entrée-sortie', 'Input-output balance'], # int
349
+ NODES_SANKEY: ['Affichage sur le diagramme de Sankey', 'Sankey'],
350
+ NODES_COLOR: ['Couleur', 'Color'],
351
+ NODES_DEFINITIONS: ['Définitions', 'Definition']
352
+ },
353
+ EXCHANGES_SHEET: {
354
+ NODES_LEVEL: ['Niveau d\'agrégation', 'Aggregation level'], # * int
355
+ NODES_NODE: ['Noeuds', 'Nodes', 'Echanges', 'Exchanges'], # *
356
+ NODES_SANKEY: ['Affichage sur le diagramme de Sankey', 'Sankey'],
357
+ NODES_COLOR: ['Couleur', 'Color'],
358
+ NODES_DEFINITIONS: ['Définitions', 'Definition']
359
+ },
360
+ DATA_SHEET: {
361
+ DATA_ORIGIN: ['Origine', 'Origin'],
362
+ DATA_DESTINATION: ['Destination', 'Target'],
363
+ DATA_VALUE: ['Valeur', 'Value'],
364
+ DATA_QUANTITY: ['Quantité naturelle', 'Quantity'],
365
+ DATA_NATURAL_UNIT: ['Unité naturelle', 'Unit'],
366
+ DATA_FACTOR: ['Facteur de conversion', 'Factor'],
367
+ DATA_UNCERT: ['Incertitude relative', 'Relative Uncertainty'],
368
+ DATA_SOURCE: ['Source', 'Source'],
369
+ DATA_HYPOTHESIS: ['Hypothèse', 'Hypothesis']
370
+ },
371
+ MIN_MAX_SHEET: {
372
+ MIN_MAX_ORIGIN: ['Origine', 'Origin'], # *
373
+ MIN_MAX_DESTINATION: ['Destination', 'Target'], # *
374
+ MIN_MAX_MIN: ['Minimum', 'Minimum'], # float
375
+ MIN_MAX_MAX: ['Maximum', 'Maximum'], # float
376
+ MIN_MAX_MIN_QUANTITY: ['Minimum en quantité naturelle', 'Minimun in quantity'], # float
377
+ MIN_MAX_MAX_QUANTITY: ['Maximum en quantité naturelle', 'Maximum in quantity'], # float
378
+ MIN_MAX_NATURAL_UNIT: ['Unité naturelle', 'Unity'], # *
379
+ MIN_MAX_FACTOR: ['Facteur de conversion', 'Factor'], # float
380
+ MIN_MAX_SOURCE: ['Source', 'Source'], # *
381
+ MIN_MAX_HYPOTHESIS: ['Hypothèse', 'Hypothesis'] # *
382
+ },
383
+ CONSTRAINTS_SHEET: {
384
+ CONSTRAINT_ID: ['ID', 'ID'],
385
+ CONSTRAINT_ORIGIN: ['Origine', 'origin'],
386
+ CONSTRAINT_DESTINATION: ['Destination', 'Target'],
387
+ CONSTRAINT_EQ: ['Equation d\'égalité (eq = 0)', 'Equality equation (eq = 0)'],
388
+ CONSTRAINT_INEQ_INF: [
389
+ 'Equation d\'inégalité borne haute (ineq <= 0)',
390
+ 'Inequality equation, lower boundary (ineq <= 0)'],
391
+ CONSTRAINT_INEQ_SUP: [
392
+ 'Equation d\'inégalité borne basse (ineq >= 0)',
393
+ 'Inequality equation, upper boundary (ineq >= 0)'],
394
+ CONSTRAINT_SOURCE: ['Source', 'Source'],
395
+ CONSTRAINT_HYPOTHESIS: ['Hypothèses', 'Hypothesis'],
396
+ CONSTRAINT_TRADUCTION: ['Traduction', 'Translation']
397
+ },
398
+ RESULTS_SHEET: {
399
+ RESULTS_ORIGIN: ['Origine', 'Origin'], # *
400
+ RESULTS_DESTINATION: ['Destination', 'Target'], # *
401
+ RESULTS_VALUE: ['Valeur reconciliée', 'Reconciled value'], # *
402
+ RESULTS_FREE_MIN: ['Borne inférieure', 'Lower boundary'],
403
+ RESULTS_FREE_MAX: ['Borne supérieure', 'Upper boundary']
404
+ },
405
+ ANALYSIS_SHEET: {
406
+ RESULTS_ORIGIN: ['Origine', 'Origin'], # *
407
+ RESULTS_DESTINATION: ['Destination', 'Target'], # *
408
+ RESULTS_VALUE: ['Valeur reconciliée', 'Reconciled value'], # float
409
+ RESULTS_FREE_MIN: ['Borne inférieure', 'Lower boundary'], # float
410
+ RESULTS_FREE_MAX: ['Borne supérieure', 'Upper boundary'], # float
411
+ ANALYSIS_VALUE_IN: ['Valeur non-réconciliée', 'Unreconciled value'], # float
412
+ ANALYSIS_VALUE_MIN_IN: [
413
+ 'Borne inférieure non-réconciliée',
414
+ 'Unreconciled lower boundary'], # float
415
+ ANALYSIS_VALUE_MAX_IN: [
416
+ 'Borne supérieure non-réconciliée',
417
+ 'Unreconciled upper boundary'], # float
418
+ ANALYSIS_VALUE_IN_SIGMA: [
419
+ 'Incertitude absolue non-réconciliée',
420
+ 'Unreconciled absolute uncertainty'], # float
421
+ ANALYSIS_VALUE_IN_SIGMA_PRCT: [
422
+ 'Incertitude relative non-réconciliée',
423
+ 'Unreconciled relative uncertainty'], # float
424
+ ANALYSIS_NB_SIGMAS: [
425
+ 'Eloignement de la valeur réconciliée par rapport à la valeur non-réconciliée',
426
+ 'Distance of the reconciled value compared to the unreconciled value'], # float
427
+ ANALYSIS_AI: ['Ai', 'Ai'],
428
+ ANALYSIS_CLASSIF: ['Type de variable', 'Variable type'] # *
429
+ },
430
+ UNCERTAINTY_SHEET: {
431
+ RESULTS_ORIGIN: ['Origine', 'Origin'],
432
+ RESULTS_DESTINATION: ['Destination', 'Target']
433
+ },
434
+ CONVERSIONS_SHEET: {
435
+ CONVERSIONS_LOCATION: ['Unité locale', 'Local unit'],
436
+ CONVERSIONS_PRODUCT: ['Produits', 'Products'],
437
+ CONVERSIONS_NATURAL_UNIT: ['Unité naturelle', 'Natural unit'],
438
+ CONVERSIONS_FACTOR: [
439
+ 'Facteur de conversion (Unité locale / Unité naturelle)',
440
+ 'Conversion factor (Local unit / Natural unit)'],
441
+ CONVERSIONS_FACTOR_INV: [
442
+ 'Inverse facteur de conversion (Unité naturelle / Unité locale)',
443
+ 'Inversed conversion factor (Natural unit / Local unit)'],
444
+ CONVERSIONS_COMMENTARY: ['Commentaires', 'Commentaries']
445
+ }
446
+ }
447
+
448
+ # Regular expressions for possible names for existing columns for each sheets of I/O Excel file
449
+ DICT_OF_COLS_NAMES__RE = {
450
+ TAG_SHEET: {
451
+ TAG_NAME: ['(tag)?s?.*name', 'nom.*(etiquette)?s?', TAG_NAME], # *
452
+ TAG_TYPE: ['(tag)?s?.*type', 'type.*(etiquette)?s?', TAG_TYPE], # *
453
+ TAG_TAGS: ['tags?', 'etiquettes?', TAG_TAGS], # *
454
+ TAG_IS_PALETTE: ['palette', 'palette visible', TAG_IS_PALETTE],
455
+ TAG_COLORMAP: ['colormap', 'palette de couleur', TAG_COLORMAP],
456
+ TAG_COLOR: ['colors?', 'couleurs?', TAG_COLOR]
457
+ },
458
+ NODES_SHEET: {
459
+ NODES_LEVEL: [
460
+ 'niveaux?.*agg?regation',
461
+ 'agg?regg?ations?[ \-]*levels?', # noqa
462
+ 'niveaux?', 'levels?', 'hierarchie', NODES_LEVEL], # * int
463
+ NODES_NODE: [
464
+ 'noeuds?', 'nœuds?', 'liste des produits?', 'liste des secteurs?',
465
+ 'liste des echanges?', 'elements?', 'noms?', NODES_NODE], # *
466
+ NODES_MAT_BALANCE: [
467
+ 'equilibre entrees?-sorties?', 'input[\- ]?output balance', # noqa
468
+ 'equilibre matiere.*', 'bilan matieres?.*', 'contraintes? de conservation de la masse',
469
+ 'constraints?', 'mat_?balance', NODES_MAT_BALANCE], # int
470
+ NODES_SANKEY: ['affichage sur le diagramme de sankey', 'sankey[ ?]*', NODES_SANKEY],
471
+ NODES_COLOR: ['couleur', 'color', NODES_COLOR],
472
+ NODES_DEFINITIONS: ['definitions?', NODES_DEFINITIONS]
473
+ },
474
+ PRODUCTS_SHEET: {
475
+ NODES_LEVEL: [
476
+ 'niveaux?.*agg?regation',
477
+ 'agg?regg?ations?[ \-]*levels?', # noqa
478
+ 'niveaux?', 'levels?', 'hierarchie', NODES_LEVEL], # * int
479
+ NODES_NODE: [
480
+ 'produits?', 'products?', 'noeuds?', 'nœuds?',
481
+ 'liste des produits?', 'liste des secteurs?', 'liste des echanges?',
482
+ 'elements?', 'noms?', NODES_NODE], # *
483
+ NODES_MAT_BALANCE: [
484
+ 'equilibre entrees?-sorties?', 'input[\- ]?output balance', # noqa
485
+ 'equilibre matiere.*', 'bilan matieres?.*', 'contraintes? de conservation de la masse',
486
+ 'constraints?', 'mat_?balance', NODES_MAT_BALANCE], # int
487
+ NODES_SANKEY: ['affichage sur le diagramme de sankey', 'sankey[ ?]*', NODES_SANKEY],
488
+ NODES_COLOR: ['couleur', 'color', NODES_COLOR],
489
+ NODES_DEFINITIONS: ['definitions?', NODES_DEFINITIONS]
490
+ },
491
+ SECTORS_SHEET: {
492
+ NODES_LEVEL: [
493
+ 'niveaux?.*agg?regation',
494
+ 'agg?regg?ations?[ \-]*levels?', # noqa
495
+ 'niveaux?', 'levels?', 'hierarchie', NODES_LEVEL], # * int
496
+ NODES_NODE: [
497
+ 'secteurs?', 'sectors?', 'noeuds?', 'nœuds?',
498
+ 'liste des produits?', 'liste des secteurs?', 'liste des echanges?',
499
+ 'elements?', 'noms?', NODES_NODE], # *
500
+ NODES_MAT_BALANCE: [
501
+ 'equilibre entrees?-sorties?', 'input[\- ]?output balance', # noqa
502
+ 'equilibre matiere.*', 'bilan matieres?.*', 'contraintes? de conservation de la masse',
503
+ 'constraints?', 'mat_?balance', NODES_MAT_BALANCE], # int
504
+ NODES_SANKEY: ['affichage sur le diagramme de sankey', 'sankey[ ?]*', NODES_SANKEY],
505
+ NODES_COLOR: ['couleur', 'color', NODES_COLOR],
506
+ NODES_DEFINITIONS: ['definitions?', NODES_DEFINITIONS]
507
+ },
508
+ EXCHANGES_SHEET: {
509
+ NODES_LEVEL: [
510
+ 'niveaux?.*agg?regation',
511
+ 'agg?regg?ations?[ \-]*levels?', # noqa
512
+ 'niveaux?', 'levels?', 'hierarchie', NODES_LEVEL], # * int
513
+ NODES_NODE: [
514
+ 'echanges?', 'exchanges?', 'noeuds?', 'nœuds?',
515
+ 'liste des produits?', 'liste des secteurs?', 'liste des echanges?',
516
+ 'elements?', 'noms?', NODES_NODE], # *
517
+ NODES_SANKEY: ['affichage sur le diagramme de sankey', 'sankey[ ?]*', NODES_SANKEY],
518
+ NODES_COLOR: ['couleur', 'color', NODES_COLOR],
519
+ NODES_DEFINITIONS: ['definitions?', NODES_DEFINITIONS]
520
+ },
521
+ DATA_SHEET: {
522
+ DATA_ORIGIN: ['origine?', DATA_ORIGIN],
523
+ DATA_DESTINATION: ['destination', 'target', DATA_DESTINATION],
524
+ DATA_VALUE: ['valeur.*', 'value.*', DATA_VALUE],
525
+ DATA_QUANTITY: ['quantite naturelle', 'quantity', DATA_QUANTITY],
526
+ DATA_NATURAL_UNIT: ['unite naturelle', 'unit', DATA_NATURAL_UNIT],
527
+ DATA_FACTOR: ['facteur de conversion', 'factor', DATA_FACTOR],
528
+ DATA_UNCERT: ['incertitude( relative)?', '(relative )?uncertainty', DATA_UNCERT],
529
+ DATA_SOURCE: ['sources?', DATA_SOURCE],
530
+ DATA_HYPOTHESIS: ['hypotheses?', 'hypothesis', DATA_HYPOTHESIS]
531
+ },
532
+ MIN_MAX_SHEET: {
533
+ MIN_MAX_ORIGIN: ['origine?', MIN_MAX_ORIGIN],
534
+ MIN_MAX_DESTINATION: ['destination', 'target', MIN_MAX_DESTINATION],
535
+ MIN_MAX_MIN: ['minimum( en quantite? de re?fe?rence)?', MIN_MAX_MIN],
536
+ MIN_MAX_MAX: ['maximum( en quantite? de re?fe?rence)?', MIN_MAX_MAX],
537
+ MIN_MAX_MIN_QUANTITY: ['minimum en quantite naturelle', 'minimum in quantity', MIN_MAX_MIN_QUANTITY],
538
+ MIN_MAX_MAX_QUANTITY: ['maximum en quantite naturelle', 'maximum in quantity', MIN_MAX_MAX_QUANTITY],
539
+ MIN_MAX_NATURAL_UNIT: ['unite naturelle', 'unity', MIN_MAX_NATURAL_UNIT],
540
+ MIN_MAX_FACTOR: ['facteur de conversion', 'factor', MIN_MAX_FACTOR],
541
+ MIN_MAX_SOURCE: ['sources?', MIN_MAX_SOURCE],
542
+ MIN_MAX_HYPOTHESIS: ['hypotheses?', 'hypothesis', MIN_MAX_HYPOTHESIS]
543
+ },
544
+ CONSTRAINTS_SHEET: {
545
+ CONSTRAINT_ID: ['id', 'identifiant', CONSTRAINT_ID],
546
+ CONSTRAINT_ORIGIN: ['origine?', CONSTRAINT_ORIGIN],
547
+ CONSTRAINT_DESTINATION: ['destination', 'target', CONSTRAINT_DESTINATION],
548
+ CONSTRAINT_EQ: ['.*[(]?eq[ ]*=[ ]*0[)]?', CONSTRAINT_EQ],
549
+ CONSTRAINT_INEQ_INF: ['.*[(]?(in)?eq[ ]*<=[ ]*0[)]?', CONSTRAINT_INEQ_INF],
550
+ CONSTRAINT_INEQ_SUP: ['.*[(]?(in)?eq[ ]*>=[ ]*0[)]?', CONSTRAINT_INEQ_SUP],
551
+ CONSTRAINT_SOURCE: ['sources?', CONSTRAINT_SOURCE],
552
+ CONSTRAINT_HYPOTHESIS: ['hypotheses?', 'hypothesis', CONSTRAINT_HYPOTHESIS],
553
+ CONSTRAINT_TRADUCTION: ['traductions?', 'translation', CONSTRAINT_TRADUCTION]
554
+ },
555
+ RESULTS_SHEET: {
556
+ RESULTS_ORIGIN: ['origine?', RESULTS_ORIGIN],
557
+ RESULTS_DESTINATION: ['destination', 'target', RESULTS_DESTINATION],
558
+ RESULTS_VALUE: ['valeur reconciliee', 'reconcilied value', 'valeur de sortie du modele', RESULTS_VALUE],
559
+ RESULTS_FREE_MIN: ['borne inferieure( des variables libres)?', 'lower boundary', RESULTS_FREE_MIN],
560
+ RESULTS_FREE_MAX: ['borne superieure( des variables libres)?', 'upper boundary', RESULTS_FREE_MAX]
561
+ },
562
+ ANALYSIS_SHEET: {
563
+ RESULTS_ORIGIN: ['origine?', RESULTS_ORIGIN],
564
+ RESULTS_DESTINATION: ['destination', 'target', RESULTS_DESTINATION],
565
+ RESULTS_VALUE: [
566
+ 'valeur re?conciliee?',
567
+ 'reconciled value',
568
+ 'valeur de sortie du modele',
569
+ RESULTS_VALUE],
570
+ RESULTS_FREE_MIN: [
571
+ 'borne inferieure( des variables libres)?',
572
+ 'lower boundary', RESULTS_FREE_MIN],
573
+ RESULTS_FREE_MAX: [
574
+ 'borne superieure( des variables libres)?',
575
+ 'upper boundary',
576
+ RESULTS_FREE_MAX],
577
+ ANALYSIS_VALUE_IN: [
578
+ 'valeur non-re?conciliee?',
579
+ 'unreconciled value',
580
+ 'valeur d\'entree',
581
+ ANALYSIS_VALUE_IN],
582
+ ANALYSIS_VALUE_MIN_IN: [
583
+ 'borne infe?rieure non-re?conciliee?',
584
+ 'unreconciled lower boundary',
585
+ 'minimum d\'entree',
586
+ ANALYSIS_VALUE_MIN_IN],
587
+ ANALYSIS_VALUE_MAX_IN: [
588
+ 'borne supe?rieure non-re?conciliee?',
589
+ 'unreconciled upper boundary',
590
+ 'maximum d\'entree',
591
+ ANALYSIS_VALUE_MAX_IN],
592
+ ANALYSIS_VALUE_IN_SIGMA: [
593
+ 'incertitude absolue non-re?conciliee?',
594
+ 'unreconciled absolute uncertainty',
595
+ 'incertitude d\'entree',
596
+ ANALYSIS_VALUE_IN_SIGMA],
597
+ ANALYSIS_VALUE_IN_SIGMA_PRCT: [
598
+ 'incertitude relative non-re?conciliee?',
599
+ 'unreconciled relative uncertainty',
600
+ 'sigma in %',
601
+ ANALYSIS_VALUE_IN_SIGMA_PRCT],
602
+ ANALYSIS_NB_SIGMAS: [
603
+ 'eloignement de la valeur re?conciliee? par rapport a? la valeur non-re?conciliee?',
604
+ 'distance of the reconciled value compared to the unreconciled value',
605
+ 'ecart entree/sortie exprime en nombre d\'ecart-type',
606
+ ANALYSIS_NB_SIGMAS],
607
+ ANALYSIS_AI: ['ai', ANALYSIS_AI],
608
+ ANALYSIS_CLASSIF: ['type de variable', 'variable type', ANALYSIS_CLASSIF]
609
+ },
610
+ UNCERTAINTY_SHEET: {
611
+ RESULTS_ORIGIN: ['origine?', RESULTS_ORIGIN],
612
+ RESULTS_DESTINATION: ['destination', 'target', RESULTS_DESTINATION]
613
+ },
614
+ CONVERSIONS_SHEET: {
615
+ CONVERSIONS_LOCATION: [
616
+ 'unite? locale',
617
+ 'local unit',
618
+ 'locale?',
619
+ 'localites?',
620
+ 'locations?',
621
+ CONVERSIONS_LOCATION],
622
+ CONVERSIONS_PRODUCT: ['produits?', 'products?', CONVERSIONS_PRODUCT],
623
+ CONVERSIONS_NATURAL_UNIT: ['unite naturelle', 'natural unit', CONVERSIONS_NATURAL_UNIT],
624
+ CONVERSIONS_FACTOR: [
625
+ 'facteur de conversion.*',
626
+ 'conversion factor.*',
627
+ 'unite equivalente ?/ ?unite naturelle',
628
+ 'equivalent unit ?/ ?natural unit'],
629
+ CONVERSIONS_FACTOR_INV: [
630
+ 'inverse facteur de conversion.*',
631
+ 'inversed conversion factor.*',
632
+ 'unite naturelle ?/ ?unite equivalente',
633
+ 'natural unit ?/ ?equivalent unit'],
634
+ CONVERSIONS_COMMENTARY: ['commentaires?', 'commentarys?', CONVERSIONS_COMMENTARY]
635
+ }
636
+ }
637
+
638
+
639
+ # Helping comments which will be displayed for each columns of Output Excel file.
640
+ DICT_OF_COMMENTS = {
641
+ TAG_SHEET: {
642
+ TAG_NAME: ['Cette colonne permet de lister les différents noms de groupe d\'étiquettes\
643
+ présents pour présenter de façon différente les données sur les diagrammes de Sankey.'],
644
+ TAG_TYPE: ['Il existe trois types d\'étiquettes qui peuvent êter utilisées: \n\
645
+ Etiquette_dimension: Cette étiquette permet de rajouter des dimensions\
646
+ de temps ou d\'espace pour avoir plusieurs représentations (spatiales ou temporelles)\
647
+ de la filière.\n Pour donner un exemple, plusieurs années peuvent être renseignées dans\
648
+ le même fichier pour toutes les données, et ces données sur la même filière pourront\
649
+ être affichées indépendamment pour chaque année. \n Etiquette_noeud: Cette étiquette\
650
+ permet de rajouter une information sur des noeuds pour, par la suite, pouvoir les filtrer\
651
+ sur le diagramme de Sankey. Il pourra ainsi être choisi de n\'afficher que certaines\
652
+ sous-parties de la filière étudiée. \n Etiquette_flux: Cette étiquette permet de rajouter\
653
+ une information sur les flux pour pouvoir afficher des informations sur les flux et sur\
654
+ les données utilisées grâce à des codes couleurs différents. Un exemple serait le degré \
655
+ d\'incertitude de la donnée, ou encore les sources utilisées.'],
656
+ TAG_TAGS: ['Cette colonne rassemble toutes les étiquettes appartenant aux groupes\
657
+ d\'étiquette définis en colonne A. \n Il faut lister tous les noms d\'étiquettes\
658
+ en les séparant un double point. \n Exemple: nom1:nom2:nom3.'],
659
+ TAG_IS_PALETTE: ['Cette colonne permet de déterminer quelle palette de couleur\
660
+ (étant associée à un groupe d\'étiquette) sera pris en compte pour\
661
+ la représentation graphique sous forme de diagramme de Sankey. \n\
662
+ Pour ce faire, il faut placer un 1 sur la ligne du groupe d\'étiquette\
663
+ choisi comme référence.'],
664
+ TAG_COLORMAP: ['Palette de couleur'],
665
+ TAG_COLOR: ['Couleurs']
666
+ },
667
+ NODES_SHEET: {
668
+ NODES_LEVEL: ['Niveau', 'Level'],
669
+ NODES_NODE: ['Noeuds'],
670
+ NODES_MAT_BALANCE: ['Contraintes de conservation de la masse'],
671
+ NODES_SANKEY: ['Affichage sur le diagramme de Sankey'],
672
+ NODES_COLOR: ['Couleur'],
673
+ NODES_DEFINITIONS: ['Définitions']
674
+ },
675
+ PRODUCTS_SHEET: {
676
+ NODES_LEVEL: ['Le niveau d\'agrégation rend compte du détail d\'un produit. Il faut le lire\
677
+ comme étant, pour un niveau d’agrégation donné d\'un produit n, la somme de\
678
+ ses produits désagrégés au niveau n+1.'],
679
+ NODES_NODE: ['Liste des produits présents dans l\'analyse de flux matière. \n Ceux-ci doivent\
680
+ êtreprésentés dans l\'ordre logique d\'agrégation des produits et doivent donc être\
681
+ compatibles avec les niveaux d\'agrégation donnés sur la colonne de gauche.'],
682
+ NODES_MAT_BALANCE: ['Cette colonne permet d\'indiquer si la conservation de la masse doit être\
683
+ appliquée aux données concernant le produit considéré lors de la réconciliation.\
684
+ \n Si c\'est le cas, un 1 doit être renseigné sur la ligne du produit.'],
685
+ NODES_SANKEY: ['Affichage sur le diagramme de Sankey'],
686
+ NODES_COLOR: ['Couleur'],
687
+ NODES_DEFINITIONS: ['Définitions']
688
+ },
689
+ SECTORS_SHEET: {
690
+ NODES_LEVEL: ['Le niveau d\'agrégation rend compte du détail d\'un secteur.\
691
+ Il faut le lire comme étant, pour un niveau d\'agrégation donné d\'un\
692
+ secteur n, la somme de ses secteurs désagrégés au niveau n+1.'],
693
+ NODES_NODE: ['Liste des secteurs présents dans l\'analyse de flux matière.\
694
+ \n Ceux-ci doivent être conformes aux niveaux d\'agrégation donnés sur la colonne de gauche.'],
695
+ NODES_MAT_BALANCE: ['Cette colonne permet d\'indiquer si la conservation de\
696
+ la masse doit être appliquée aux données concernant le secteur lors de la\
697
+ réconciliation.\n Si c\'est le cas, un 1 doit être renseigné sur la ligne de ce secteur.'],
698
+ NODES_SANKEY: ['Affichage sur le diagramme de Sankey'],
699
+ NODES_COLOR: ['Couleur'],
700
+ NODES_DEFINITIONS: ['Définitions']
701
+ },
702
+ EXCHANGES_SHEET: {
703
+ NODES_LEVEL: ['Le niveau d\'agrégation rend compte du détail d\'un échange.\
704
+ Il faut le lire comme étant, pour un niveau d’agrégation donné d\'un\
705
+ échange n, la somme de ses échanges désagrégés au niveau n+1.'],
706
+ NODES_NODE: ['Liste des échanges présents dans l\'analyse de flux matière. \n\
707
+ Ceux-ci doivent être conformes aux niveaux d\'agrégation donnés sur la colonne de gauche.'],
708
+ NODES_SANKEY: ['Affichage sur le diagramme de Sankey'],
709
+ NODES_COLOR: ['Couleur'],
710
+ NODES_DEFINITIONS: ['Définitions']
711
+ },
712
+ DATA_SHEET: {
713
+ DATA_ORIGIN: ['Origine du flux.\n\nDonnée obligatoire pour réaliser l\'AFM.'],
714
+ DATA_DESTINATION: ['Destination du flux.\n\nDonnée obligatoire pour réaliser l\'AFM.'],
715
+ DATA_VALUE: ['Valeur du flux dans l\'unité de référence de l\'AFM.\n\nDonnée\
716
+ obligatoire pour réaliser l\'AFM.'],
717
+ DATA_QUANTITY: ['La quantité naturelle fait référence à la quantité exprimée\
718
+ dans l\'unité utilisée dans la source de la donnée.'],
719
+ DATA_NATURAL_UNIT: ['La quantité naturelle fait référence à la quantité exprimée\
720
+ dans l\'unité utilisée dans la source de la donnée.'],
721
+ DATA_FACTOR: ['Facteur de conversion'],
722
+ DATA_UNCERT: ['L\'incertitude porte sur les données. Elle est soit renseignée par\
723
+ la source et recopiée ici, soit renseignée de manière arbitraire par\
724
+ la personne faisant l\'AFM en fonction de la confiance dans les\
725
+ données présentées par la source, selon la méthodologie décrite\
726
+ dans la première feuille de cet Excel.'],
727
+ DATA_SOURCE: ['La source peut ici faire référence à une source de données externe\
728
+ au fichier Excel, ou à des données recopiées dans\
729
+ celui-ci dans les pages annexes à la fin de l\'excel.'],
730
+ DATA_HYPOTHESIS: ['La colonne hypothèse permet de renseinger les hypothèses prises\
731
+ pour obtenir la donnée en unité de référence.']
732
+ },
733
+ MIN_MAX_SHEET: {
734
+ MIN_MAX_ORIGIN: ['Origine du flux.\n\nDonnée obligatoire pour réaliser l\'AFM.'],
735
+ MIN_MAX_DESTINATION: ['Destination du flux.\n\nDonnée obligatoire pour réaliser l\'AFM.'],
736
+ MIN_MAX_MIN: ['Borne inférieure de la valeur possible du flux en unité de référence de l\'AFM. \n\
737
+ Donnée obligatoire pour réaliser l\'AFM.'],
738
+ MIN_MAX_MAX: ['Borne supérieur de la valeur possible du flux en unité de référence de l\'AFM. \n\
739
+ Donnée obligatoire pour réaliser l\'AFM.'],
740
+ MIN_MAX_MIN_QUANTITY: ['Borne inférieure de la valeur possible du flux en unité\
741
+ naturelle de la source de données.'],
742
+ MIN_MAX_MAX_QUANTITY: ['Borne supérieur de la valeur possible du flux en unité\
743
+ naturelle de la source de données.'],
744
+ MIN_MAX_NATURAL_UNIT: ['L\'unité naturelle fait référence à l\'unité utilisée dans la source de données.'],
745
+ MIN_MAX_FACTOR: ['Le facteur de conversion (Fc) est le facteur permettant de passer de l\'unité\
746
+ naturelle (Un) à l\'unité de référence (Ur) grâce à l\'équation: \n Ur = Fc * Un'],
747
+ MIN_MAX_SOURCE: ['La source peut ici faire référence à une source de données externe au fichier\
748
+ Excel, ou à des données recopiées dans celui-ci dans les pages annexes à la fin de l\'excel.'],
749
+ MIN_MAX_HYPOTHESIS: ['La colonne hypothèse permet de renseinger les hypothèses prises pour obtenir\
750
+ la donnée en unité de référence.']
751
+ },
752
+ CONSTRAINTS_SHEET: {
753
+ CONSTRAINT_ID: ['L\'identifiant permet de lier les flux appartenant à la même relation contrainte.'],
754
+ CONSTRAINT_ORIGIN: ['Origine du flux. \n Donnée obligatoire pour réaliser l\'AFM'],
755
+ CONSTRAINT_DESTINATION: ['Destination du flux. \n Donnée obligatoire pour réaliser l\'AFM'],
756
+ CONSTRAINT_EQ: ['Cette colonne permet d\'insérer une contrainte d\'égalité sur les flux ayant le\
757
+ même identifiant. \n Pour donner un exemple, si il y a deux flux de valeur X et Y étant\
758
+ lié par une contrainte a*X = b*Y, eq = 0 doit se lire comme étant: \n a*X - b*Y = 0 \n\
759
+ Il faut donc renseigner a pour le flux de valeur X et -b pour le flux de valeur Y dans la\
760
+ colonne D.\n Donnée obligatoire pour réaliser l\'AFM si la contrainte est\
761
+ une contrainte d\'égalité.'],
762
+ CONSTRAINT_INEQ_INF: ['Cette colonne permet d\'insérer une contrainte d\'inégalité sur les flux \
763
+ ayant le même identifiant. \n Pour donner un exemple, si il y a deux flux \
764
+ de valeur X et Y étant lié par une contrainte a*X <= b*Y, eq <= 0 doit se\
765
+ lire comme étant: \n a*X - b*Y <= 0 \n Il faut donc renseigner a pour le flux\
766
+ de valeur X et -b pour le flux de valeur Y dans la colonne F. \n\
767
+ Donnée obligatoire pour réaliser l\'AFM si la contrainte est une\
768
+ contrainte d\'inégalité haute.'],
769
+ CONSTRAINT_INEQ_SUP: ['Cette colonne permet d\'insérer une contrainte d\'inégalité sur les flux \
770
+ ayant le même identifiant. \n Pour donner un exemple, si il y a deux flux \
771
+ de valeur X et Y étant lié par une contrainte a*X >= b*Y, eq >= 0 doit se \
772
+ lire comme étant: \n a*X - b*Y >= 0 \n Il faut donc renseigner a pour le flux\
773
+ de valeur X et -b pour le flux de valeur Y dans la colonne E. \n Donnée obligatoire\
774
+ pour réaliser l\'AFM si la contrainte est une contrainte d\'inégalité basse.'],
775
+ CONSTRAINT_TRADUCTION: ['Traduction'],
776
+ CONSTRAINT_SOURCE: ['La source peut ici faire référence à une source de données externe au fichier \
777
+ Excel, ou à des données recopiées dans celui-ci dans les pages annexes\
778
+ à la fin de l\'excel.'],
779
+ CONSTRAINT_HYPOTHESIS: ['La colonne hypothèse permet de renseinger les hypothèses prises pour obtenir \
780
+ la donnée en unité de référence.']
781
+ },
782
+ RESULTS_SHEET: {
783
+ RESULTS_ORIGIN: ['Origine'],
784
+ RESULTS_DESTINATION: ['Destination'],
785
+ RESULTS_VALUE: ['Valeur de sortie du modèle'],
786
+ RESULTS_FREE_MIN: ['Borne inférieure des variables libres'],
787
+ RESULTS_FREE_MAX: ['Borne supérieure des variables libres']
788
+ },
789
+ ANALYSIS_SHEET: {
790
+ RESULTS_ORIGIN: ['Origine'],
791
+ RESULTS_DESTINATION: ['Destination'],
792
+ RESULTS_VALUE: ['Valeur de sortie du modèle'],
793
+ RESULTS_FREE_MIN: ['Borne inférieure des variables libres'],
794
+ RESULTS_FREE_MAX: ['Borne supérieure des variables libres'],
795
+ ANALYSIS_VALUE_IN: ['Valeur d\'entrée'],
796
+ ANALYSIS_VALUE_MIN_IN: ['Minimum d\'entrée'],
797
+ ANALYSIS_VALUE_MAX_IN: ['Maximum d\'entrée'],
798
+ ANALYSIS_VALUE_IN_SIGMA: ['Incertitude d\'entrée'],
799
+ ANALYSIS_NB_SIGMAS: ['Ecart entrée/sortie exprimé en nombre d\'écart-type'],
800
+ ANALYSIS_CLASSIF: ['Type de variable']
801
+ },
802
+ CONVERSIONS_SHEET: {
803
+ CONVERSIONS_LOCATION: ['Locale'],
804
+ CONVERSIONS_PRODUCT: ['Liste des produits sur lesquelles s\'applique les conversions d`unité'],
805
+ CONVERSIONS_COMMENTARY: ['Commentaire éventuel sur le noeud et sa conversion'],
806
+ CONVERSIONS_NATURAL_UNIT: ['Unité naturelle pour les produits listés'],
807
+ CONVERSIONS_FACTOR: ['Facteur de conversion depuis l\'unité naturelle vers l\'unité équivalente au diagramme'],
808
+ CONVERSIONS_FACTOR_INV: [
809
+ 'Facteur de conversion depuis l\'unité equivalente vers l\'unité naturelle au diagramme'],
810
+ }
811
+ }