AN_RB_PLI3.a5.ipynb 19.6 KB
Newer Older
1
2
3
4
{
 "cells": [
  {
   "cell_type": "markdown",
5
6
7
   "metadata": {
    "deletable": false
   },
8
9
   "source": [
    "<h1><center>Analysis of a PLI3.a5 HWC in an RB Circuit</center></h1>\n",
10
    "<img src=\"https://gitlab.cern.ch/LHCData/lhc-sm-hwc/raw/master/figures/rb/RB.png\" width=75%>\n",
11
12
13
    "\n",
    "PLI3.A2 is a simple current cycle at I_INTERM_2 during TIME_INTERM_2, while PLI3.A5 is a current cycle with 2 current levels (I_SM, I_INTERM_2) during TIME_INTERM_2 each. PLI3.A5 can be performed with calorimetric measurement (original purpose). In case of calorimetric measurement, the cryogenic cooling must be stable and maintained constant during the whole cycle. The aim of this test is to check the performance of the current leads and also the splices resistance, and, in case of calorimetric measurements, to detect abnormal heating in the magnets environment.\n",
    "\n",
14
    "<img src=\"https://gitlab.cern.ch/LHCData/lhc-sm-hwc/raw/master/figures/rb/PLI3_current.png\" width=50%>\n",
15
16
17
18
19
    "\n",
    "The required analysis and signatures are listed below.\n",
    "\n",
    "|Responsible|Type of analysis|Criterion|\n",
    "|-----------|----------------|---------|\n",
20
21
22
    "|-|Automatic analysis on earth current and error current|I_EARTH_PLI2_S1 < I_EARTH_MAX and I_ERR_PLI2_S1 < I_ERR_MAX|\n",
    "|MP3|Splice signals|From board A and board B separately R_bus_max <3 nOhm. Individual R_splice_max<0.5nOhm R_mag<50 nOhm|\n",
    "|MP3|Current lead|46 < TT891A < 54K; Abs(U_RES)< 40mV; and no drift Abs(U_HTS) < 0.5mV|\n",
23
    "\n",
24
    "source: Powering Procedure and Acceptance Criteria for the 13 kA Dipole Circuits, MP3 Procedure, <a href=\"https://edms.cern.ch/document/874713\">https://edms.cern.ch/document/874713</a>"
25
26
27
28
   ]
  },
  {
   "cell_type": "markdown",
29
30
31
   "metadata": {
    "deletable": false
   },
32
33
   "source": [
    "# Analysis Assumptions\n",
34
35
    "- We consider standard analysis scenarios, i.e., all signals can be queried. If a signal is missing, an analysis can raise a warning and continue or an error and abort the analysis.\n",
    "- It is recommended to execute each cell one after another. However, since the signals are queried prior to analysis, any order of execution is allowed. In case an analysis cell is aborted, the following ones may not be executed (e.g. I\\_MEAS not present). \n",
36
37
    "\n",
    "# Plot Convention\n",
38
39
    "- Scales are labeled with signal name followed by a comma and a unit in square brackets, e.g., I_MEAS, [A].\n",
    "- If a reference signal is present, it is represented with a dashed line.\n",
40
    "- If the main current is present, its axis is on the left. Remaining signals are attached to the axis on the right. The legend of these signals is located on the lower left and upper right, respectively.\n",
41
42
43
    "- The grid comes from the left axis.\n",
    "- The title contains timestamp, circuit name, and signal name allowing to re-access the signal.\n",
    "- The plots assigned to the left scale have colors: blue (C0) and orange (C1). Plots presented on the right have colors red (C2) and green (C3).\n",
44
    "- Each plot has an individual time-synchronization mentioned explicitly in the description.\n",
45
    "- If an axis has a single signal, then the color of the label matches the signal's color. Otherwise, the label color is black."
46
47
48
49
   ]
  },
  {
   "cell_type": "markdown",
50
51
52
   "metadata": {
    "deletable": false
   },
53
   "source": [
54
    "# 0. Initialise Working Environment"
55
56
57
58
   ]
  },
  {
   "cell_type": "code",
59
   "execution_count": null,
60
   "metadata": {
61
    "deletable": false,
62
63
    "scrolled": false
   },
64
   "outputs": [],
65
   "source": [
66
    "# External libraries\n",
67
68
    "print('Loading (1/11)'); import sys\n",
    "print('Loading (2/11)'); from IPython.display import display, Javascript, clear_output\n",
69
70
    "\n",
    "# Internal libraries\n",
71
72
73
74
75
76
77
78
79
    "print('Loading (3/11)'); import lhcsmapi\n",
    "print('Loading (4/11)'); from lhcsmapi.Time import Time\n",
    "print('Loading (5/11)'); from lhcsmapi.Timer import Timer\n",
    "print('Loading (6/11)'); from lhcsmapi.analysis.RbCircuitQuery import RbCircuitQuery\n",
    "print('Loading (7/11)'); from lhcsmapi.analysis.RbCircuitAnalysis import RbCircuitAnalysis\n",
    "print('Loading (8/11)'); from lhcsmapi.analysis.report_template import apply_report_template\n",
    "print('Loading (9/11)'); from lhcsmapi.gui.hwc.HwcSearchModuleMediator import HwcSearchModuleMediator\n",
    "print('Loading (10/11)'); from lhcsmapi.pyedsl.PlotBuilder import create_hwc_plot_title_with_circuit_name\n",
    "print('Loading (11/11)'); from lhcsmapi.analysis.expert_input import get_expert_decision\n",
80
81
82
    "\n",
    "clear_output()\n",
    "lhcsmapi.get_lhcsmapi_version()\n",
83
84
    "lhcsmapi.get_lhcsmhwc_version('../__init__.py')\n",
    "print('Analysis performed by %s' % HwcSearchModuleMediator.get_user())"
85
86
87
88
   ]
  },
  {
   "cell_type": "markdown",
89
90
91
   "metadata": {
    "deletable": false
   },
92
   "source": [
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
    "# 1. User Input\n",
    "1. Copy code from AccTesting and paste into an empty cell below\n",
    "<img src=\"https://gitlab.cern.ch/LHCData/lhc-sm-hwc/-/raw/master/figures/swan-manual-acctesting-integration.png\">\n",
    "\n",
    "    - If you only want to test the notebook only for the copy&paste feature (without opening the AccTesting), please copy and execute the code below\n",
    "    ```\n",
    "    hwc_test = 'PLI3.a5'\n",
    "    circuit_name = 'RB.A12'\n",
    "    campaign = 'HWC_2017'\n",
    "    t_start = '2017-04-22 08:57:30.399'\n",
    "    t_end = '2017-04-22 11:32:09.824'\n",
    "    ```\n",
    "\n",
    "2. To analyze a historical test with a browser GUI, copy and execute the following code in the cell below\n",
    "```\n",
    "circuit_type = 'RB'\n",
    "hwc_test = 'PLI3.a5'\n",
    "hwcb = HwcSearchModuleMediator(circuit_type=circuit_type, hwc_test=hwc_test, hwc_summary_path='/eos/project/l/lhcsm/hwc/HWC_Summary.csv')\n",
    "```\n",
    "\n",
    "    - After opening the browser GUI, choose a circuit name in order to display HWC test with, campaign name as well as start and end time"
114
115
116
117
   ]
  },
  {
   "cell_type": "code",
118
   "execution_count": null,
119
   "metadata": {
120
    "deletable": false,
Michal Maciejewski's avatar
Michal Maciejewski committed
121
    "scrolled": false
122
   },
123
   "outputs": [],
124
   "source": []
125
126
127
  },
  {
   "cell_type": "markdown",
128
129
130
   "metadata": {
    "deletable": false
   },
131
132
133
134
135
136
   "source": [
    "# 2. Query All Signals Prior to Analysis"
   ]
  },
  {
   "cell_type": "code",
137
   "execution_count": null,
138
   "metadata": {
139
    "deleteable": false,
140
    "scrolled": true,
141
142
143
144
    "tags": [
     "skip_output"
    ]
   },
145
   "outputs": [],
146
   "source": [
147
148
149
150
151
152
153
154
155
156
157
    "circuit_type = 'RB'\n",
    "if 'hwcb' in locals():\n",
    "    circuit_name = hwcb.get_circuit_name()\n",
    "    t_start = Time.to_unix_timestamp(hwcb.get_start_time())\n",
    "    t_end = Time.to_unix_timestamp(hwcb.get_end_time())\n",
    "    is_automatic = hwcb.is_automatic_mode()\n",
    "else:\n",
    "    t_start = Time.to_unix_timestamp(t_start)\n",
    "    t_end = Time.to_unix_timestamp(t_end)\n",
    "    is_automatic = False\n",
    "\n",
Michal Maciejewski's avatar
Michal Maciejewski committed
158
    "rb_query = RbCircuitQuery(circuit_type, circuit_name, max_executions=6)\n",
159
    "rb_analysis = RbCircuitAnalysis(circuit_type, None, is_automatic=is_automatic)\n",
160
161
    "\n",
    "with Timer():\n",
162
    "    # PC\n",
Michal Maciejewski's avatar
Michal Maciejewski committed
163
    "    i_meas_nxcals_df = rb_query.query_signal_nxcals(t_start, t_end, t0=t_start, system='PC', signal_names='I_MEAS', spark=spark)[0]\n",
164
    "    i_meas_raw_nxcals_df = rb_query.query_raw_signal_nxcals(t_start, t_end, system='PC', signal_names='I_MEAS', spark=spark)[0]\n",
Michal Maciejewski's avatar
Michal Maciejewski committed
165
    "    plateau_start, plateau_end = rb_analysis.find_plateau_start_and_end(i_meas_raw_nxcals_df, i_meas_threshold=0, min_duration_in_sec=360, time_shift_in_sec=(240, 60))\n",
166
167
    "\n",
    "    # BUSBAR\n",
168
    "    u_res_feature_df, i_meas_feature_df = rb_query.get_busbar_resistances(Time.to_unix_timestamp(t_start), Time.to_unix_timestamp(t_end), plateau_start, plateau_end, signal_name='U_RES', spark=spark)\n",
169
    "    res_busbar_row_df = rb_analysis.calculate_resistance(i_meas_feature_df, u_res_feature_df, 'U_RES', Time.to_unix_timestamp(t_start), circuit_name)\n",
170
    "    res_busbar_df = rb_analysis.convert_to_col(res_busbar_row_df, signal_name='U_RES')\n",
171
    "    \n",
172
    "    # MAGNET\n",
173
    "    u_mag_feature_df, i_meas_feature_df = rb_query.get_busbar_resistances(Time.to_unix_timestamp(t_start), Time.to_unix_timestamp(t_end), plateau_start, plateau_end, signal_name='U_MAG', spark=spark)\n",
174
    "    res_magnet_row_df = rb_analysis.calculate_resistance(i_meas_feature_df, u_mag_feature_df, 'U_MAG', Time.to_unix_timestamp(t_start), circuit_name)\n",
175
    "    res_magnet_df = rb_analysis.convert_to_col(res_magnet_row_df, signal_name='U_MAG')\n",
176
    "    \n",
177
    "    # LEADS\n",
Michal Maciejewski's avatar
Michal Maciejewski committed
178
179
    "    u_res_nxcals_dfs = rb_query.query_signal_nxcals(t_start, t_end, t0=t_start, system=['LEADS_EVEN', 'LEADS_ODD'], signal_names='U_RES', spark=spark)\n",
    "    u_hts_nxcals_dfs = rb_query.query_signal_nxcals(t_start, t_end, t0=t_start, system=['LEADS_EVEN', 'LEADS_ODD'], signal_names='U_HTS', spark=spark)\n",
180
    "\n",
181
182
183
    "    tt891a_nxcals_dfs = rb_query.query_dfb_signal_nxcals(t_start, t_end, system=['LEADS_EVEN_WINCCOA', 'LEADS_ODD_WINCCOA'], signal_names='TT891A', spark=spark)\n",
    "    tt893_nxcals_dfs = rb_query.query_dfb_signal_nxcals(t_start, t_end, system=['LEADS_EVEN_WINCCOA', 'LEADS_ODD_WINCCOA'], signal_names='TT893', spark=spark)\n",
    "    cv891_nxcals_dfs = rb_query.query_dfb_signal_nxcals(t_start, t_end, system=['LEADS_EVEN_WINCCOA', 'LEADS_ODD_WINCCOA'], signal_names='CV891', spark=spark)\n"
184
185
186
187
   ]
  },
  {
   "cell_type": "markdown",
188
189
190
   "metadata": {
    "deletable": false
   },
191
192
193
194
195
   "source": [
    "# 3. Power Converter\n",
    "## 3.1. Plot of the Power Converter Main Current\n",
    "\n",
    "*ANALYSIS*:\n",
196
    "\n",
197
198
    "- Calculation of the duration of current plateaus\n",
    "\n",
199
200
    "*GRAPHS*:\n",
    "\n",
201
202
    "- t = 0 s corresponds to the start of the test\n",
    "- Orange box(es) represent period(s) of time with constant current used for calculation of busbar resistance and DFB thresholds"
203
204
205
206
   ]
  },
  {
   "cell_type": "code",
207
   "execution_count": null,
208
   "metadata": {
209
    "deletable": false,
210
211
    "scrolled": false
   },
212
   "outputs": [],
213
   "source": [
214
215
216
217
218
219
    "import matplotlib as mpl\n",
    "mpl.rcParams['savefig.dpi'] = 80\n",
    "mpl.rcParams['figure.dpi'] = 80\n",
    "%matplotlib notebook\n",
    "title = '%s, %s: %s-%s' % (circuit_name, hwc_test, Time.to_string(t_start).split('.')[0], Time.to_string(t_end).split('.')[0])\n",
    "rb_analysis.plot_i_meas_with_current_plateau(i_meas_nxcals_df, t0=i_meas_raw_nxcals_df.index[0], plateau_start=plateau_start, plateau_end=plateau_end, title=title)"
220
221
222
223
   ]
  },
  {
   "cell_type": "markdown",
224
225
226
   "metadata": {
    "deletable": false
   },
227
228
229
230
231
   "source": [
    "# 4. Busbar\n",
    "## 4.1. Busbar Resistance\n",
    "\n",
    "*ANALYSIS*:\n",
232
    "\n",
Michal Maciejewski's avatar
Michal Maciejewski committed
233
    "- Calculation of the busbar resistance as the slope of a linear fit of U,I curve obtained from the corresponding mean values of the voltage and current\n",
234
    "\n",
235
236
237
238
239
240
    "*CRITERIA*:\n",
    "\n",
    "- Check if the busbar resistance is below 3 nOhm\n",
    "\n",
    "*GRAPHS*:\n",
    "\n",
241
    "- The busbar resistance, R\n",
242
    "- The green box denotes the validity region of the busbar resostance (0, 3] nOhm"
243
244
245
246
   ]
  },
  {
   "cell_type": "code",
247
   "execution_count": null,
248
249
250
   "metadata": {
    "deletable": false
   },
251
   "outputs": [],
252
   "source": [
253
    "res_busbar_outliers_df = rb_analysis.analyze_busbar_magnet_resistance(res_busbar_df, signal_name='R_RES', value_max=3e-9)"
254
255
256
257
   ]
  },
  {
   "cell_type": "code",
258
   "execution_count": null,
259
   "metadata": {
260
    "deletable": false
261
262
263
   },
   "outputs": [],
   "source": [
264
    "RbCircuitQuery.query_and_plot_outlier_voltage(res_busbar_outliers_df, t_start, t_end, i_meas_raw_nxcals_df.index[0], plateau_start, plateau_end, spark=spark)"
265
266
   ]
  },
267
268
  {
   "cell_type": "markdown",
269
270
271
   "metadata": {
    "deletable": false
   },
272
273
274
275
   "source": [
    "## 4.2. Magnet Resistance\n",
    "\n",
    "*ANALYSIS*:\n",
276
    "\n",
277
    "- Calculation of the magnet resistance as the slope of a linear fit of U,I curve obtained from the corresponding mean alues of the voltage and current\n",
278
279
    "\n",
    "*CRITERIA*\n",
280
    "\n",
281
282
283
284
285
    "- Check if the resistance is below 50 nOhm\n",
    "\n",
    "*GRAPHS*:\n",
    "\n",
    "- The magnet resistance, R\n",
286
    "- The green box denotes the validity region of the magnet resistance (0, 50] nOhm\n"
287
288
289
290
   ]
  },
  {
   "cell_type": "code",
291
   "execution_count": null,
292
293
294
   "metadata": {
    "deletable": false
   },
295
   "outputs": [],
296
   "source": [
297
    "res_magnet_outliers_df = rb_analysis.analyze_busbar_magnet_resistance(res_magnet_df, signal_name='R_MAG', value_max=50e-9)"
298
299
300
301
   ]
  },
  {
   "cell_type": "code",
302
   "execution_count": null,
303
304
305
   "metadata": {
    "deletable": false
   },
306
307
   "outputs": [],
   "source": [
308
    "RbCircuitQuery.query_and_plot_outlier_voltage(res_magnet_outliers_df.reset_index(), t_start, t_end, i_meas_raw_nxcals_df.index[0], plateau_start, plateau_end, spark=spark)"
309
310
   ]
  },
311
312
  {
   "cell_type": "markdown",
313
314
315
   "metadata": {
    "deletable": false
   },
316
   "source": [
317
318
    "# 5. DFB\n",
    "## 5.1. DFB Voltage - U_RES\n",
319
    "\n",
320
321
    "*CRITERIA*:\n",
    "- Check if, at constant current, U_RES is constant (no drift < 2mV/h)\n",
322
    "\n",
323
    "*GRAPHS*:\n",
324
    "- t = 0 s corresponds to the start time of the test\n"
325
326
327
328
   ]
  },
  {
   "cell_type": "code",
329
   "execution_count": null,
330
   "metadata": {
331
    "deletable": false
332
   },
333
   "outputs": [],
334
   "source": [
335
    "RbCircuitAnalysis.assert_u_res_min_max_slope(u_res_nxcals_dfs, plateau_start, plateau_end, Time.to_unix_timestamp(t_start), slope_range=(-2, 2))"
336
337
338
339
   ]
  },
  {
   "cell_type": "markdown",
340
341
342
   "metadata": {
    "deletable": false
   },
343
   "source": [
344
    "## 5.2. DFB Voltage - U_HTS\n",
345
    "\n",
346
    "*CRITERIA*:  \n",
347
    "- Check if the voltage is below 50% of the threshold -> Abs(U_HTS) < 0.5 mV\n",
348
    "\n",
349
    "*GRAPHS*:\n",
350
    "- t = 0 s corresponds to the start time of the test"
351
352
353
354
   ]
  },
  {
   "cell_type": "code",
355
   "execution_count": null,
356
   "metadata": {
357
    "deletable": false,
358
359
    "scrolled": false
   },
360
   "outputs": [],
361
   "source": [
362
    "RbCircuitAnalysis.assert_u_hts_min_max_slope(u_hts_nxcals_dfs, plateau_start, plateau_end, Time.to_unix_timestamp(t_start), slope_range=(-0.5, 0.5))"
363
364
365
366
   ]
  },
  {
   "cell_type": "markdown",
367
368
369
   "metadata": {
    "deletable": false
   },
370
   "source": [
371
    "## 5.3. DFB Temperature - TT893.TEMPERATURECALC\n",
372
    "\n",
373
374
375
376
377
    "*CRITERIA*:\n",
    "\n",
    "- Check if the temperature is over the dew point, but not overheated -> 280 K < TT893 < 320 K, even without current\n",
    "\n",
    "*GRAPHS*:\n",
378
379
380
    "\n",
    "- Temperature at the top of the current lead on the right axis, TT893.TEMPERATURECALC\n",
    "- Green box denotes the temperature validity region [280, 320] K of the temperature at the top of the current lead\n",
381
    "- t = 0 s corresponds to the start time of the test"
382
383
384
385
   ]
  },
  {
   "cell_type": "code",
386
   "execution_count": null,
387
   "metadata": {
388
    "deletable": false,
389
390
    "scrolled": false
   },
391
   "outputs": [],
392
   "source": [
393
    "RbCircuitAnalysis.assert_tt893_min_max_value(tt893_nxcals_dfs, value_range=(280, 320))"
394
395
396
397
   ]
  },
  {
   "cell_type": "markdown",
398
399
400
   "metadata": {
    "deletable": false
   },
401
   "source": [
402
    "## 5.4. DFB Temperature - TT891A.TEMPERATURECALC\n",
403
    "\n",
404
405
406
407
408
    "*CRITERIA*:\n",
    "\n",
    "- Check if the temperature is regulated around 50 K -> 46 K < TT891A < 54 K, even without current\n",
    "\n",
    "*GRAPHS*:\n",
409
410
411
412
    "\n",
    "For odd and even leads\n",
    "- Main power converter current, I_MEAS\n",
    "- Temperature between the HTS and resistive part of the current lead on the right axis, TT891A.TEMPERATURECALC\n",
413
    "- t = 0 s corresponds to the start time of the test\n"
414
415
416
417
   ]
  },
  {
   "cell_type": "code",
418
   "execution_count": null,
419
   "metadata": {
420
    "deletable": false,
421
422
    "scrolled": false
   },
423
   "outputs": [],
424
   "source": [
425
    "RbCircuitAnalysis.assert_tt891a_min_max_value(tt891a_nxcals_dfs, value_range=(46, 54))"
426
427
428
429
   ]
  },
  {
   "cell_type": "markdown",
430
431
432
   "metadata": {
    "deletable": false
   },
433
   "source": [
434
    "## 5.5. DFB Valve Regulation - CV891.POSST\n",
435
    "\n",
436
437
438
439
440
441
    "*CRITERIA*:\n",
    "\n",
    "- Check if the valve is opened (>2%), but not fully (<50%)\n",
    "- Check if the valve variation (defined as difference between the maximum and minimum value) does not exceed 8% at constant current (the ramp of the current is excluded this criterion)\n",
    "\n",
    "*GRAPHS*:\n",
442
443
444
445
    "\n",
    "- Main power converter current, I_MEAS\n",
    "- Valve for regulation of TT891A, CV891.POSST\n",
    "- t = 0 s corresponds to the start time of the test\n",
446
    "- Green box denotes the valve opening validity region [2, 50] % of the TT891A temperature regulation"
447
448
449
450
   ]
  },
  {
   "cell_type": "code",
451
   "execution_count": null,
452
   "metadata": {
453
    "deletable": false,
454
455
    "scrolled": false
   },
456
   "outputs": [],
457
   "source": [
458
    "RbCircuitAnalysis.assert_cv891_min_max_value(cv891_nxcals_dfs, value_range=(2, 50))"
459
460
461
462
   ]
  },
  {
   "cell_type": "code",
463
   "execution_count": null,
464
   "metadata": {
465
    "deletable": false
466
   },
467
   "outputs": [],
468
   "source": [
469
    "RbCircuitAnalysis.assert_cv891_min_max_variation(cv891_nxcals_dfs, 8, plateau_start, plateau_end, Time.to_unix_timestamp(t_start))"
470
471
472
473
   ]
  },
  {
   "cell_type": "markdown",
474
475
476
   "metadata": {
    "deletable": false
   },
477
   "source": [
478
    "# 6. Signature Decision"
479
480
481
482
   ]
  },
  {
   "cell_type": "code",
483
   "execution_count": null,
484
485
486
   "metadata": {
    "deletable": false
   },
487
488
489
490
491
492
493
   "outputs": [],
   "source": [
    "signature = get_expert_decision('Expert Signature Decision: ', ['PASSED', 'FAILED'])"
   ]
  },
  {
   "cell_type": "markdown",
494
495
496
   "metadata": {
    "deletable": false
   },
497
498
499
500
501
502
503
   "source": [
    "# 7. Final Report"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
504
505
506
   "metadata": {
    "deletable": false
   },
507
   "outputs": [],
508
   "source": [
509
    "analysis_start_time = Time.get_analysis_start_time()\n",
510
    "apply_report_template()\n",
511
512
513
    "file_name_html = '{}_{}-{}-{}_{}.html'.format(circuit_name, hwc_test, Time.to_datetime(t_start).strftime(\"%Y-%m-%d-%Hh%M\"), analysis_start_time, signature)\n",
    "full_path = '/eos/project/m/mp3/RB/{}/{}/{}'.format(circuit_name, hwc_test, file_name_html)\n",
    "!mkdir -p /eos/project/m/mp3/RB/$circuit_name/$hwc_test\n",
514
515
    "print('Compact notebook report saved to (Windows): ' + '\\\\\\\\cernbox-smb' + full_path.replace('/', '\\\\'))\n",
    "display(Javascript('IPython.notebook.save_notebook();'))\n",
516
    "Time.sleep(5)\n",
517
    "!{sys.executable} -m jupyter nbconvert --to html $'AN_RB_PLI3.a5.ipynb' --output /eos/project/m/mp3/RB/$circuit_name/$hwc_test/$file_name_html --TemplateExporter.exclude_input=True --TagRemovePreprocessor.remove_all_outputs_tags='[\"skip_output\"]'"
518
   ]
Michal Maciejewski's avatar
Michal Maciejewski committed
519
520
521
522
523
524
525
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
526
527
528
  }
 ],
 "metadata": {
529
  "celltoolbar": "Edit Metadata",
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  },
  "sparkconnect": {
   "bundled_options": [
    "SparkMetrics",
    "NXCALS"
   ],
Michal Maciejewski's avatar
Michal Maciejewski committed
552
   "list_of_options": []
553
554
555
556
557
558
559
560
561
562
563
564
565
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": false,
   "sideBar": false,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
566
567
568
569
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
Michal Maciejewski's avatar
Michal Maciejewski committed
570
}