SCS-Lab commited on
Commit
ec6a24f
·
verified ·
1 Parent(s): 63d77f8

Upload 7 files

Browse files
fpe_pre_normalization_params.json ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_comment": "Pre-normalization params from d3d_pedestal_dataset_clean. Apply BEFORE the edensfit89 FPE normalization. The edensfit89 shards reused already-z-scored data from pedestal_dataset_clean, so live MDS data must be z-scored with these params first to match the training distribution.",
3
+ "_source": "/eagle/fusiondl_aesp/d3d_pedestal_dataset_clean/normalization_params.json",
4
+ "signal_names": [
5
+ "pohm",
6
+ "pinj",
7
+ "tinj",
8
+ "ech_total",
9
+ "f1a",
10
+ "f2a",
11
+ "f3a",
12
+ "f4a",
13
+ "f5a",
14
+ "f6a",
15
+ "f7a",
16
+ "f8a",
17
+ "f9a",
18
+ "f1b",
19
+ "f2b",
20
+ "f3b",
21
+ "f4b",
22
+ "f5b",
23
+ "f6b",
24
+ "f7b",
25
+ "f8b",
26
+ "f9b",
27
+ "ecoila",
28
+ "ecoilb",
29
+ "gasa_cal",
30
+ "gasb_cal",
31
+ "gasc_cal",
32
+ "gasd_cal",
33
+ "gase_cal",
34
+ "ip",
35
+ "ipspr15v",
36
+ "bt"
37
+ ],
38
+ "means": [
39
+ 412338.692995197,
40
+ 2.8111997039100878,
41
+ 2.154143940948575,
42
+ 2.159654935239209,
43
+ -1444.0438445123289,
44
+ -1315.1185221229061,
45
+ -639.741760304047,
46
+ 1172.4978680515835,
47
+ 1222.4970107268077,
48
+ -2488.8410961768263,
49
+ -2491.3739557685253,
50
+ 1050.107386405324,
51
+ -578.9736547563273,
52
+ -1421.0817159358041,
53
+ -1285.3967398730092,
54
+ -1061.0290851406676,
55
+ 1186.4795970820587,
56
+ 1460.6822372728345,
57
+ -2452.093120847959,
58
+ -3071.3132492215186,
59
+ 1531.3304960724108,
60
+ -262.6728625067526,
61
+ -6887.604056684089,
62
+ -6768.996463787789,
63
+ 14.89178144369171,
64
+ 1.9421402622606716,
65
+ 0.7508911827356307,
66
+ 1.0383906373403984,
67
+ 0.3920832239686922,
68
+ 843738.365177953,
69
+ 1.686035704271647,
70
+ -1.0310375752078498
71
+ ],
72
+ "stds": [
73
+ 369847.07339000056,
74
+ 194.08418888726106,
75
+ 2.3684465859740262,
76
+ 5.948083564785035,
77
+ 1267.4907621702682,
78
+ 1217.4478106828162,
79
+ 1249.3915272640536,
80
+ 1345.3871181128568,
81
+ 1359.1934832307923,
82
+ 1887.1891497052302,
83
+ 1888.1014577442652,
84
+ 1559.9875106371376,
85
+ 1287.2118470203372,
86
+ 1271.813282654729,
87
+ 1259.8644805335082,
88
+ 1361.9306367877398,
89
+ 1521.172083160852,
90
+ 1393.2120473032558,
91
+ 1856.723912629122,
92
+ 2432.8530409799628,
93
+ 1705.6959050005082,
94
+ 1421.8036451037203,
95
+ 19092.148992270486,
96
+ 18858.28389193975,
97
+ 27.289184462156058,
98
+ 11.092415079529571,
99
+ 9.017289768908354,
100
+ 12.055982101097918,
101
+ 6.498888909025979,
102
+ 622708.1868005696,
103
+ 1.2457633871984848,
104
+ 1.599000778986496
105
+ ]
106
+ }
mds_to_hdf5_scale_factors.json ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_comment": "Multiply raw MDSplus fetches by these factors to match TokSearch->d3d_raw_data_hdf5 units before prmtan67 z-score. TokSearch converts PTDATA bmspinj (Watts) to MW (pinj: kW->MW = 1e-3, individual beamlines: W->MW = 1e-6). Empirically confirmed on shot 201572 via scripts/build_mds_hdf5_scale_factors.py. pinj_21l and pinj_30r were zero on that shot but follow the same bmspinj family convention.",
3
+ "_reference_shot": 201572,
4
+ "_reference_h5": "/eagle/fusiondl_aesp/d3d_raw_data_hdf5/201xxx/201572.h5",
5
+ "_mds_server": "localhost",
6
+ "factors": {
7
+ "pinj": 1e-3,
8
+ "pinj_15l": 1e-6,
9
+ "pinj_15r": 1e-6,
10
+ "pinj_21l": 1e-6,
11
+ "pinj_21r": 1e-6,
12
+ "pinj_30l": 1e-6,
13
+ "pinj_30r": 1e-6,
14
+ "pinj_33l": 1e-6,
15
+ "pinj_33r": 1e-6
16
+ }
17
+ }
normalization_params_ece_prad.json ADDED
@@ -0,0 +1,211 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "ece_shared": {
3
+ "mean": 1.530980210606503,
4
+ "std": 2.184563601234605,
5
+ "count": 715886371
6
+ },
7
+ "prad_tot": {
8
+ "mean": 1391372.1259776352,
9
+ "std": 1196390.7579737678,
10
+ "count": 3297585
11
+ },
12
+ "prad_divl": {
13
+ "mean": 735133.0081472935,
14
+ "std": 824163.8220548803,
15
+ "count": 14494905
16
+ },
17
+ "prad_divu": {
18
+ "mean": 243403.73581522075,
19
+ "std": 385590.654907506,
20
+ "count": 14494905
21
+ },
22
+ "per_channel_means": [
23
+ 1.530980210606503,
24
+ 1.530980210606503,
25
+ 1.530980210606503,
26
+ 1.530980210606503,
27
+ 1.530980210606503,
28
+ 1.530980210606503,
29
+ 1.530980210606503,
30
+ 1.530980210606503,
31
+ 1.530980210606503,
32
+ 1.530980210606503,
33
+ 1.530980210606503,
34
+ 1.530980210606503,
35
+ 1.530980210606503,
36
+ 1.530980210606503,
37
+ 1.530980210606503,
38
+ 1.530980210606503,
39
+ 1.530980210606503,
40
+ 1.530980210606503,
41
+ 1.530980210606503,
42
+ 1.530980210606503,
43
+ 1.530980210606503,
44
+ 1.530980210606503,
45
+ 1.530980210606503,
46
+ 1.530980210606503,
47
+ 1.530980210606503,
48
+ 1.530980210606503,
49
+ 1.530980210606503,
50
+ 1.530980210606503,
51
+ 1.530980210606503,
52
+ 1.530980210606503,
53
+ 1.530980210606503,
54
+ 1.530980210606503,
55
+ 1.530980210606503,
56
+ 1.530980210606503,
57
+ 1.530980210606503,
58
+ 1.530980210606503,
59
+ 1.530980210606503,
60
+ 1.530980210606503,
61
+ 1.530980210606503,
62
+ 1.530980210606503,
63
+ 1391372.1259776352,
64
+ 735133.0081472935,
65
+ 243403.73581522075
66
+ ],
67
+ "per_channel_stds": [
68
+ 2.184563601234605,
69
+ 2.184563601234605,
70
+ 2.184563601234605,
71
+ 2.184563601234605,
72
+ 2.184563601234605,
73
+ 2.184563601234605,
74
+ 2.184563601234605,
75
+ 2.184563601234605,
76
+ 2.184563601234605,
77
+ 2.184563601234605,
78
+ 2.184563601234605,
79
+ 2.184563601234605,
80
+ 2.184563601234605,
81
+ 2.184563601234605,
82
+ 2.184563601234605,
83
+ 2.184563601234605,
84
+ 2.184563601234605,
85
+ 2.184563601234605,
86
+ 2.184563601234605,
87
+ 2.184563601234605,
88
+ 2.184563601234605,
89
+ 2.184563601234605,
90
+ 2.184563601234605,
91
+ 2.184563601234605,
92
+ 2.184563601234605,
93
+ 2.184563601234605,
94
+ 2.184563601234605,
95
+ 2.184563601234605,
96
+ 2.184563601234605,
97
+ 2.184563601234605,
98
+ 2.184563601234605,
99
+ 2.184563601234605,
100
+ 2.184563601234605,
101
+ 2.184563601234605,
102
+ 2.184563601234605,
103
+ 2.184563601234605,
104
+ 2.184563601234605,
105
+ 2.184563601234605,
106
+ 2.184563601234605,
107
+ 2.184563601234605,
108
+ 1196390.7579737678,
109
+ 824163.8220548803,
110
+ 385590.654907506
111
+ ],
112
+ "signal_names": [
113
+ "ece1",
114
+ "ece2",
115
+ "ece3",
116
+ "ece4",
117
+ "ece5",
118
+ "ece6",
119
+ "ece7",
120
+ "ece8",
121
+ "ece9",
122
+ "ece10",
123
+ "ece11",
124
+ "ece12",
125
+ "ece13",
126
+ "ece14",
127
+ "ece15",
128
+ "ece16",
129
+ "ece17",
130
+ "ece18",
131
+ "ece19",
132
+ "ece20",
133
+ "ece21",
134
+ "ece22",
135
+ "ece23",
136
+ "ece24",
137
+ "ece25",
138
+ "ece26",
139
+ "ece27",
140
+ "ece28",
141
+ "ece29",
142
+ "ece30",
143
+ "ece31",
144
+ "ece32",
145
+ "ece33",
146
+ "ece34",
147
+ "ece35",
148
+ "ece36",
149
+ "ece37",
150
+ "ece38",
151
+ "ece39",
152
+ "ece40",
153
+ "prad_tot",
154
+ "prad_divl",
155
+ "prad_divu"
156
+ ],
157
+ "n_channels": 43,
158
+ "groups": {
159
+ "ece_shared": [
160
+ 0,
161
+ 1,
162
+ 2,
163
+ 3,
164
+ 4,
165
+ 5,
166
+ 6,
167
+ 7,
168
+ 8,
169
+ 9,
170
+ 10,
171
+ 11,
172
+ 12,
173
+ 13,
174
+ 14,
175
+ 15,
176
+ 16,
177
+ 17,
178
+ 18,
179
+ 19,
180
+ 20,
181
+ 21,
182
+ 22,
183
+ 23,
184
+ 24,
185
+ 25,
186
+ 26,
187
+ 27,
188
+ 28,
189
+ 29,
190
+ 30,
191
+ 31,
192
+ 32,
193
+ 33,
194
+ 34,
195
+ 35,
196
+ 36,
197
+ 37,
198
+ 38,
199
+ 39
200
+ ],
201
+ "prad_tot": [
202
+ 40
203
+ ],
204
+ "prad_divl": [
205
+ 41
206
+ ],
207
+ "prad_divu": [
208
+ 42
209
+ ]
210
+ }
211
+ }
normalization_params_prmtan67.json ADDED
@@ -0,0 +1,282 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "means": [
3
+ 1.7559051503512364,
4
+ 0.7008117827722623,
5
+ 0.5149903153786703,
6
+ 0.407560888313238,
7
+ 1.739703308905749,
8
+ -0.00655716275288392,
9
+ 1.017301977348439,
10
+ 0.9312369603903986,
11
+ 1.1992609791230553,
12
+ -0.4000820173518775,
13
+ -0.40799149403887913,
14
+ 412338.692995197,
15
+ 2.8111997039100878,
16
+ 2.154143940948575,
17
+ 2.159654935239209,
18
+ 0.5261478353730039,
19
+ 0.3729565837313355,
20
+ 0.2172698229477935,
21
+ 0.22368155612491322,
22
+ 0.7574547234422664,
23
+ 0.3645803438822112,
24
+ 0.6816793912464852,
25
+ 0.6308035762437332,
26
+ 0.5193857598026002,
27
+ 0.2392429227339231,
28
+ -0.019039803239844996,
29
+ -0.10881996598071718,
30
+ 0.708571817874025,
31
+ 0.23741128479318083,
32
+ 0.6729744675791548,
33
+ 0.41103949567225917,
34
+ -1444.0438445123289,
35
+ -1315.1185221229061,
36
+ -639.741760304047,
37
+ 1172.4978680515835,
38
+ 1222.4970107268077,
39
+ -2488.8410961768263,
40
+ -2491.3739557685253,
41
+ 1050.107386405324,
42
+ -578.9736547563273,
43
+ -1421.0817159358041,
44
+ -1285.3967398730092,
45
+ -1061.0290851406676,
46
+ 1186.4795970820587,
47
+ 1460.6822372728345,
48
+ -2452.093120847959,
49
+ -3071.3132492215186,
50
+ 1531.3304960724108,
51
+ -262.6728625067526,
52
+ -6887.604056684089,
53
+ -6768.996463787789,
54
+ -6835.025127323114,
55
+ -6755.398303323929,
56
+ -6712.094154842902,
57
+ -6875.77935486187,
58
+ 14.89178144369171,
59
+ 1.9421402622606716,
60
+ 0.7508911827356307,
61
+ 1.0383906373403984,
62
+ 0.3920832239686922,
63
+ 843738.365177953,
64
+ 1.686035704271647,
65
+ -1.0310375752078498,
66
+ 3.3510612920167624,
67
+ 0.17139035088107274,
68
+ 0.08578680400594482,
69
+ 0.0
70
+ ],
71
+ "stds": [
72
+ 0.13199215691503074,
73
+ 0.5214412037289959,
74
+ 0.21001755677319467,
75
+ 0.21362513944412106,
76
+ 0.03823141748495512,
77
+ 0.0410647980789056,
78
+ 0.3501128013343432,
79
+ 0.35282524011870653,
80
+ 0.45339157709210903,
81
+ 1.0548263340221606,
82
+ 1.1731814433496395,
83
+ 369847.07339000056,
84
+ 194.08418888726106,
85
+ 2.3684465859740262,
86
+ 5.948083564785035,
87
+ 0.6461373858368463,
88
+ 0.5897571121774036,
89
+ 0.5211954276735626,
90
+ 0.5196531976169564,
91
+ 0.806392670052472,
92
+ 0.5981386361588121,
93
+ 0.7976219493127598,
94
+ 0.7387861951531305,
95
+ 0.6317692566873198,
96
+ 0.3772187116535466,
97
+ 0.4585222687859846,
98
+ 0.48285588540875696,
99
+ 0.7538285930046738,
100
+ 0.3865450864487293,
101
+ 0.7892249699063278,
102
+ 0.47595726195168914,
103
+ 1267.4907621702682,
104
+ 1217.4478106828162,
105
+ 1249.3915272640536,
106
+ 1345.3871181128568,
107
+ 1359.1934832307923,
108
+ 1887.1891497052302,
109
+ 1888.1014577442652,
110
+ 1559.9875106371376,
111
+ 1287.2118470203372,
112
+ 1271.813282654729,
113
+ 1259.8644805335082,
114
+ 1361.9306367877398,
115
+ 1521.172083160852,
116
+ 1393.2120473032558,
117
+ 1856.723912629122,
118
+ 2432.8530409799628,
119
+ 1705.6959050005082,
120
+ 1421.8036451037203,
121
+ 19092.148992270486,
122
+ 18858.28389193975,
123
+ 18929.635237673476,
124
+ 18722.336595878583,
125
+ 18777.525053114077,
126
+ 19121.112219214214,
127
+ 27.289184462156058,
128
+ 11.092415079529571,
129
+ 9.017289768908354,
130
+ 12.055982101097918,
131
+ 6.498888909025979,
132
+ 622708.1868005696,
133
+ 1.2457633871984848,
134
+ 1.599000778986496,
135
+ 1.8718419405898732,
136
+ 1.1172591849043525,
137
+ 0.49323528071394657,
138
+ 1.0
139
+ ],
140
+ "counts": [
141
+ 7227997.0,
142
+ 7227997.0,
143
+ 7227997.0,
144
+ 7227997.0,
145
+ 7227997.0,
146
+ 7227997.0,
147
+ 6796459.0,
148
+ 7227997.0,
149
+ 7227997.0,
150
+ 7227997.0,
151
+ 7227997.0,
152
+ 7227482.0,
153
+ 6469400.0,
154
+ 6469400.0,
155
+ 6770156.0,
156
+ 4037836.0,
157
+ 4037836.0,
158
+ 4037836.0,
159
+ 4037836.0,
160
+ 4037836.0,
161
+ 4037836.0,
162
+ 4037836.0,
163
+ 4037836.0,
164
+ 4037836.0,
165
+ 4037836.0,
166
+ 4037836.0,
167
+ 4037836.0,
168
+ 4037836.0,
169
+ 4037836.0,
170
+ 4037836.0,
171
+ 4037836.0,
172
+ 7228903.0,
173
+ 7228903.0,
174
+ 7228903.0,
175
+ 7228903.0,
176
+ 7228903.0,
177
+ 7228903.0,
178
+ 7228903.0,
179
+ 7228903.0,
180
+ 7228903.0,
181
+ 7228903.0,
182
+ 7228903.0,
183
+ 7228903.0,
184
+ 7228903.0,
185
+ 7228903.0,
186
+ 7228903.0,
187
+ 7228903.0,
188
+ 7228903.0,
189
+ 7228903.0,
190
+ 7228903.0,
191
+ 7228903.0,
192
+ 7228903.0,
193
+ 7228903.0,
194
+ 7228903.0,
195
+ 7228903.0,
196
+ 7065273.0,
197
+ 4198769.0,
198
+ 3954568.0,
199
+ 4051290.0,
200
+ 1904523.0,
201
+ 7228903.0,
202
+ 7223192.0,
203
+ 7228903.0,
204
+ 7201308.0,
205
+ 6723638.0,
206
+ 6723638.0,
207
+ 0.0
208
+ ],
209
+ "signal_names": [
210
+ "kappa",
211
+ "betap",
212
+ "tribot",
213
+ "tritop",
214
+ "rmaxis",
215
+ "zmaxis",
216
+ "li",
217
+ "rvsin",
218
+ "rvsout",
219
+ "zvsin",
220
+ "zvsout",
221
+ "pohm",
222
+ "pinj",
223
+ "tinj",
224
+ "ech_total",
225
+ "pinj_15l",
226
+ "pinj_15r",
227
+ "pinj_21l",
228
+ "pinj_21r",
229
+ "pinj_30l",
230
+ "pinj_30r",
231
+ "pinj_33l",
232
+ "pinj_33r",
233
+ "tinj_15l",
234
+ "tinj_15r",
235
+ "tinj_21l",
236
+ "tinj_21r",
237
+ "tinj_30l",
238
+ "tinj_30r",
239
+ "tinj_33l",
240
+ "tinj_33r",
241
+ "f1a",
242
+ "f2a",
243
+ "f3a",
244
+ "f4a",
245
+ "f5a",
246
+ "f6a",
247
+ "f7a",
248
+ "f8a",
249
+ "f9a",
250
+ "f1b",
251
+ "f2b",
252
+ "f3b",
253
+ "f4b",
254
+ "f5b",
255
+ "f6b",
256
+ "f7b",
257
+ "f8b",
258
+ "f9b",
259
+ "ecoila",
260
+ "ecoilb",
261
+ "e567up",
262
+ "e567dn",
263
+ "e89up",
264
+ "e89dn",
265
+ "gasa_cal",
266
+ "gasb_cal",
267
+ "gasc_cal",
268
+ "gasd_cal",
269
+ "gase_cal",
270
+ "ip",
271
+ "ipspr15v",
272
+ "bt",
273
+ "density",
274
+ "n1rms",
275
+ "n2rms",
276
+ "prad"
277
+ ],
278
+ "n_channels": 67,
279
+ "li_clip_min": 0.0,
280
+ "li_clip_max": 10.0,
281
+ "li_index": 6
282
+ }
normalization_params_prmtan_clean.json ADDED
@@ -0,0 +1,282 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "means": [
3
+ 1.730390751869266,
4
+ 0.6630464022889627,
5
+ 0.49175038188306525,
6
+ 0.389895611486208,
7
+ 1.7360940950167465,
8
+ -0.006779098293683638,
9
+ 0.9692715187179272,
10
+ 0.8803628334063314,
11
+ 1.1354791250117866,
12
+ -0.38290174284297623,
13
+ -0.39113650460715305,
14
+ 425196.16972454934,
15
+ 2.6222989826153666,
16
+ 1.9067379773483746,
17
+ 1.8685839739644248,
18
+ 0.4647465486684225,
19
+ 0.3300151174605313,
20
+ 0.19270456751040163,
21
+ 0.19689383164452534,
22
+ 0.6671298943509553,
23
+ 0.32109799441584097,
24
+ 0.5961599793173322,
25
+ 0.5573351626063229,
26
+ 0.45869643100343566,
27
+ 0.21167478952664545,
28
+ -0.0144089741426483,
29
+ -0.09447854443949437,
30
+ 0.6239923995555605,
31
+ 0.2091184911983476,
32
+ 0.5886707225941753,
33
+ 0.3631453314369058,
34
+ -1293.0834104344954,
35
+ -1181.5668650801374,
36
+ -555.57197793974,
37
+ 1044.658393566065,
38
+ 1088.0561979649826,
39
+ -2281.134445161946,
40
+ -2242.39462544392,
41
+ 921.0810686663207,
42
+ -492.73342728732786,
43
+ -1272.46762553163,
44
+ -1161.1768451555308,
45
+ -927.6878556020554,
46
+ 1061.4145466664459,
47
+ 1310.3185159885024,
48
+ -2251.803892054766,
49
+ -2772.08035061906,
50
+ 1368.3275680185723,
51
+ -200.33883301183695,
52
+ -6443.826972928266,
53
+ -6343.263803654787,
54
+ -6392.875852320963,
55
+ -6333.421459958498,
56
+ -6287.8516938445255,
57
+ -6426.056717760987,
58
+ 13.395055642602832,
59
+ 1.812952363569829,
60
+ 0.6869200664808783,
61
+ 0.8340141425319139,
62
+ 0.3329324117647407,
63
+ 759415.1418568232,
64
+ 1.5161946776327437,
65
+ -1.0381024871765443,
66
+ 2.995656857829552,
67
+ 0.15839314343118852,
68
+ 0.07644849594873311,
69
+ 0.0
70
+ ],
71
+ "stds": [
72
+ 0.16320693674234724,
73
+ 0.5383230591028443,
74
+ 0.22454793242482213,
75
+ 0.22074719670571027,
76
+ 0.04231029362875543,
77
+ 0.04961706577366841,
78
+ 0.5355099167877394,
79
+ 0.40547096784389874,
80
+ 0.5218516943241112,
81
+ 1.0302800484497676,
82
+ 1.1446669943633927,
83
+ 519599.64309398935,
84
+ 181.83179517356206,
85
+ 2.335146070178251,
86
+ 5.583800123724151,
87
+ 0.6412749950080477,
88
+ 0.5798150968029638,
89
+ 0.5138519671924564,
90
+ 0.512834862805327,
91
+ 0.8491051307117058,
92
+ 0.6010199797581883,
93
+ 0.811815380422634,
94
+ 0.7481410807497881,
95
+ 0.6274367083039095,
96
+ 0.37088239303582493,
97
+ 0.44663523700585683,
98
+ 0.47159825315636694,
99
+ 0.7936984297745561,
100
+ 0.3883607650791077,
101
+ 0.8028241995256651,
102
+ 0.48231906004896363,
103
+ 1282.3600615420016,
104
+ 1219.5226739288107,
105
+ 1204.6665594981123,
106
+ 1308.211776958749,
107
+ 1325.9221946737064,
108
+ 1885.8422692885847,
109
+ 1894.5988454163064,
110
+ 1501.1747950451809,
111
+ 1246.841069924811,
112
+ 1282.9237654031613,
113
+ 1255.2886636946348,
114
+ 1368.1832039205287,
115
+ 1482.6555760282806,
116
+ 1392.9541735628611,
117
+ 1859.3532244214189,
118
+ 2437.7579955167917,
119
+ 1663.260874323492,
120
+ 1362.424962972407,
121
+ 18733.66081501777,
122
+ 18507.61068684327,
123
+ 18576.776738301643,
124
+ 18377.203508302387,
125
+ 18431.194600927327,
126
+ 18761.784712497156,
127
+ 26.531948556472575,
128
+ 10.47130168891412,
129
+ 8.852659816519628,
130
+ 10.53525181299387,
131
+ 6.003789666259362,
132
+ 629668.7153730013,
133
+ 1.2603757084497482,
134
+ 1.56308550132385,
135
+ 2.091626310841561,
136
+ 1.0981347644565582,
137
+ 0.4947932129044504,
138
+ 1.0
139
+ ],
140
+ "counts": [
141
+ 17936586.0,
142
+ 17936586.0,
143
+ 17936586.0,
144
+ 17936586.0,
145
+ 17936586.0,
146
+ 17936586.0,
147
+ 16833985.0,
148
+ 17936586.0,
149
+ 17936586.0,
150
+ 17936586.0,
151
+ 17936586.0,
152
+ 17898284.0,
153
+ 15866262.0,
154
+ 15866262.0,
155
+ 16918727.0,
156
+ 9790975.0,
157
+ 9790975.0,
158
+ 9790975.0,
159
+ 9790975.0,
160
+ 9790975.0,
161
+ 9790975.0,
162
+ 9790975.0,
163
+ 9790975.0,
164
+ 9790975.0,
165
+ 9790975.0,
166
+ 9790975.0,
167
+ 9790975.0,
168
+ 9790975.0,
169
+ 9790975.0,
170
+ 9790975.0,
171
+ 9790975.0,
172
+ 18007850.0,
173
+ 18007850.0,
174
+ 18007850.0,
175
+ 18007850.0,
176
+ 18007850.0,
177
+ 18007850.0,
178
+ 18007850.0,
179
+ 18007850.0,
180
+ 18007850.0,
181
+ 18007850.0,
182
+ 18007850.0,
183
+ 18007850.0,
184
+ 18007850.0,
185
+ 18007850.0,
186
+ 18007850.0,
187
+ 18007850.0,
188
+ 18007850.0,
189
+ 18007850.0,
190
+ 18003868.0,
191
+ 18004385.0,
192
+ 18003868.0,
193
+ 18003868.0,
194
+ 18004385.0,
195
+ 18004385.0,
196
+ 17603996.0,
197
+ 10518115.0,
198
+ 9800022.0,
199
+ 10106836.0,
200
+ 5002772.0,
201
+ 18007850.0,
202
+ 17992213.0,
203
+ 18007437.0,
204
+ 17937694.0,
205
+ 16665109.0,
206
+ 16665109.0,
207
+ 0.0
208
+ ],
209
+ "signal_names": [
210
+ "kappa",
211
+ "betap",
212
+ "tribot",
213
+ "tritop",
214
+ "rmaxis",
215
+ "zmaxis",
216
+ "li",
217
+ "rvsin",
218
+ "rvsout",
219
+ "zvsin",
220
+ "zvsout",
221
+ "pohm",
222
+ "pinj",
223
+ "tinj",
224
+ "ech_total",
225
+ "pinj_15l",
226
+ "pinj_15r",
227
+ "pinj_21l",
228
+ "pinj_21r",
229
+ "pinj_30l",
230
+ "pinj_30r",
231
+ "pinj_33l",
232
+ "pinj_33r",
233
+ "tinj_15l",
234
+ "tinj_15r",
235
+ "tinj_21l",
236
+ "tinj_21r",
237
+ "tinj_30l",
238
+ "tinj_30r",
239
+ "tinj_33l",
240
+ "tinj_33r",
241
+ "f1a",
242
+ "f2a",
243
+ "f3a",
244
+ "f4a",
245
+ "f5a",
246
+ "f6a",
247
+ "f7a",
248
+ "f8a",
249
+ "f9a",
250
+ "f1b",
251
+ "f2b",
252
+ "f3b",
253
+ "f4b",
254
+ "f5b",
255
+ "f6b",
256
+ "f7b",
257
+ "f8b",
258
+ "f9b",
259
+ "ecoila",
260
+ "ecoilb",
261
+ "e567up",
262
+ "e567dn",
263
+ "e89up",
264
+ "e89dn",
265
+ "gasa_cal",
266
+ "gasb_cal",
267
+ "gasc_cal",
268
+ "gasd_cal",
269
+ "gase_cal",
270
+ "ip",
271
+ "ipspr15v",
272
+ "bt",
273
+ "density",
274
+ "n1rms",
275
+ "n2rms",
276
+ "prad"
277
+ ],
278
+ "n_channels": 67,
279
+ "li_clip_min": 0.0,
280
+ "li_clip_max": 10.0,
281
+ "li_index": 6
282
+ }
signal_map.json ADDED
@@ -0,0 +1,186 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_comment": "Definitive signal-to-MDSplus mapping for edensfit89 history features.",
3
+ "_source_of_truth": "docs/ONNX_EXPORT_PLAN.md Section 7-8, history_feature_order.txt",
4
+ "_created": "2026-04-04",
5
+ "_notes": [
6
+ "Each entry: model_name -> {pointname, tree, method, notes}",
7
+ "method: ptdata = ptdata('POINTNAME', shot), tree = openTree(tree,shot) then get(node)",
8
+ "Signals not in the export plan table are inferred from DIII-D conventions (UPPERCASE = pointname).",
9
+ "ADVISOR VALIDATION NEEDED for: edensfit89, pedestal (edensfit100), prad_tot/divl/divu, rmaxis, zmaxis, rvsin, rvsout, zvsin, zvsout, e567up/dn, e89up/dn, pinj_*/tinj_* individual beamlines."
10
+ ],
11
+
12
+ "history_block1_base_signals": {
13
+ "_doc": "67 signals x 4 stats = indices 0-267. Order matches history_feature_order.txt.",
14
+
15
+ "kappa": {"pointname": "KAPPA", "tree": "EFIT01", "method": "tree"},
16
+ "betap": {"pointname": "BETAP", "tree": "EFIT01", "method": "tree"},
17
+ "tribot": {"pointname": "TRIBOT", "tree": "EFIT01", "method": "tree"},
18
+ "tritop": {"pointname": "TRITOP", "tree": "EFIT01", "method": "tree"},
19
+ "rmaxis": {"pointname": "RMAXIS", "tree": "EFIT01", "method": "tree"},
20
+ "zmaxis": {"pointname": "ZMAXIS", "tree": "EFIT01", "method": "tree"},
21
+ "li": {"pointname": "LI", "tree": "EFIT01", "method": "tree"},
22
+ "rvsin": {"pointname": "RVSIN", "tree": "EFIT01", "method": "tree"},
23
+ "rvsout": {"pointname": "RVSOUT", "tree": "EFIT01", "method": "tree"},
24
+ "zvsin": {"pointname": "ZVSIN", "tree": "EFIT01", "method": "tree"},
25
+ "zvsout": {"pointname": "ZVSOUT", "tree": "EFIT01", "method": "tree"},
26
+ "pohm": {"pointname": "POHM", "tree": null, "method": "ptdata"},
27
+ "pinj": {"pointname": "PINJ", "tree": null, "method": "ptdata"},
28
+ "tinj": {"pointname": "TINJ", "tree": null, "method": "ptdata"},
29
+ "ech_total": {"pointname": "ECHPWRC", "tree": null, "method": "ptdata", "notes": "export plan maps ech_total -> ECHPWRC"},
30
+ "pinj_15l": {"pointname": "PINJ_15L", "tree": null, "method": "ptdata"},
31
+ "pinj_15r": {"pointname": "PINJ_15R", "tree": null, "method": "ptdata"},
32
+ "pinj_21l": {"pointname": "PINJ_21L", "tree": null, "method": "ptdata"},
33
+ "pinj_21r": {"pointname": "PINJ_21R", "tree": null, "method": "ptdata"},
34
+ "pinj_30l": {"pointname": "PINJ_30L", "tree": null, "method": "ptdata"},
35
+ "pinj_30r": {"pointname": "PINJ_30R", "tree": null, "method": "ptdata"},
36
+ "pinj_33l": {"pointname": "PINJ_33L", "tree": null, "method": "ptdata"},
37
+ "pinj_33r": {"pointname": "PINJ_33R", "tree": null, "method": "ptdata"},
38
+ "tinj_15l": {"pointname": "TINJ_15L", "tree": null, "method": "ptdata"},
39
+ "tinj_15r": {"pointname": "TINJ_15R", "tree": null, "method": "ptdata"},
40
+ "tinj_21l": {"pointname": "TINJ_21L", "tree": null, "method": "ptdata"},
41
+ "tinj_21r": {"pointname": "TINJ_21R", "tree": null, "method": "ptdata"},
42
+ "tinj_30l": {"pointname": "TINJ_30L", "tree": null, "method": "ptdata"},
43
+ "tinj_30r": {"pointname": "TINJ_30R", "tree": null, "method": "ptdata"},
44
+ "tinj_33l": {"pointname": "TINJ_33L", "tree": null, "method": "ptdata"},
45
+ "tinj_33r": {"pointname": "TINJ_33R", "tree": null, "method": "ptdata"},
46
+ "f1a": {"pointname": "F1A", "tree": null, "method": "ptdata"},
47
+ "f2a": {"pointname": "F2A", "tree": null, "method": "ptdata"},
48
+ "f3a": {"pointname": "F3A", "tree": null, "method": "ptdata"},
49
+ "f4a": {"pointname": "F4A", "tree": null, "method": "ptdata"},
50
+ "f5a": {"pointname": "F5A", "tree": null, "method": "ptdata"},
51
+ "f6a": {"pointname": "F6A", "tree": null, "method": "ptdata"},
52
+ "f7a": {"pointname": "F7A", "tree": null, "method": "ptdata"},
53
+ "f8a": {"pointname": "F8A", "tree": null, "method": "ptdata"},
54
+ "f9a": {"pointname": "F9A", "tree": null, "method": "ptdata"},
55
+ "f1b": {"pointname": "F1B", "tree": null, "method": "ptdata"},
56
+ "f2b": {"pointname": "F2B", "tree": null, "method": "ptdata"},
57
+ "f3b": {"pointname": "F3B", "tree": null, "method": "ptdata"},
58
+ "f4b": {"pointname": "F4B", "tree": null, "method": "ptdata"},
59
+ "f5b": {"pointname": "F5B", "tree": null, "method": "ptdata"},
60
+ "f6b": {"pointname": "F6B", "tree": null, "method": "ptdata"},
61
+ "f7b": {"pointname": "F7B", "tree": null, "method": "ptdata"},
62
+ "f8b": {"pointname": "F8B", "tree": null, "method": "ptdata"},
63
+ "f9b": {"pointname": "F9B", "tree": null, "method": "ptdata"},
64
+ "ecoila": {"pointname": "ECOILA", "tree": null, "method": "ptdata"},
65
+ "ecoilb": {"pointname": "ECOILB", "tree": null, "method": "ptdata"},
66
+ "e567up": {"pointname": "E567UP", "tree": null, "method": "ptdata", "notes": "inferred; needs advisor confirmation"},
67
+ "e567dn": {"pointname": "E567DN", "tree": null, "method": "ptdata", "notes": "inferred; needs advisor confirmation"},
68
+ "e89up": {"pointname": "E89UP", "tree": null, "method": "ptdata", "notes": "inferred; needs advisor confirmation"},
69
+ "e89dn": {"pointname": "E89DN", "tree": null, "method": "ptdata", "notes": "inferred; needs advisor confirmation"},
70
+ "gasa_cal": {"pointname": "GASA_CAL", "tree": null, "method": "ptdata"},
71
+ "gasb_cal": {"pointname": "GASB_CAL", "tree": null, "method": "ptdata"},
72
+ "gasc_cal": {"pointname": "GASC_CAL", "tree": null, "method": "ptdata"},
73
+ "gasd_cal": {"pointname": "GASD_CAL", "tree": null, "method": "ptdata"},
74
+ "gase_cal": {"pointname": "GASE_CAL", "tree": null, "method": "ptdata"},
75
+ "ip": {"pointname": "IP", "tree": null, "method": "ptdata"},
76
+ "ipspr15v": {"pointname": "IPSPR15V", "tree": null, "method": "ptdata"},
77
+ "bt": {"pointname": "BT", "tree": null, "method": "ptdata"},
78
+ "density": {"pointname": "DENSITY", "tree": "ELECTRONS", "method": "tree"},
79
+ "n1rms": {"pointname": "N1RMS", "tree": null, "method": "ptdata"},
80
+ "n2rms": {"pointname": "N2RMS", "tree": null, "method": "ptdata"},
81
+ "prad": {"pointname": "PRAD", "tree": null, "method": "ptdata", "notes": "may need bolometer tree; needs advisor confirmation"}
82
+ },
83
+
84
+ "history_block2_pedestal_target": {
85
+ "_doc": "2 features at indices 268-269. Only mean and std (not min/max).",
86
+ "pedestal": {"pointname": "EDENSFIT100", "tree": null, "method": "ptdata", "notes": "edensfit index 100; exact pointname needs advisor confirmation"}
87
+ },
88
+
89
+ "history_block3_ece_channels": {
90
+ "_doc": "40 ECE channels x 4 stats = indices 270-429.",
91
+ "ece1": {"pointname": "ECE01", "tree": "ECE", "method": "tree"},
92
+ "ece2": {"pointname": "ECE02", "tree": "ECE", "method": "tree"},
93
+ "ece3": {"pointname": "ECE03", "tree": "ECE", "method": "tree"},
94
+ "ece4": {"pointname": "ECE04", "tree": "ECE", "method": "tree"},
95
+ "ece5": {"pointname": "ECE05", "tree": "ECE", "method": "tree"},
96
+ "ece6": {"pointname": "ECE06", "tree": "ECE", "method": "tree"},
97
+ "ece7": {"pointname": "ECE07", "tree": "ECE", "method": "tree"},
98
+ "ece8": {"pointname": "ECE08", "tree": "ECE", "method": "tree"},
99
+ "ece9": {"pointname": "ECE09", "tree": "ECE", "method": "tree"},
100
+ "ece10": {"pointname": "ECE10", "tree": "ECE", "method": "tree"},
101
+ "ece11": {"pointname": "ECE11", "tree": "ECE", "method": "tree"},
102
+ "ece12": {"pointname": "ECE12", "tree": "ECE", "method": "tree"},
103
+ "ece13": {"pointname": "ECE13", "tree": "ECE", "method": "tree"},
104
+ "ece14": {"pointname": "ECE14", "tree": "ECE", "method": "tree"},
105
+ "ece15": {"pointname": "ECE15", "tree": "ECE", "method": "tree"},
106
+ "ece16": {"pointname": "ECE16", "tree": "ECE", "method": "tree"},
107
+ "ece17": {"pointname": "ECE17", "tree": "ECE", "method": "tree"},
108
+ "ece18": {"pointname": "ECE18", "tree": "ECE", "method": "tree"},
109
+ "ece19": {"pointname": "ECE19", "tree": "ECE", "method": "tree"},
110
+ "ece20": {"pointname": "ECE20", "tree": "ECE", "method": "tree"},
111
+ "ece21": {"pointname": "ECE21", "tree": "ECE", "method": "tree"},
112
+ "ece22": {"pointname": "ECE22", "tree": "ECE", "method": "tree"},
113
+ "ece23": {"pointname": "ECE23", "tree": "ECE", "method": "tree"},
114
+ "ece24": {"pointname": "ECE24", "tree": "ECE", "method": "tree"},
115
+ "ece25": {"pointname": "ECE25", "tree": "ECE", "method": "tree"},
116
+ "ece26": {"pointname": "ECE26", "tree": "ECE", "method": "tree"},
117
+ "ece27": {"pointname": "ECE27", "tree": "ECE", "method": "tree"},
118
+ "ece28": {"pointname": "ECE28", "tree": "ECE", "method": "tree"},
119
+ "ece29": {"pointname": "ECE29", "tree": "ECE", "method": "tree"},
120
+ "ece30": {"pointname": "ECE30", "tree": "ECE", "method": "tree"},
121
+ "ece31": {"pointname": "ECE31", "tree": "ECE", "method": "tree"},
122
+ "ece32": {"pointname": "ECE32", "tree": "ECE", "method": "tree"},
123
+ "ece33": {"pointname": "ECE33", "tree": "ECE", "method": "tree"},
124
+ "ece34": {"pointname": "ECE34", "tree": "ECE", "method": "tree"},
125
+ "ece35": {"pointname": "ECE35", "tree": "ECE", "method": "tree"},
126
+ "ece36": {"pointname": "ECE36", "tree": "ECE", "method": "tree"},
127
+ "ece37": {"pointname": "ECE37", "tree": "ECE", "method": "tree"},
128
+ "ece38": {"pointname": "ECE38", "tree": "ECE", "method": "tree"},
129
+ "ece39": {"pointname": "ECE39", "tree": "ECE", "method": "tree"},
130
+ "ece40": {"pointname": "ECE40", "tree": "ECE", "method": "tree"}
131
+ },
132
+
133
+ "history_block4_radiation": {
134
+ "_doc": "3 radiation signals x 4 stats = indices 430-441.",
135
+ "prad_tot": {"pointname": "PRAD_TOT", "tree": null, "method": "ptdata", "notes": "bolometer total; exact source needs advisor confirmation"},
136
+ "prad_divl": {"pointname": "PRAD_DIVL", "tree": null, "method": "ptdata", "notes": "divertor lower; exact source needs advisor confirmation"},
137
+ "prad_divu": {"pointname": "PRAD_DIVU", "tree": null, "method": "ptdata", "notes": "divertor upper; exact source needs advisor confirmation"}
138
+ },
139
+
140
+ "history_block5_edensfit89_target": {
141
+ "_doc": "1 signal x 4 stats = indices 442-445.",
142
+ "edensfit89": {"pointname": "EDENSFIT89", "tree": null, "method": "ptdata", "notes": "fitted density at index 89; exact pointname needs advisor confirmation"}
143
+ },
144
+
145
+ "fpe_signals": {
146
+ "_doc": "32 FPE actuator channels (real-time input to FPE encoder). Order matches normalization_params.json.",
147
+ "_order": [
148
+ "pohm", "pinj", "tinj", "ech_total",
149
+ "f1a", "f2a", "f3a", "f4a", "f5a", "f6a", "f7a", "f8a", "f9a",
150
+ "f1b", "f2b", "f3b", "f4b", "f5b", "f6b", "f7b", "f8b", "f9b",
151
+ "ecoila", "ecoilb",
152
+ "gasa_cal", "gasb_cal", "gasc_cal", "gasd_cal", "gase_cal",
153
+ "ip", "ipspr15v", "bt"
154
+ ],
155
+ "_note": "These are a subset of block1 signals; use the same pointname/tree/method entries from block1."
156
+ },
157
+
158
+ "history_signal_order": {
159
+ "_doc": "Ordered list of signal names matching history_feature_order.txt. Used by _compute_shot_stats().",
160
+ "block1_67_signals": [
161
+ "kappa", "betap", "tribot", "tritop", "rmaxis", "zmaxis", "li",
162
+ "rvsin", "rvsout", "zvsin", "zvsout",
163
+ "pohm", "pinj", "tinj", "ech_total",
164
+ "pinj_15l", "pinj_15r", "pinj_21l", "pinj_21r",
165
+ "pinj_30l", "pinj_30r", "pinj_33l", "pinj_33r",
166
+ "tinj_15l", "tinj_15r", "tinj_21l", "tinj_21r",
167
+ "tinj_30l", "tinj_30r", "tinj_33l", "tinj_33r",
168
+ "f1a", "f2a", "f3a", "f4a", "f5a", "f6a", "f7a", "f8a", "f9a",
169
+ "f1b", "f2b", "f3b", "f4b", "f5b", "f6b", "f7b", "f8b", "f9b",
170
+ "ecoila", "ecoilb",
171
+ "e567up", "e567dn", "e89up", "e89dn",
172
+ "gasa_cal", "gasb_cal", "gasc_cal", "gasd_cal", "gase_cal",
173
+ "ip", "ipspr15v", "bt",
174
+ "density", "n1rms", "n2rms", "prad"
175
+ ],
176
+ "block2_pedestal": ["pedestal"],
177
+ "block3_40_ece": [
178
+ "ece1", "ece2", "ece3", "ece4", "ece5", "ece6", "ece7", "ece8", "ece9", "ece10",
179
+ "ece11", "ece12", "ece13", "ece14", "ece15", "ece16", "ece17", "ece18", "ece19", "ece20",
180
+ "ece21", "ece22", "ece23", "ece24", "ece25", "ece26", "ece27", "ece28", "ece29", "ece30",
181
+ "ece31", "ece32", "ece33", "ece34", "ece35", "ece36", "ece37", "ece38", "ece39", "ece40"
182
+ ],
183
+ "block4_3_radiation": ["prad_tot", "prad_divl", "prad_divu"],
184
+ "block5_edensfit89": ["edensfit89"]
185
+ }
186
+ }
signal_map_v2.json ADDED
@@ -0,0 +1,251 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_comment": "V2 signal map — corrected against rodriguezj FetchRawData.py / FetchECEAndPrad / FetchBolometer.",
3
+ "_source_of_truth": "rodriguezj_ref/pedestal_scripts_used/FetchRawData.py + SIGNAL_MAP_RODRIGUEZJ_SOURCE.md",
4
+ "_created": "2026-04-04",
5
+ "_v2_created": "2026-04-04",
6
+ "_notes": [
7
+ "V2 changes vs V1: see _v2_changelog at bottom.",
8
+ "method=tree now stores FULL node path in pointname (e.g. RESULTS.AEQDSK.KAPPA).",
9
+ " _fetch_tree should: openTree(tree, shot) then get(pointname) — NOT prepend \\TREE::.",
10
+ "method=ptdata stores the exact case-sensitive PTDATA string.",
11
+ "method=zipfit_column is new: fetch 2D PROFILES.EDENSFIT from ZIPFIT01, slice column_index.",
12
+ "ADVISOR VALIDATION NEEDED for: prad_divl, prad_divu, prad_tot (SPECTROSCOPY/PTDATA access on Polaris)."
13
+ ],
14
+
15
+ "history_block1_base_signals": {
16
+ "_doc": "67 signals x 4 stats = indices 0-267. Order matches history_feature_order.txt.",
17
+
18
+ "kappa": {"pointname": "RESULTS.AEQDSK.KAPPA", "tree": "EFIT01", "method": "tree"},
19
+ "betap": {"pointname": "RESULTS.AEQDSK.BETAP", "tree": "EFIT01", "method": "tree"},
20
+ "tribot": {"pointname": "RESULTS.AEQDSK.TRIBOT", "tree": "EFIT01", "method": "tree"},
21
+ "tritop": {"pointname": "RESULTS.AEQDSK.TRITOP", "tree": "EFIT01", "method": "tree"},
22
+ "rmaxis": {"pointname": "RESULTS.AEQDSK.R0", "tree": "EFIT01", "method": "tree", "notes": "was RMAXIS in v1; Jesse uses R0"},
23
+ "zmaxis": {"pointname": "RESULTS.AEQDSK.Z0", "tree": "EFIT01", "method": "tree", "notes": "was ZMAXIS in v1; Jesse uses Z0"},
24
+ "li": {"pointname": "efsli", "tree": null, "method": "ptdata", "notes": "was EFIT01::LI in v1; Jesse uses ptdata efsli"},
25
+ "rvsin": {"pointname": "RESULTS.AEQDSK.RVSIN", "tree": "EFIT01", "method": "tree"},
26
+ "rvsout": {"pointname": "RESULTS.AEQDSK.RVSOUT", "tree": "EFIT01", "method": "tree"},
27
+ "zvsin": {"pointname": "RESULTS.AEQDSK.ZVSIN", "tree": "EFIT01", "method": "tree"},
28
+ "zvsout": {"pointname": "RESULTS.AEQDSK.ZVSOUT", "tree": "EFIT01", "method": "tree"},
29
+ "pohm": {"pointname": "RESULTS.AEQDSK.POH", "tree": "EFIT01", "method": "tree", "notes": "was ptdata POHM in v1; Jesse uses EFIT01 tree"},
30
+ "pinj": {"pointname": "bmspinj", "tree": null, "method": "ptdata", "notes": "was PINJ in v1"},
31
+ "tinj": {"pointname": "bmstinj", "tree": null, "method": "ptdata", "notes": "was TINJ in v1"},
32
+ "ech_total": {"pointname": "ECHPWR", "tree": null, "method": "ptdata", "notes": "was ECHPWRC in v1; Jesse uses ECHPWR"},
33
+ "pinj_15l": {"pointname": "bmspinj15l", "tree": null, "method": "ptdata", "notes": "was PINJ_15L in v1"},
34
+ "pinj_15r": {"pointname": "bmspinj15r", "tree": null, "method": "ptdata"},
35
+ "pinj_21l": {"pointname": "bmspinj21l", "tree": null, "method": "ptdata"},
36
+ "pinj_21r": {"pointname": "bmspinj21r", "tree": null, "method": "ptdata"},
37
+ "pinj_30l": {"pointname": "bmspinj30l", "tree": null, "method": "ptdata"},
38
+ "pinj_30r": {"pointname": "bmspinj30r", "tree": null, "method": "ptdata"},
39
+ "pinj_33l": {"pointname": "bmspinj33l", "tree": null, "method": "ptdata"},
40
+ "pinj_33r": {"pointname": "bmspinj33r", "tree": null, "method": "ptdata"},
41
+ "tinj_15l": {"pointname": "bmstinj15l", "tree": null, "method": "ptdata", "notes": "was TINJ_15L in v1"},
42
+ "tinj_15r": {"pointname": "bmstinj15r", "tree": null, "method": "ptdata"},
43
+ "tinj_21l": {"pointname": "bmstinj21l", "tree": null, "method": "ptdata"},
44
+ "tinj_21r": {"pointname": "bmstinj21r", "tree": null, "method": "ptdata"},
45
+ "tinj_30l": {"pointname": "bmstinj30l", "tree": null, "method": "ptdata"},
46
+ "tinj_30r": {"pointname": "bmstinj30r", "tree": null, "method": "ptdata"},
47
+ "tinj_33l": {"pointname": "bmstinj33l", "tree": null, "method": "ptdata"},
48
+ "tinj_33r": {"pointname": "bmstinj33r", "tree": null, "method": "ptdata"},
49
+ "f1a": {"pointname": "F1A", "tree": null, "method": "ptdata"},
50
+ "f2a": {"pointname": "F2A", "tree": null, "method": "ptdata"},
51
+ "f3a": {"pointname": "F3A", "tree": null, "method": "ptdata"},
52
+ "f4a": {"pointname": "F4A", "tree": null, "method": "ptdata"},
53
+ "f5a": {"pointname": "F5A", "tree": null, "method": "ptdata"},
54
+ "f6a": {"pointname": "F6A", "tree": null, "method": "ptdata"},
55
+ "f7a": {"pointname": "F7A", "tree": null, "method": "ptdata"},
56
+ "f8a": {"pointname": "F8A", "tree": null, "method": "ptdata"},
57
+ "f9a": {"pointname": "F9A", "tree": null, "method": "ptdata"},
58
+ "f1b": {"pointname": "F1B", "tree": null, "method": "ptdata"},
59
+ "f2b": {"pointname": "F2B", "tree": null, "method": "ptdata"},
60
+ "f3b": {"pointname": "F3B", "tree": null, "method": "ptdata"},
61
+ "f4b": {"pointname": "F4B", "tree": null, "method": "ptdata"},
62
+ "f5b": {"pointname": "F5B", "tree": null, "method": "ptdata"},
63
+ "f6b": {"pointname": "F6B", "tree": null, "method": "ptdata"},
64
+ "f7b": {"pointname": "F7B", "tree": null, "method": "ptdata"},
65
+ "f8b": {"pointname": "F8B", "tree": null, "method": "ptdata"},
66
+ "f9b": {"pointname": "F9B", "tree": null, "method": "ptdata"},
67
+ "ecoila": {"pointname": "ECOILA", "tree": null, "method": "ptdata"},
68
+ "ecoilb": {"pointname": "ECOILB", "tree": null, "method": "ptdata"},
69
+ "e567up": {"pointname": "E567UP", "tree": null, "method": "ptdata"},
70
+ "e567dn": {"pointname": "E567DN", "tree": null, "method": "ptdata"},
71
+ "e89up": {"pointname": "E89UP", "tree": null, "method": "ptdata"},
72
+ "e89dn": {"pointname": "E89DN", "tree": null, "method": "ptdata"},
73
+ "gasa_cal": {"pointname": "GASFLOW.GASA:FLOW", "tree": "NEUTRALS", "method": "tree", "notes": "was ptdata GASA_CAL in v1; Jesse uses NEUTRALS tree"},
74
+ "gasb_cal": {"pointname": "GASFLOW.GASB:FLOW", "tree": "NEUTRALS", "method": "tree"},
75
+ "gasc_cal": {"pointname": "GASFLOW.GASC:FLOW", "tree": "NEUTRALS", "method": "tree"},
76
+ "gasd_cal": {"pointname": "GASFLOW.GASD:FLOW", "tree": "NEUTRALS", "method": "tree"},
77
+ "gase_cal": {"pointname": "GASFLOW.GASE:FLOW", "tree": "NEUTRALS", "method": "tree"},
78
+ "ip": {"pointname": "IP", "tree": null, "method": "ptdata"},
79
+ "ipspr15v": {"pointname": "ipspr15V", "tree": null, "method": "ptdata", "notes": "case-sensitive V"},
80
+ "bt": {"pointname": "bt", "tree": null, "method": "ptdata", "notes": "lowercase per Jesse"},
81
+ "density": {"pointname": "dssdenest", "tree": null, "method": "ptdata", "notes": "was ELECTRONS::DENSITY in v1; Jesse uses ptdata dssdenest"},
82
+ "n1rms": {"pointname": "nssampn1l", "tree": null, "method": "ptdata", "notes": "was N1RMS in v1"},
83
+ "n2rms": {"pointname": "nssampn2l", "tree": null, "method": "ptdata", "notes": "was N2RMS in v1"},
84
+ "prad": {"pointname": "PRAD", "tree": null, "method": "ptdata"}
85
+ },
86
+
87
+ "history_block2_pedestal_target": {
88
+ "_doc": "2 features at indices 268-269. Only mean and std (not min/max).",
89
+ "pedestal": {
90
+ "pointname": "PROFILES.EDENSFIT",
91
+ "tree": "ZIPFIT01",
92
+ "method": "zipfit_column",
93
+ "column_index": 100,
94
+ "notes": "was ptdata EDENSFIT100 in v1; Jesse fetches 2D ZIPFIT01 PROFILES.EDENSFIT and slices col 100"
95
+ }
96
+ },
97
+
98
+ "history_block3_ece_channels": {
99
+ "_doc": "40 ECE channels x 4 stats = indices 270-429.",
100
+ "ece1": {"pointname": "ece1", "tree": null, "method": "ptdata", "notes": "was tree ECE::ECE01 in v1; Jesse uses ptdata"},
101
+ "ece2": {"pointname": "ece2", "tree": null, "method": "ptdata"},
102
+ "ece3": {"pointname": "ece3", "tree": null, "method": "ptdata"},
103
+ "ece4": {"pointname": "ece4", "tree": null, "method": "ptdata"},
104
+ "ece5": {"pointname": "ece5", "tree": null, "method": "ptdata"},
105
+ "ece6": {"pointname": "ece6", "tree": null, "method": "ptdata"},
106
+ "ece7": {"pointname": "ece7", "tree": null, "method": "ptdata"},
107
+ "ece8": {"pointname": "ece8", "tree": null, "method": "ptdata"},
108
+ "ece9": {"pointname": "ece9", "tree": null, "method": "ptdata"},
109
+ "ece10": {"pointname": "ece10", "tree": null, "method": "ptdata"},
110
+ "ece11": {"pointname": "ece11", "tree": null, "method": "ptdata"},
111
+ "ece12": {"pointname": "ece12", "tree": null, "method": "ptdata"},
112
+ "ece13": {"pointname": "ece13", "tree": null, "method": "ptdata"},
113
+ "ece14": {"pointname": "ece14", "tree": null, "method": "ptdata"},
114
+ "ece15": {"pointname": "ece15", "tree": null, "method": "ptdata"},
115
+ "ece16": {"pointname": "ece16", "tree": null, "method": "ptdata"},
116
+ "ece17": {"pointname": "ece17", "tree": null, "method": "ptdata"},
117
+ "ece18": {"pointname": "ece18", "tree": null, "method": "ptdata"},
118
+ "ece19": {"pointname": "ece19", "tree": null, "method": "ptdata"},
119
+ "ece20": {"pointname": "ece20", "tree": null, "method": "ptdata"},
120
+ "ece21": {"pointname": "ece21", "tree": null, "method": "ptdata"},
121
+ "ece22": {"pointname": "ece22", "tree": null, "method": "ptdata"},
122
+ "ece23": {"pointname": "ece23", "tree": null, "method": "ptdata"},
123
+ "ece24": {"pointname": "ece24", "tree": null, "method": "ptdata"},
124
+ "ece25": {"pointname": "ece25", "tree": null, "method": "ptdata"},
125
+ "ece26": {"pointname": "ece26", "tree": null, "method": "ptdata"},
126
+ "ece27": {"pointname": "ece27", "tree": null, "method": "ptdata"},
127
+ "ece28": {"pointname": "ece28", "tree": null, "method": "ptdata"},
128
+ "ece29": {"pointname": "ece29", "tree": null, "method": "ptdata"},
129
+ "ece30": {"pointname": "ece30", "tree": null, "method": "ptdata"},
130
+ "ece31": {"pointname": "ece31", "tree": null, "method": "ptdata"},
131
+ "ece32": {"pointname": "ece32", "tree": null, "method": "ptdata"},
132
+ "ece33": {"pointname": "ece33", "tree": null, "method": "ptdata"},
133
+ "ece34": {"pointname": "ece34", "tree": null, "method": "ptdata"},
134
+ "ece35": {"pointname": "ece35", "tree": null, "method": "ptdata"},
135
+ "ece36": {"pointname": "ece36", "tree": null, "method": "ptdata"},
136
+ "ece37": {"pointname": "ece37", "tree": null, "method": "ptdata"},
137
+ "ece38": {"pointname": "ece38", "tree": null, "method": "ptdata"},
138
+ "ece39": {"pointname": "ece39", "tree": null, "method": "ptdata"},
139
+ "ece40": {"pointname": "ece40", "tree": null, "method": "ptdata"}
140
+ },
141
+
142
+ "history_block4_radiation": {
143
+ "_doc": "3 radiation signals x 4 stats = indices 430-441.",
144
+ "prad_tot": {"pointname": "PRAD_TOT", "tree": null, "method": "ptdata", "notes": "Jesse uses ptdata PRAD_TOT (FetchECEAndPrad); may be absent for some shots"},
145
+ "prad_divl": {"pointname": "\\PRAD_DIVL", "tree": "SPECTROSCOPY", "method": "tree", "notes": "was ptdata in v1; Jesse uses SPECTROSCOPY tree (FetchBolometer); may need atlas.gat.com"},
146
+ "prad_divu": {"pointname": "\\PRAD_DIVU", "tree": "SPECTROSCOPY", "method": "tree", "notes": "was ptdata in v1; Jesse uses SPECTROSCOPY tree (FetchBolometer); may need atlas.gat.com"}
147
+ },
148
+
149
+ "history_block5_edensfit89_target": {
150
+ "_doc": "1 signal x 4 stats = indices 442-445.",
151
+ "edensfit89": {
152
+ "pointname": "PROFILES.EDENSFIT",
153
+ "tree": "ZIPFIT01",
154
+ "method": "zipfit_column",
155
+ "column_index": 89,
156
+ "notes": "was ptdata EDENSFIT89 in v1; Jesse fetches 2D ZIPFIT01 PROFILES.EDENSFIT and slices col 89"
157
+ }
158
+ },
159
+
160
+ "fpe_signals": {
161
+ "_doc": "32 FPE actuator channels (real-time input to FPE encoder). Order matches normalization_params.json.",
162
+ "_order": [
163
+ "pohm", "pinj", "tinj", "ech_total",
164
+ "f1a", "f2a", "f3a", "f4a", "f5a", "f6a", "f7a", "f8a", "f9a",
165
+ "f1b", "f2b", "f3b", "f4b", "f5b", "f6b", "f7b", "f8b", "f9b",
166
+ "ecoila", "ecoilb",
167
+ "gasa_cal", "gasb_cal", "gasc_cal", "gasd_cal", "gase_cal",
168
+ "ip", "ipspr15v", "bt"
169
+ ],
170
+ "_note": "These are a subset of block1 signals; use the same pointname/tree/method entries from block1."
171
+ },
172
+
173
+ "history_signal_order": {
174
+ "_doc": "Ordered list of signal names matching history_feature_order.txt. Used by _compute_shot_stats().",
175
+ "block1_67_signals": [
176
+ "kappa", "betap", "tribot", "tritop", "rmaxis", "zmaxis", "li",
177
+ "rvsin", "rvsout", "zvsin", "zvsout",
178
+ "pohm", "pinj", "tinj", "ech_total",
179
+ "pinj_15l", "pinj_15r", "pinj_21l", "pinj_21r",
180
+ "pinj_30l", "pinj_30r", "pinj_33l", "pinj_33r",
181
+ "tinj_15l", "tinj_15r", "tinj_21l", "tinj_21r",
182
+ "tinj_30l", "tinj_30r", "tinj_33l", "tinj_33r",
183
+ "f1a", "f2a", "f3a", "f4a", "f5a", "f6a", "f7a", "f8a", "f9a",
184
+ "f1b", "f2b", "f3b", "f4b", "f5b", "f6b", "f7b", "f8b", "f9b",
185
+ "ecoila", "ecoilb",
186
+ "e567up", "e567dn", "e89up", "e89dn",
187
+ "gasa_cal", "gasb_cal", "gasc_cal", "gasd_cal", "gase_cal",
188
+ "ip", "ipspr15v", "bt",
189
+ "density", "n1rms", "n2rms", "prad"
190
+ ],
191
+ "block2_pedestal": ["pedestal"],
192
+ "block3_40_ece": [
193
+ "ece1", "ece2", "ece3", "ece4", "ece5", "ece6", "ece7", "ece8", "ece9", "ece10",
194
+ "ece11", "ece12", "ece13", "ece14", "ece15", "ece16", "ece17", "ece18", "ece19", "ece20",
195
+ "ece21", "ece22", "ece23", "ece24", "ece25", "ece26", "ece27", "ece28", "ece29", "ece30",
196
+ "ece31", "ece32", "ece33", "ece34", "ece35", "ece36", "ece37", "ece38", "ece39", "ece40"
197
+ ],
198
+ "block4_3_radiation": ["prad_tot", "prad_divl", "prad_divu"],
199
+ "block5_edensfit89": ["edensfit89"]
200
+ },
201
+
202
+ "_v2_changelog": {
203
+ "_doc": "Every change from signal_map.json (v1) with rationale.",
204
+ "method_changed": {
205
+ "li": "EFIT01 tree -> ptdata efsli (FetchRawData.py line 77)",
206
+ "pohm": "ptdata POHM -> EFIT01 tree RESULTS.AEQDSK.POH (FetchRawData.py line 69)",
207
+ "density": "ELECTRONS tree -> ptdata dssdenest (FetchRawData.py line 88)",
208
+ "gasa_cal": "ptdata GASA_CAL -> NEUTRALS tree GASFLOW.GASA:FLOW (FetchRawData.py line 116)",
209
+ "gasb_cal": "ptdata -> NEUTRALS tree (same pattern)",
210
+ "gasc_cal": "ptdata -> NEUTRALS tree (same pattern)",
211
+ "gasd_cal": "ptdata -> NEUTRALS tree (same pattern)",
212
+ "gase_cal": "ptdata -> NEUTRALS tree (same pattern)",
213
+ "ece1-ece40": "ECE tree ECE01..ECE40 -> ptdata ece1..ece40 (FetchECEAndPrad.py)",
214
+ "prad_divl": "ptdata PRAD_DIVL -> SPECTROSCOPY tree (FetchBolometer.py)",
215
+ "prad_divu": "ptdata PRAD_DIVU -> SPECTROSCOPY tree (FetchBolometer.py)",
216
+ "pedestal": "ptdata EDENSFIT100 -> zipfit_column (ZIPFIT01 col 100)",
217
+ "edensfit89":"ptdata EDENSFIT89 -> zipfit_column (ZIPFIT01 col 89)"
218
+ },
219
+ "pointname_changed": {
220
+ "pinj": "PINJ -> bmspinj",
221
+ "tinj": "TINJ -> bmstinj",
222
+ "pinj_15l": "PINJ_15L -> bmspinj15l (and all 8 beam ports)",
223
+ "tinj_15l": "TINJ_15L -> bmstinj15l (and all 8 beam ports)",
224
+ "n1rms": "N1RMS -> nssampn1l",
225
+ "n2rms": "N2RMS -> nssampn2l",
226
+ "ech_total": "ECHPWRC -> ECHPWR",
227
+ "ipspr15v": "IPSPR15V -> ipspr15V (case fix)",
228
+ "bt": "BT -> bt (case fix)"
229
+ },
230
+ "node_path_changed": {
231
+ "kappa": "KAPPA -> RESULTS.AEQDSK.KAPPA (full EFIT path)",
232
+ "betap": "BETAP -> RESULTS.AEQDSK.BETAP",
233
+ "tribot": "TRIBOT -> RESULTS.AEQDSK.TRIBOT",
234
+ "tritop": "TRITOP -> RESULTS.AEQDSK.TRITOP",
235
+ "rmaxis": "RMAXIS -> RESULTS.AEQDSK.R0",
236
+ "zmaxis": "ZMAXIS -> RESULTS.AEQDSK.Z0",
237
+ "rvsin": "RVSIN -> RESULTS.AEQDSK.RVSIN",
238
+ "rvsout": "RVSOUT -> RESULTS.AEQDSK.RVSOUT",
239
+ "zvsin": "ZVSIN -> RESULTS.AEQDSK.ZVSIN",
240
+ "zvsout": "ZVSOUT -> RESULTS.AEQDSK.ZVSOUT"
241
+ },
242
+ "unchanged": [
243
+ "f1a-f9b (PTDATA, correct in v1)",
244
+ "ecoila, ecoilb (PTDATA, correct in v1)",
245
+ "e567up, e567dn, e89up, e89dn (PTDATA, correct in v1)",
246
+ "ip (PTDATA IP, correct in v1)",
247
+ "prad (PTDATA PRAD, correct in v1)",
248
+ "prad_tot (PTDATA PRAD_TOT, same in both — may still be broken for some shots)"
249
+ ]
250
+ }
251
+ }