pedestal-predictor-onnx / signal_map_v2.json
SCS-Lab's picture
Upload signal_map_v2.json with huggingface_hub
422bbb4 verified
{
"_comment": "V2 signal map — corrected against rodriguezj FetchRawData.py / FetchECEAndPrad / FetchBolometer.",
"_source_of_truth": "rodriguezj_ref/pedestal_scripts_used/FetchRawData.py + SIGNAL_MAP_RODRIGUEZJ_SOURCE.md",
"_created": "2026-04-04",
"_v2_created": "2026-04-04",
"_notes": [
"V2 changes vs V1: see _v2_changelog at bottom.",
"method=tree now stores FULL node path in pointname (e.g. RESULTS.AEQDSK.KAPPA).",
" _fetch_tree should: openTree(tree, shot) then get(pointname) — NOT prepend \\TREE::.",
"method=ptdata stores the exact case-sensitive PTDATA string.",
"method=zipfit_column is new: fetch 2D PROFILES.EDENSFIT from ZIPFIT01, slice column_index.",
"ADVISOR VALIDATION NEEDED for: prad_divl, prad_divu, prad_tot (SPECTROSCOPY/PTDATA access on Polaris)."
],
"history_block1_base_signals": {
"_doc": "67 signals x 4 stats = indices 0-267. Order matches history_feature_order.txt.",
"kappa": {"pointname": "RESULTS.AEQDSK.KAPPA", "tree": "EFIT01", "method": "tree"},
"betap": {"pointname": "RESULTS.AEQDSK.BETAP", "tree": "EFIT01", "method": "tree"},
"tribot": {"pointname": "RESULTS.AEQDSK.TRIBOT", "tree": "EFIT01", "method": "tree"},
"tritop": {"pointname": "RESULTS.AEQDSK.TRITOP", "tree": "EFIT01", "method": "tree"},
"rmaxis": {"pointname": "RESULTS.AEQDSK.R0", "tree": "EFIT01", "method": "tree", "notes": "was RMAXIS in v1; Jesse uses R0"},
"zmaxis": {"pointname": "RESULTS.AEQDSK.Z0", "tree": "EFIT01", "method": "tree", "notes": "was ZMAXIS in v1; Jesse uses Z0"},
"li": {"pointname": "efsli", "tree": null, "method": "ptdata", "notes": "was EFIT01::LI in v1; Jesse uses ptdata efsli"},
"rvsin": {"pointname": "RESULTS.AEQDSK.RVSIN", "tree": "EFIT01", "method": "tree"},
"rvsout": {"pointname": "RESULTS.AEQDSK.RVSOUT", "tree": "EFIT01", "method": "tree"},
"zvsin": {"pointname": "RESULTS.AEQDSK.ZVSIN", "tree": "EFIT01", "method": "tree"},
"zvsout": {"pointname": "RESULTS.AEQDSK.ZVSOUT", "tree": "EFIT01", "method": "tree"},
"pohm": {"pointname": "RESULTS.AEQDSK.POH", "tree": "EFIT01", "method": "tree", "notes": "was ptdata POHM in v1; Jesse uses EFIT01 tree"},
"pinj": {"pointname": "bmspinj", "tree": null, "method": "ptdata", "notes": "was PINJ in v1"},
"tinj": {"pointname": "bmstinj", "tree": null, "method": "ptdata", "notes": "was TINJ in v1"},
"ech_total": {"pointname": "ECHPWR", "tree": null, "method": "ptdata", "notes": "was ECHPWRC in v1; Jesse uses ECHPWR"},
"pinj_15l": {"pointname": "bmspinj15l", "tree": null, "method": "ptdata", "notes": "was PINJ_15L in v1"},
"pinj_15r": {"pointname": "bmspinj15r", "tree": null, "method": "ptdata"},
"pinj_21l": {"pointname": "bmspinj21l", "tree": null, "method": "ptdata"},
"pinj_21r": {"pointname": "bmspinj21r", "tree": null, "method": "ptdata"},
"pinj_30l": {"pointname": "bmspinj30l", "tree": null, "method": "ptdata"},
"pinj_30r": {"pointname": "bmspinj30r", "tree": null, "method": "ptdata"},
"pinj_33l": {"pointname": "bmspinj33l", "tree": null, "method": "ptdata"},
"pinj_33r": {"pointname": "bmspinj33r", "tree": null, "method": "ptdata"},
"tinj_15l": {"pointname": "bmstinj15l", "tree": null, "method": "ptdata", "notes": "was TINJ_15L in v1"},
"tinj_15r": {"pointname": "bmstinj15r", "tree": null, "method": "ptdata"},
"tinj_21l": {"pointname": "bmstinj21l", "tree": null, "method": "ptdata"},
"tinj_21r": {"pointname": "bmstinj21r", "tree": null, "method": "ptdata"},
"tinj_30l": {"pointname": "bmstinj30l", "tree": null, "method": "ptdata"},
"tinj_30r": {"pointname": "bmstinj30r", "tree": null, "method": "ptdata"},
"tinj_33l": {"pointname": "bmstinj33l", "tree": null, "method": "ptdata"},
"tinj_33r": {"pointname": "bmstinj33r", "tree": null, "method": "ptdata"},
"f1a": {"pointname": "F1A", "tree": null, "method": "ptdata"},
"f2a": {"pointname": "F2A", "tree": null, "method": "ptdata"},
"f3a": {"pointname": "F3A", "tree": null, "method": "ptdata"},
"f4a": {"pointname": "F4A", "tree": null, "method": "ptdata"},
"f5a": {"pointname": "F5A", "tree": null, "method": "ptdata"},
"f6a": {"pointname": "F6A", "tree": null, "method": "ptdata"},
"f7a": {"pointname": "F7A", "tree": null, "method": "ptdata"},
"f8a": {"pointname": "F8A", "tree": null, "method": "ptdata"},
"f9a": {"pointname": "F9A", "tree": null, "method": "ptdata"},
"f1b": {"pointname": "F1B", "tree": null, "method": "ptdata"},
"f2b": {"pointname": "F2B", "tree": null, "method": "ptdata"},
"f3b": {"pointname": "F3B", "tree": null, "method": "ptdata"},
"f4b": {"pointname": "F4B", "tree": null, "method": "ptdata"},
"f5b": {"pointname": "F5B", "tree": null, "method": "ptdata"},
"f6b": {"pointname": "F6B", "tree": null, "method": "ptdata"},
"f7b": {"pointname": "F7B", "tree": null, "method": "ptdata"},
"f8b": {"pointname": "F8B", "tree": null, "method": "ptdata"},
"f9b": {"pointname": "F9B", "tree": null, "method": "ptdata"},
"ecoila": {"pointname": "ECOILA", "tree": null, "method": "ptdata"},
"ecoilb": {"pointname": "ECOILB", "tree": null, "method": "ptdata"},
"e567up": {"pointname": "E567UP", "tree": null, "method": "ptdata"},
"e567dn": {"pointname": "E567DN", "tree": null, "method": "ptdata"},
"e89up": {"pointname": "E89UP", "tree": null, "method": "ptdata"},
"e89dn": {"pointname": "E89DN", "tree": null, "method": "ptdata"},
"gasa_cal": {"pointname": "GASFLOW.GASA:FLOW", "tree": "NEUTRALS", "method": "tree", "notes": "was ptdata GASA_CAL in v1; Jesse uses NEUTRALS tree"},
"gasb_cal": {"pointname": "GASFLOW.GASB:FLOW", "tree": "NEUTRALS", "method": "tree"},
"gasc_cal": {"pointname": "GASFLOW.GASC:FLOW", "tree": "NEUTRALS", "method": "tree"},
"gasd_cal": {"pointname": "GASFLOW.GASD:FLOW", "tree": "NEUTRALS", "method": "tree"},
"gase_cal": {"pointname": "GASFLOW.GASE:FLOW", "tree": "NEUTRALS", "method": "tree"},
"ip": {"pointname": "IP", "tree": null, "method": "ptdata"},
"ipspr15v": {"pointname": "ipspr15V", "tree": null, "method": "ptdata", "notes": "case-sensitive V"},
"bt": {"pointname": "bt", "tree": null, "method": "ptdata", "notes": "lowercase per Jesse"},
"density": {"pointname": "dssdenest", "tree": null, "method": "ptdata", "notes": "was ELECTRONS::DENSITY in v1; Jesse uses ptdata dssdenest"},
"n1rms": {"pointname": "nssampn1l", "tree": null, "method": "ptdata", "notes": "was N1RMS in v1"},
"n2rms": {"pointname": "nssampn2l", "tree": null, "method": "ptdata", "notes": "was N2RMS in v1"},
"prad": {"pointname": "PRAD", "tree": null, "method": "ptdata"}
},
"history_block2_pedestal_target": {
"_doc": "2 features at indices 268-269. Only mean and std (not min/max).",
"pedestal": {
"pointname": "PROFILES.EDENSFIT",
"tree": "ZIPFIT01",
"method": "zipfit_column",
"column_index": 100,
"notes": "was ptdata EDENSFIT100 in v1; Jesse fetches 2D ZIPFIT01 PROFILES.EDENSFIT and slices col 100"
}
},
"history_block3_ece_channels": {
"_doc": "40 ECE channels x 4 stats = indices 270-429.",
"ece1": {"pointname": "ece1", "tree": null, "method": "ptdata", "notes": "was tree ECE::ECE01 in v1; Jesse uses ptdata"},
"ece2": {"pointname": "ece2", "tree": null, "method": "ptdata"},
"ece3": {"pointname": "ece3", "tree": null, "method": "ptdata"},
"ece4": {"pointname": "ece4", "tree": null, "method": "ptdata"},
"ece5": {"pointname": "ece5", "tree": null, "method": "ptdata"},
"ece6": {"pointname": "ece6", "tree": null, "method": "ptdata"},
"ece7": {"pointname": "ece7", "tree": null, "method": "ptdata"},
"ece8": {"pointname": "ece8", "tree": null, "method": "ptdata"},
"ece9": {"pointname": "ece9", "tree": null, "method": "ptdata"},
"ece10": {"pointname": "ece10", "tree": null, "method": "ptdata"},
"ece11": {"pointname": "ece11", "tree": null, "method": "ptdata"},
"ece12": {"pointname": "ece12", "tree": null, "method": "ptdata"},
"ece13": {"pointname": "ece13", "tree": null, "method": "ptdata"},
"ece14": {"pointname": "ece14", "tree": null, "method": "ptdata"},
"ece15": {"pointname": "ece15", "tree": null, "method": "ptdata"},
"ece16": {"pointname": "ece16", "tree": null, "method": "ptdata"},
"ece17": {"pointname": "ece17", "tree": null, "method": "ptdata"},
"ece18": {"pointname": "ece18", "tree": null, "method": "ptdata"},
"ece19": {"pointname": "ece19", "tree": null, "method": "ptdata"},
"ece20": {"pointname": "ece20", "tree": null, "method": "ptdata"},
"ece21": {"pointname": "ece21", "tree": null, "method": "ptdata"},
"ece22": {"pointname": "ece22", "tree": null, "method": "ptdata"},
"ece23": {"pointname": "ece23", "tree": null, "method": "ptdata"},
"ece24": {"pointname": "ece24", "tree": null, "method": "ptdata"},
"ece25": {"pointname": "ece25", "tree": null, "method": "ptdata"},
"ece26": {"pointname": "ece26", "tree": null, "method": "ptdata"},
"ece27": {"pointname": "ece27", "tree": null, "method": "ptdata"},
"ece28": {"pointname": "ece28", "tree": null, "method": "ptdata"},
"ece29": {"pointname": "ece29", "tree": null, "method": "ptdata"},
"ece30": {"pointname": "ece30", "tree": null, "method": "ptdata"},
"ece31": {"pointname": "ece31", "tree": null, "method": "ptdata"},
"ece32": {"pointname": "ece32", "tree": null, "method": "ptdata"},
"ece33": {"pointname": "ece33", "tree": null, "method": "ptdata"},
"ece34": {"pointname": "ece34", "tree": null, "method": "ptdata"},
"ece35": {"pointname": "ece35", "tree": null, "method": "ptdata"},
"ece36": {"pointname": "ece36", "tree": null, "method": "ptdata"},
"ece37": {"pointname": "ece37", "tree": null, "method": "ptdata"},
"ece38": {"pointname": "ece38", "tree": null, "method": "ptdata"},
"ece39": {"pointname": "ece39", "tree": null, "method": "ptdata"},
"ece40": {"pointname": "ece40", "tree": null, "method": "ptdata"}
},
"history_block4_radiation": {
"_doc": "3 radiation signals x 4 stats = indices 430-441.",
"prad_tot": {"pointname": "PRAD_TOT", "tree": null, "method": "ptdata", "notes": "Jesse uses ptdata PRAD_TOT (FetchECEAndPrad); may be absent for some shots"},
"prad_divl": {"pointname": "\\PRAD_DIVL", "tree": "SPECTROSCOPY", "method": "tree", "notes": "was ptdata in v1; Jesse uses SPECTROSCOPY tree (FetchBolometer); may need atlas.gat.com"},
"prad_divu": {"pointname": "\\PRAD_DIVU", "tree": "SPECTROSCOPY", "method": "tree", "notes": "was ptdata in v1; Jesse uses SPECTROSCOPY tree (FetchBolometer); may need atlas.gat.com"}
},
"history_block5_edensfit89_target": {
"_doc": "1 signal x 4 stats = indices 442-445.",
"edensfit89": {
"pointname": "PROFILES.EDENSFIT",
"tree": "ZIPFIT01",
"method": "zipfit_column",
"column_index": 89,
"notes": "was ptdata EDENSFIT89 in v1; Jesse fetches 2D ZIPFIT01 PROFILES.EDENSFIT and slices col 89"
}
},
"history_block6_pedestal_targets": {
"_doc": "3 ZIPFIT profile-derived signals x 4 stats = indices 446-457. Used by v2_458 bundles only.",
"te_ped": {
"pointname": "PROFILES.ETEMPFIT",
"tree": "ZIPFIT01",
"method": "zipfit_column",
"column_index": 89,
"notes": "electron temperature pedestal proxy from ETEMPFIT rho column 89"
},
"ti_ped": {
"pointname": "PROFILES.ITEMPFIT",
"tree": "ZIPFIT01",
"method": "zipfit_column",
"column_index": 89,
"notes": "ion temperature pedestal proxy from ITEMPFIT rho column 89"
},
"t_rot_ped": {
"pointname": "PROFILES.TROTFIT",
"tree": "ZIPFIT01",
"method": "zipfit_column",
"column_index": 89,
"notes": "toroidal rotation pedestal proxy from TROTFIT rho column 89"
}
},
"fpe_signals": {
"_doc": "32 FPE actuator channels (real-time input to FPE encoder). Order matches normalization_params.json.",
"_order": [
"pohm", "pinj", "tinj", "ech_total",
"f1a", "f2a", "f3a", "f4a", "f5a", "f6a", "f7a", "f8a", "f9a",
"f1b", "f2b", "f3b", "f4b", "f5b", "f6b", "f7b", "f8b", "f9b",
"ecoila", "ecoilb",
"gasa_cal", "gasb_cal", "gasc_cal", "gasd_cal", "gase_cal",
"ip", "ipspr15v", "bt"
],
"_note": "These are a subset of block1 signals; use the same pointname/tree/method entries from block1."
},
"history_signal_order": {
"_doc": "Ordered list of signal names matching history_feature_order.txt. Used by _compute_shot_stats().",
"block1_67_signals": [
"kappa", "betap", "tribot", "tritop", "rmaxis", "zmaxis", "li",
"rvsin", "rvsout", "zvsin", "zvsout",
"pohm", "pinj", "tinj", "ech_total",
"pinj_15l", "pinj_15r", "pinj_21l", "pinj_21r",
"pinj_30l", "pinj_30r", "pinj_33l", "pinj_33r",
"tinj_15l", "tinj_15r", "tinj_21l", "tinj_21r",
"tinj_30l", "tinj_30r", "tinj_33l", "tinj_33r",
"f1a", "f2a", "f3a", "f4a", "f5a", "f6a", "f7a", "f8a", "f9a",
"f1b", "f2b", "f3b", "f4b", "f5b", "f6b", "f7b", "f8b", "f9b",
"ecoila", "ecoilb",
"e567up", "e567dn", "e89up", "e89dn",
"gasa_cal", "gasb_cal", "gasc_cal", "gasd_cal", "gase_cal",
"ip", "ipspr15v", "bt",
"density", "n1rms", "n2rms", "prad"
],
"block2_pedestal": ["pedestal"],
"block3_40_ece": [
"ece1", "ece2", "ece3", "ece4", "ece5", "ece6", "ece7", "ece8", "ece9", "ece10",
"ece11", "ece12", "ece13", "ece14", "ece15", "ece16", "ece17", "ece18", "ece19", "ece20",
"ece21", "ece22", "ece23", "ece24", "ece25", "ece26", "ece27", "ece28", "ece29", "ece30",
"ece31", "ece32", "ece33", "ece34", "ece35", "ece36", "ece37", "ece38", "ece39", "ece40"
],
"block4_3_radiation": ["prad_tot", "prad_divl", "prad_divu"],
"block5_edensfit89": ["edensfit89"],
"block6_pedestal_targets": ["te_ped", "ti_ped", "t_rot_ped"]
},
"_v2_changelog": {
"_doc": "Every change from signal_map.json (v1) with rationale.",
"method_changed": {
"li": "EFIT01 tree -> ptdata efsli (FetchRawData.py line 77)",
"pohm": "ptdata POHM -> EFIT01 tree RESULTS.AEQDSK.POH (FetchRawData.py line 69)",
"density": "ELECTRONS tree -> ptdata dssdenest (FetchRawData.py line 88)",
"gasa_cal": "ptdata GASA_CAL -> NEUTRALS tree GASFLOW.GASA:FLOW (FetchRawData.py line 116)",
"gasb_cal": "ptdata -> NEUTRALS tree (same pattern)",
"gasc_cal": "ptdata -> NEUTRALS tree (same pattern)",
"gasd_cal": "ptdata -> NEUTRALS tree (same pattern)",
"gase_cal": "ptdata -> NEUTRALS tree (same pattern)",
"ece1-ece40": "ECE tree ECE01..ECE40 -> ptdata ece1..ece40 (FetchECEAndPrad.py)",
"prad_divl": "ptdata PRAD_DIVL -> SPECTROSCOPY tree (FetchBolometer.py)",
"prad_divu": "ptdata PRAD_DIVU -> SPECTROSCOPY tree (FetchBolometer.py)",
"pedestal": "ptdata EDENSFIT100 -> zipfit_column (ZIPFIT01 col 100)",
"edensfit89":"ptdata EDENSFIT89 -> zipfit_column (ZIPFIT01 col 89)"
},
"pointname_changed": {
"pinj": "PINJ -> bmspinj",
"tinj": "TINJ -> bmstinj",
"pinj_15l": "PINJ_15L -> bmspinj15l (and all 8 beam ports)",
"tinj_15l": "TINJ_15L -> bmstinj15l (and all 8 beam ports)",
"n1rms": "N1RMS -> nssampn1l",
"n2rms": "N2RMS -> nssampn2l",
"ech_total": "ECHPWRC -> ECHPWR",
"ipspr15v": "IPSPR15V -> ipspr15V (case fix)",
"bt": "BT -> bt (case fix)"
},
"node_path_changed": {
"kappa": "KAPPA -> RESULTS.AEQDSK.KAPPA (full EFIT path)",
"betap": "BETAP -> RESULTS.AEQDSK.BETAP",
"tribot": "TRIBOT -> RESULTS.AEQDSK.TRIBOT",
"tritop": "TRITOP -> RESULTS.AEQDSK.TRITOP",
"rmaxis": "RMAXIS -> RESULTS.AEQDSK.R0",
"zmaxis": "ZMAXIS -> RESULTS.AEQDSK.Z0",
"rvsin": "RVSIN -> RESULTS.AEQDSK.RVSIN",
"rvsout": "RVSOUT -> RESULTS.AEQDSK.RVSOUT",
"zvsin": "ZVSIN -> RESULTS.AEQDSK.ZVSIN",
"zvsout": "ZVSOUT -> RESULTS.AEQDSK.ZVSOUT"
},
"unchanged": [
"f1a-f9b (PTDATA, correct in v1)",
"ecoila, ecoilb (PTDATA, correct in v1)",
"e567up, e567dn, e89up, e89dn (PTDATA, correct in v1)",
"ip (PTDATA IP, correct in v1)",
"prad (PTDATA PRAD, correct in v1)",
"prad_tot (PTDATA PRAD_TOT, same in both — may still be broken for some shots)"
]
}
}