diff --git a/omas/machine_mappings/d3d.json b/omas/machine_mappings/d3d.json index bb8c035d..6defa4f4 100644 --- a/omas/machine_mappings/d3d.json +++ b/omas/machine_mappings/d3d.json @@ -11,6 +11,7 @@ "analysis_type": "CERQUICK", "default_tree": "D3D", "fast_ece": false, + "get_all": true, "nref": 0, "revision": "BLESSED", "PROFILES_run_id": null, @@ -115,6 +116,9 @@ "coils_non_axisymmetric.coil.:.name": { "PYTHON": "coils_non_axisymmetric_hardware(ods, {pulse})" }, + "core_profiles": { + "PYTHON": "core_profiles_profile_1d(ods, {pulse}, {PROFILES_tree!r})" + }, "core_profiles.global_quantities.v_loop": { "COCOSIO": 11, "PYTHON": "core_profiles_global_quantities_data(ods, {pulse})" @@ -333,6 +337,9 @@ "ece.channel.:.t_e.data": { "PYTHON": "electron_cyclotron_emission_data(ods, {pulse}, {fast_ece!r})" }, + "ece.channel.:.t_e.data_error_upper": { + "PYTHON": "electron_cyclotron_emission_data(ods, {pulse}, {fast_ece!r})" + }, "ece.channel.:.time": { "PYTHON": "electron_cyclotron_emission_hardware(ods, {pulse}, {fast_ece!r})" }, @@ -359,6 +366,1036 @@ "ece.line_of_sight.second_point.z": { "PYTHON": "electron_cyclotron_emission_hardware(ods, {pulse}, {fast_ece!r})" }, + "equilibrium": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r})" + }, + "equilibrium.code.parameters": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r})" + }, + "equilibrium.code.parameters.time_slice.:": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r})" + }, + "equilibrium.code.parameters.time_slice.:.auxquantities.degrees_of_freedom": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.auxquantities.num_fit_variables": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.auxquantities.num_hard_constraints": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.auxquantities.num_input_data": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.auxquantities.sigxxj": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.alphafp": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.bitec": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.bitfc": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.bitip": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.bitmpi": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.brsp": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.btor": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.calpa": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.cgama": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.coils": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.currn1": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.denr": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.denv": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.dflux": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.dmass": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.dnbeam": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.dpsiecn": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.ecurrt": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.efitversion": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.elomin": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.errmag": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.errmagb": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.errmin": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.error": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.expmp2": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.fcurbd": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.ff2bdry": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.ffbdry": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.ffknt": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.fftens": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.fitfcsum": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.fitsiref": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.fitzts": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.fwtbp": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.fwtcur": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.fwtdlc": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.fwtec": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.fwtfc": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.fwtfcsum": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.fwtmp2": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.fwtpre": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.fwtqa": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.fwtsi": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.iavem": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.iaveus": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.ibtcomp": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.iconvr": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.icprof": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.icutfp": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.iecurr": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.ierchk": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.ifcurr": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.ifindopt": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.ifitvs": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.imagsigma": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.input_dir": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.iout": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.iplcout": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.iplim": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.ishot": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.isolve": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.itek": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.itime": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.itimeu": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.itrace": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.ixray": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kbound": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kcalpa": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kcgama": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kedgef": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kedgep": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.keehord": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.keqdsk": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kersil": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kff2bdry": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kffbdry": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kffcur": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kfffnc": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kffhord": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kffknt": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kframe": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kpp2bdry": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kppbdry": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kppcur": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kppfnc": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kpphord": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kppknt": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kprfit": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kskipvs": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.ktear": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kwripre": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kww2bdry": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kwwbdry": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kwwfnc": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kwwknt": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.kzeroj": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.limitr": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.mxiter": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.n1coil": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.nbdry": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.nbdrymx": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.nbeam": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.ndokin": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.nextra": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.nmass": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.npress": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.pbeam": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.pcurbd": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.plasma": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.pnbeam": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.pp2bdry": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.ppbdry": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.ppknt": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.pptens": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.pressr": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.psibit": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.psiecn": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.qvfit": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.rbdry": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.rcentr": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.relax": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.req_valid": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.rpress": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.rzeroj": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.saicon": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.saimin": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.scrape": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.serror": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.sibeam": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.sigdlc": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.sigpre": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.siloplim": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.siref": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.store_dir": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.table_dir": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.tolbndpsi": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.use_previous": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.vbit": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.vloop": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.vsdamp": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.ww2bdry": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.wwbdry": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.wwknt": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.wwtens": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.xalpa": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.xgama": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.xltype": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.xltype_180": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.zbdry": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.in1.zelip": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.aa1gam": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.aa2gam": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.aa3gam": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.aa4gam": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.aa5gam": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.aa6gam": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.aa7gam": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.dtmsefull": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.fwtgam": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.kwaitmse": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.mse_certree": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.mse_quiet": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.mse_spave_on": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.mse_strict": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.mse_use_cer210": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.mse_use_cer330": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.mse_usecer": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.msebkp": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.msefitfun": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.ok_210lt": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.ok_30rt": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.rrrgam": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.sgamma": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.t_max_beam_off": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.tgamma": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.tgammauncor": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.v210lt": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.v210rt": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.v30lt": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.v30rt": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.ins.zzzgam": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.currc139": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.currc199": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.currc79": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.curril150": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.curril30": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.curril90": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.curriu150": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.curriu30": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.curriu90": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.errdelz": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.fitdelz": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.fwtxxj": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.ifitdelz": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.nccoil": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.nicoil": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.oldccomp": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.oldcomp": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.psiwant": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.relaxdz": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.rexpan": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.scaledz": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.sizeroj": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.vzeroj": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.code.parameters.time_slice.:.inwant.znose": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.ids_properties.comment": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.ids_properties.homogeneous_time": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.boundary.outline.r": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.boundary.outline.z": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.boundary.x_point.:": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r})" + }, + "equilibrium.time_slice.:.boundary.x_point.:.r": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.boundary.x_point.:.z": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.bpol_probe.:": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r})" + }, + "equilibrium.time_slice.:.constraints.bpol_probe.:.chi_squared": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.bpol_probe.:.exact": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.bpol_probe.:.measured": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.bpol_probe.:.reconstructed": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.bpol_probe.:.weight": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.chi_squared_total": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.diamagnetic_flux.exact": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.diamagnetic_flux.measured": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.diamagnetic_flux.measured_error_upper": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.flux_loop.:": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r})" + }, + "equilibrium.time_slice.:.constraints.flux_loop.:.chi_squared": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.flux_loop.:.exact": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.flux_loop.:.measured": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.flux_loop.:.reconstructed": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.flux_loop.:.weight": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.ip.exact": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.ip.measured": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.ip.reconstructed": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.mse_polarisation_angle.:": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r})" + }, + "equilibrium.time_slice.:.constraints.mse_polarisation_angle.:.chi_squared": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.mse_polarisation_angle.:.exact": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.mse_polarisation_angle.:.measured": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.mse_polarisation_angle.:.measured_error_upper": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.mse_polarisation_angle.:.reconstructed": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.mse_polarisation_angle.:.weight": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.pf_current.:": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r})" + }, + "equilibrium.time_slice.:.constraints.pf_current.:.exact": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.pf_current.:.measured": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.pf_current.:.reconstructed": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.pf_current.:.weight": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.pressure.:": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r})" + }, + "equilibrium.time_slice.:.constraints.pressure.:.chi_squared": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.pressure.:.exact": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.pressure.:.measured": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.pressure.:.measured_error_upper": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.constraints.pressure.:.reconstructed": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.convergence.grad_shafranov_deviation_expression.description": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.convergence.grad_shafranov_deviation_expression.index": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.convergence.grad_shafranov_deviation_expression.name": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.convergence.grad_shafranov_deviation_value": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.convergence.iterations_n": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.global_quantities.area": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.global_quantities.beta_normal": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.global_quantities.beta_pol": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.global_quantities.beta_tor": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.global_quantities.ip": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.global_quantities.li_3": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.global_quantities.magnetic_axis.b_field_tor": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.global_quantities.magnetic_axis.r": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.global_quantities.magnetic_axis.z": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.global_quantities.psi_axis": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.global_quantities.psi_boundary": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.global_quantities.q_95": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.global_quantities.q_axis": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.global_quantities.q_min.rho_tor_norm": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.global_quantities.q_min.value": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.area": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.b_field_average": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.b_field_max": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.b_field_min": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.centroid.r": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.centroid.r_max": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.centroid.r_min": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.centroid.z": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.darea_dpsi": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.darea_drho_tor": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.dpressure_dpsi": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.dpsi_drho_tor": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.dvolume_dpsi": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.dvolume_drho_tor": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.elongation": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.f": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.f_df_dpsi": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.geometric_axis.r": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.geometric_axis.z": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.gm1": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.gm2": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.gm5": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.gm8": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.gm9": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.j_tor": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.phi": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.pressure": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.psi": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.q": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.r_inboard": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.r_outboard": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.rho_tor": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.rho_tor_norm": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.squareness_lower_inner": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.squareness_lower_outer": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.squareness_upper_inner": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.squareness_upper_outer": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.surface": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.trapped_fraction": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.triangularity_lower": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.triangularity_upper": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_1d.volume": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_2d.:": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r})" + }, + "equilibrium.time_slice.:.profiles_2d.:.b_field_r": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_2d.:.b_field_tor": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_2d.:.b_field_z": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_2d.:.grid.dim1": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_2d.:.grid.dim2": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_2d.:.grid_type.index": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_2d.:.phi": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.profiles_2d.:.psi": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.time_slice.:.time": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.vacuum_toroidal_field.b0": { + "COCOSIO": 11, + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "equilibrium.vacuum_toroidal_field.r0": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, "gas_injection.pipe.:": { "PYTHON": "gas_injection_hardware(ods, {pulse})" }, @@ -697,26 +1734,26 @@ "wall.description_2d.:": { "VALUE": 1 }, + "wall.description_2d.:.limiter.type.description": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "wall.description_2d.:.limiter.type.index": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "wall.description_2d.:.limiter.type.name": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, "wall.description_2d.:.limiter.unit.:": { "VALUE": 1 }, "wall.description_2d.:.limiter.unit.:.outline.r": { - "TDI": "transpose(data(\\{EFIT_tree}::TOP.RESULTS.GEQDSK.LIM)[0,])", - "TRANSPOSE": [ - 1, - 0, - 2 - ], - "treename": "{EFIT_tree}" + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" }, "wall.description_2d.:.limiter.unit.:.outline.z": { - "TDI": "transpose(data(\\{EFIT_tree}::TOP.RESULTS.GEQDSK.LIM)[1,])", - "TRANSPOSE": [ - 1, - 0, - 2 - ], - "treename": "{EFIT_tree}" + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" + }, + "wall.time": { + "PYTHON": "equilibrium_special(ods, {pulse}, {EFIT_tree!r}, {get_all!r})" }, "wall.ids_properties.homogeneous_time": { "VALUE": 1 diff --git a/omas/machine_mappings/d3d.py b/omas/machine_mappings/d3d.py index 1dbe35ba..938cbc66 100644 --- a/omas/machine_mappings/d3d.py +++ b/omas/machine_mappings/d3d.py @@ -13,6 +13,7 @@ from omas.omas_physics import omas_environment import copy + __all__ = [] __regression_arguments__ = {'__all__': __all__} @@ -787,6 +788,12 @@ def electron_cyclotron_emission_data(ods, pulse=133221, fast_ece=False, _measure for ich in range(1, N_ch + 1): query[f'T{ich}'] = TECE + '{0:02d}'.format(ich) ece_data = mdsvalue('d3d', treename='ELECTRONS', pulse=pulse, TDI=query).raw() + ece_uncertainty = {} + for key in ece_data: + # Calculate uncertainties and convert to eV + # Assumes 7% calibration error (optimisitic) + Poisson uncertainty + ece_uncertainty[key] = np.sqrt(np.abs(ece_data[key] * 1.e3)) + 70 * np.abs(ece_data[key]) + ods['ece.ids_properties.homogeneous_time'] = 0 # Not in mds+ if not _measurements: @@ -807,7 +814,8 @@ def electron_cyclotron_emission_data(ods, pulse=133221, fast_ece=False, _measure for ich in range(N_ch): ch = ods['ece']['channel'][ich] if _measurements: - ch['t_e']['data'] = ece_data[f'T{ich + 1}'] * 1.0e3 + ch['t_e']['data'] = unumpy.uarray(ece_data[f'T{ich + 1}'] * 1.0e3, + ece_uncertainty[f'T{ich + 1}'] )# Already converted else: ch['name'] = 'ECE' + str(ich + 1) ch['identifier'] = TECE + '{0:02d}'.format(ich + 1) @@ -1040,6 +1048,8 @@ def langmuir_probes_data(ods, pulse, _get_measurements=True): if data_present[i]: try: r = mdsvalue('d3d', pulse=pulse, treename='langmuir', TDI=r'\langmuir::top.probe_{:03d}.r'.format(i)).data() + if r is None: + raise ValueError() except Exception: continue if r > 0: @@ -1359,6 +1369,42 @@ def ip_bt_dflux_data(ods, pulse): ods['tf.b_field_tor_vacuum_r.data'] *= 1.6955 +@machine_mapping_function(__regression_arguments__, pulse=19438702, EFIT_tree="EFIT") +def equilibirum_time(ods, pulse, EFIT_tree="EFIT"): + unwrap(equilibrium_special)(ods, pulse, EFIT_tree, False) + + +@machine_mapping_function(__regression_arguments__, pulse=19438702, EFIT_tree="EFIT", get_all=True) +def equilibrium_special(ods, pulse, EFIT_tree="EFIT", get_all=True): + from omfit_classes.omfit_eqdsk import from_mds_plus, OMFITkeqdsk + times = mdsvalue('d3d', treename=EFIT_tree, pulse=pulse, TDI="\\TOP.RESULTS.GEQDSK.GTIME").raw() + if times is None: + print("No mds+ data") + raise ValueError(f"Could not find any data in MDS+ for {pulse} and {EFIT_tree}") + ods["equilibrium.ids_properties.homogeneous_time"] = 1 + ods["equilibrium.time"]= times / 1.e3 + if get_all == False: + return + for i_time, time in enumerate(times): + ods[f"equilibrium.time_slice[{i_time}].time"] = time / 1.e3 + kfiles = mdsvalue('d3d', treename=EFIT_tree, pulse=pulse, TDI="\\TOP.NAMELISTS.KEQDSKS").raw() # + eq = from_mds_plus(device="d3d", shot=pulse, times=times, + exact=True, snap_file=EFIT_tree, get_afile=False, get_mfile=True, + show_missing_data_warnings=None, close=True) + for time_index, time in enumerate(times): + kstrstr = '\n'.join(list(kfiles[time_index])) + kEQDSK = OMFITkeqdsk(f'k{pulse}.{time_index}',fromString=kstrstr) + kEQDSK.to_omas(ods, time_index=time_index) + eq['gEQDSK'][time].to_omas(ods, time_index=time_index) + ods = eq['mEQDSK'][time].to_omas(ods, time_index=time_index) + if (np.abs(ods[f"equilibrium.time_slice[{time_index}].global_quantities.ip"] - + ods[f"equilibrium.code.parameters.time_slice.{time_index}.in1.plasma"]) > + np.abs(0.08*ods[f"equilibrium.time_slice[{time_index}].global_quantities.ip"])): + raise ValueError("Cannot reconstruct contraints, current constraints not met.") + ods[f"equilibrium.code.parameters.time_slice.{time_index}.inwant.vzeroj"] *= \ + ods[f"equilibrium.time_slice[{time_index}].global_quantities.ip"] /\ + ods[f"equilibrium.time_slice[{time_index}].global_quantities.area"] + def add_extra_profile_structures(): extra_structures = {} @@ -1411,6 +1457,7 @@ def core_profiles_profile_1d(ods, pulse, PROFILES_tree="OMFIT_PROFS", PROFILES_r query["electrons.temperature_fit.psi_norm"] = "PS_T_E" query["ion[1].density_fit.psi_norm"] = "PS_N_C" query["ion[1].temperature_fit.psi_norm"] = "PS_T_C" + query["ion[1].density_fit.psi_norm"] = "PS_T_C" query["ion[1].velocity.toroidal_fit.psi_norm"]= "PS_V_TOR_C" #query["j_total"] = "J_TOT" #query["pressure_perpendicular"] = "P_TOT" @@ -1426,12 +1473,14 @@ def core_profiles_profile_1d(ods, pulse, PROFILES_tree="OMFIT_PROFS", PROFILES_r print("No mds+ data") raise ValueError(f"Could not find any data in MDS+ for {pulse} and {PROFILES_tree}") dim_info = mdsvalue('d3d', treename=PROFILES_tree, pulse=pulse_id, TDI="\\TOP.n_e") + data['time'] = dim_info.dim_of(1) * 1.e-3 psi_n = dim_info.dim_of(0) data['grid.rho_pol_norm'] = np.zeros((data['time'].shape + psi_n.shape)) data['grid.rho_pol_norm'][:] = np.sqrt(psi_n) # for density_thermal in densities: # data[density_thermal] *= 1.e6 + for unc in ["", "_error_upper"]: data[f"ion[0].velocity.toroidal{unc}"] = data[f"ion[1].velocity.toroidal{unc}"] ods["core_profiles.time"] = data['time'] @@ -1451,8 +1500,9 @@ def core_profiles_profile_1d(ods, pulse, PROFILES_tree="OMFIT_PROFS", PROFILES_r print(data[entry][i_time]) print("================ ERROR =================") print(data[entry + "_error_upper"][i_time]) + print(data[entry][i_time].shape, - data[entry + "_error_upper"][i_time].shape) + data[entry + "_error_upper"][i_time].shape) print(e) for entry in normal_entries: if isinstance(data[entry], Exception): @@ -1470,9 +1520,7 @@ def core_profiles_profile_1d(ods, pulse, PROFILES_tree="OMFIT_PROFS", PROFILES_r ods[f"{sh}[{i_time}].ion[1].element[0].z_n"] = 6 ods[f"{sh}[{i_time}].ion[1].element[0].a"] = 12.011 ods[f"{sh}[{i_time}].ion[0].label"] = "D" - ods[f"{sh}[{i_time}].ion[1].label"] = "C" - ods[f"{sh}[{i_time}].electrons.density_thermal"] = copy.deepcopy(ods[f"{sh}[{i_time}].electrons.density"]) - ods[f"{sh}[{i_time}].electrons.density_thermal_error_upper"] = copy.deepcopy(ods[f"{sh}[{i_time}].electrons.density_error_upper"]) + ods[f"{sh}[{i_time}].ion[1].label"] = "C" else: profiles_node = '\\TOP.PROFILES.' query = { @@ -1480,7 +1528,7 @@ def core_profiles_profile_1d(ods, pulse, PROFILES_tree="OMFIT_PROFS", PROFILES_r "electrons.temperature": "ETEMPFIT"#, # "ion[0].density_thermal": "ZDENSFIT", # Need to deal with different times #"ion[0].temperature": "ITEMPFIT", # Need to deal with different times - #"ion[1].velocity.toroidal": "TROTFIT",# Need to check units/meaning rot freq vs velocity + #"ion[1].velocity.toroidal": "TROTFIT",# Need to check units/meaning rot freq vs velocityr } for entry in query: query[entry] = profiles_node + query[entry] @@ -1504,6 +1552,8 @@ def core_profiles_profile_1d(ods, pulse, PROFILES_tree="OMFIT_PROFS", PROFILES_r continue for i_time, time in enumerate(data["time"]): ods[f"core_profiles.profiles_1d[{i_time}]."+entry] = data[entry][mask_dict[entry]][i_time] + ods[f"{sh}[{i_time}].electrons.density"] = copy.deepcopy(ods[f"{sh}[{i_time}].electrons.density_thermal"]) + ods[f"{sh}[{i_time}].electrons.density_error_upper"] = copy.deepcopy(ods[f"{sh}[{i_time}].electrons.density_thermal_error_upper"]) #Needed for ion components #for i_time, time in enumerate(data["time"]): # ods[f"{sh}[{i_time}].ion[0].element[0].z_n"] = 1 @@ -1540,6 +1590,5 @@ def core_profiles_global_quantities_data(ods, pulse, PROFILES_tree="ZIPFIT01", P gq['v_loop'] = interp1d(m.dim_of(0) * 1e-3, m.data(), bounds_error=False, fill_value=np.nan)(t) -# ================================ if __name__ == '__main__': test_machine_mapping_functions('d3d', ["core_profiles_profile_1d"], globals(), locals()) diff --git a/omas/omas_machine.py b/omas/omas_machine.py index ef8e8140..4fabfc98 100644 --- a/omas/omas_machine.py +++ b/omas/omas_machine.py @@ -3,9 +3,9 @@ import subprocess import functools import shutil -from .omas_utils import * -from .omas_core import ODS, dynamic_ODS, omas_environment, omas_info_node, imas_json_dir, omas_rcparams -from .omas_physics import cocos_signals +from omas.omas_utils import * +from omas.omas_core import ODS, dynamic_ODS, omas_environment, omas_info_node, imas_json_dir, omas_rcparams +from omas.omas_physics import cocos_signals from omas.machine_mappings import d3d, nstx, nstxu, east from omas.machine_mappings.d3d import __regression_arguments__ from omas.utilities.machine_mapping_decorator import machine_mapping_function @@ -21,7 +21,6 @@ except ImportError: pass - __all__ = [ 'machine_expression_types', 'machines', @@ -779,4 +778,3 @@ def load_omas_machine( print(location) machine_to_omas(ods, machine, pulse, location, options, branch) return ods - diff --git a/omas/omas_plot.py b/omas/omas_plot.py index 66ef9b74..825bf841 100644 --- a/omas/omas_plot.py +++ b/omas/omas_plot.py @@ -843,8 +843,11 @@ def get2d(contour_quantity): # Internal flux surfaces w/ or w/o masking if wall is not None: - for collection in cs.collections: - collection.set_clip_path(wall_path) + if hasattr(cs, "collections"): # Matplotlib < 3.10 + for collection in cs.collections: + collection.set_clip_path(wall_path) + else: + cs.set_clip_path(wall_path) # Wall if wall is not None and show_wall: @@ -974,7 +977,7 @@ def equilibrium_quality(ods, fig=None, **kw): :param ods: input ods :param fig: figure to plot in (a new figure is generated if `fig is None`) - """ + """ from matplotlib import pyplot axs = kw.pop('ax', {}) @@ -1113,6 +1116,7 @@ def equilibrium_summary(ods, time_index=None, time=None, fig=None, ggd_points_tr plot_1d_equilbrium_quantity(ax, x, eq['profiles_1d']['dpressure_dpsi'] * 1.e-3, xName, r'$P\,^\prime$ [kPa Wb$^{-1}$]', r"$P\,^\prime$ source function", visible_x=True, **kw) + if raw_xName.endswith('norm'): ax.set_xlim([0, 1]) if omas_viewer: @@ -1382,7 +1386,6 @@ def core_profiles_summary(ods, time_index=None, time=None, fig=None, ax.errorbar(x_data[mask], y_data[mask], y_data_err[mask], linestyle='', marker=".", color=(1.0, 0.0, 0.0, 0.3), zorder=-10, **kw) uband(x, y, ax=ax, **kw) - species_label = label_name[index].split()[0] species_label = species_label.replace("electron", "e") if "Temp" in label_name[index]: diff --git a/omas/tests/failed_imports.py b/omas/tests/failed_imports.py index f3b72c0a..f570bc23 100644 --- a/omas/tests/failed_imports.py +++ b/omas/tests/failed_imports.py @@ -57,6 +57,7 @@ up = get_mongo_credentials(server=omas_rcparams['default_mongo_server']) client = MongoClient(omas_rcparams['default_mongo_server'].format(**up), serverSelectionTimeoutMS=1000) client.server_info() + client.close() failed_MONGO = False except (ImportError, ServerSelectionTimeoutError) as _excp: failed_MONGO = _excp diff --git a/omas/utilities/machine_mapping_decorator.py b/omas/utilities/machine_mapping_decorator.py index 52286bb9..c95c5153 100644 --- a/omas/utilities/machine_mapping_decorator.py +++ b/omas/utilities/machine_mapping_decorator.py @@ -52,9 +52,7 @@ def machine_mapping_caller(*args, **kwargs): default_options = {item: value for item, value in default_options.items() if not item.startswith('_')} # call - update_mapping = None - if "update_callback" in kwargs: - update_mapping = kwargs.pop("update_callback") + update_mapping = kwargs.pop("update_callback", None) out = f(*args, **kwargs) #update mappings definitions if not update_mapping is None: