diff --git a/mappings/mast/groups.json b/mappings/mast/groups.json index ee9474e..6a80e93 100644 --- a/mappings/mast/groups.json +++ b/mappings/mast/groups.json @@ -5,10 +5,11 @@ "ahx": {"name": "hard_x_rays", "imas": "hard_x_rays"}, "ait": {"name": "camera_ir", "imas": "camera_ir"}, "alp": {"name": "langmuir_probes", "imas": "langmuir_probes"}, - "anb": {"name": "nbi", "imas": "nbi"}, - "ane": {"name": "interferometer", "imas": "interferometer"}, "amb": {"name": "magnetics_b", "imas": "magnetics"}, "amc": {"name": "magnetics", "imas": "magnetics"}, + "anb": {"name": "nbi", "imas": "nbi"}, + "ane": {"name": "interferometer", "imas": "interferometer"}, + "anu": {"name": "neutron_diagnostic", "imas": "neutron_diagnostic"}, "arp": {"name": "reciprocating_probe"}, "asm": {"name": "magnetics_saddle", "imas": "magnetics"}, "atm": {"name": "thomson_scattering", "imas": "thomson_scattering"}, @@ -25,7 +26,7 @@ "rir": {"name": "camera_ir", "imas": "camera_ir"}, "rzz": {"name": "camera_visible_bremsstrahlung_zebra", "imas": "camera_visible"}, "xbt": {"name": "bes"}, - "xdc": {"name": "controllers", "imas": "controllers"}, + "xdc": {"name": "pulse_schedule", "imas": "pulse_schedule"}, "xim": {"name": "spectrometer_visible", "imas": "spectrometer_visible"}, "xma": {"name": "magnetics_a", "imas": "magnetics"}, "xmc": {"name": "magnetics_c", "imas": "magnetics"}, diff --git a/mappings/mast/variables.json b/mappings/mast/variables.json index df5dded..32ed8d6 100644 --- a/mappings/mast/variables.json +++ b/mappings/mast/variables.json @@ -10,9 +10,14 @@ "ayc": { "r": "major_radius", "r_error": "major_radius_error", - "arb": "radial_index" - }, - "aye": { + "arb": "radial_index", + "te": "t_e", + "te_core": "t_e_core", + "ne": "n_e", + "ne_core": "n_e_core", + "pe": "p_e" + }, + "ayd": { "r": "major_radius", "r_error": "major_radius_error", "arb": "radial_index" diff --git a/mappings/mastu/dimensions.json b/mappings/mastu/dimensions.json index 0c6ba84..eeecc91 100644 --- a/mappings/mastu/dimensions.json +++ b/mappings/mastu/dimensions.json @@ -1,4 +1,65 @@ { + "act/cel3_radial_wavelength": { + "majorradius": "radial_major_radius" + }, + "act/cel3_radial_time": { + "majorradius": "radial_major_radius" + }, + "act/cel3_radial_pixel_number": { + "majorradius": "radial_major_radius" + }, + "act/cel3_radial_major_radius": { + "majorradius": "radial_major_radius" + }, + "act/cel3_radial_index": { + "majorradius": "radial_major_radius" + }, + "act/cel3_radial_counts_error": { + "majorradius": "radial_major_radius" + }, + "act/cel3_radial_counts": { + "majorradius": "radial_major_radius" + }, + "act/cel3_radial_ava_fit_min_wvl": { + "majorradius": "radial_major_radius" + }, + "act/cel3_radial_ava_fit_max_wvl": { + "majorradius": "radial_major_radius" + }, + "act/cel3_radial_ava_c5291_rest_wavelength": { + "majorradius": "radial_major_radius" + }, + "act/cel3_radial_ava_av_fits": { + "majorradius": "radial_major_radius" + }, + "act/cel3_radial_ava_av_counts_error": { + "majorradius": "radial_major_radius" + }, + "act/cel3_radial_ava_av_counts": { + "majorradius": "radial_major_radius" + }, + "act/cel3_bg_wavelength": { + "majorradius": "bg_major_radius" + }, + "act/cel3_bg_time": { + "majorradius": "bg_major_radius" + }, + "act/cel3_bg_pixel_number": { + "majorradius": "bg_major_radius" + }, + "act/cel3_bg_major_radius": { + "majorradius": "bg_major_radius" + }, + "act/cel3_bg_index": { + "majorradius": "bg_major_radius" + }, + "act/cel3_bg_counts_error": { + "majorradius": "bg_major_radius" + }, + "act/cel3_bg_counts": { + "majorradius": "bg_major_radius" + }, + "anb/sum_voltage": { "timetime": "time" }, @@ -17,6 +78,374 @@ "anb/ss_power": { "timetime": "time" }, + + "epm/output_separatrixgeometry_zboundary": { + "dim_0": "boundary_n" + }, + "epm/output_separatrixgeometry_xpointz": { + "dim_0": "xpoint_n" + }, + "epm/output_separatrixgeometry_xpointr": { + "dim_0": "xpoint_n" + }, + "epm/output_separatrixgeometry_xpointdim": { + "dim_0": "xpoint_n" + }, + "epm/output_separatrixgeometry_strikepointdim": { + "dim_0": "strikepoint_n" + }, + "epm/output_separatrixgeometry_strikepointr": { + "dim_0": "strikepoint_n" + }, + "epm/output_separatrixgeometry_strikepointz": { + "dim_0": "strikepoint_n" + }, + "epm/output_separatrixgeometry_rboundary": { + "dim_0": "boundary_n" + }, + "epm/output_separatrixgeometry_boundarycoordsdim": { + "dim_0": "boundary_n" + }, + "epm/output_radialprofiles_radialcoord": { + "dim_0": "r" + }, + "epm/output_radialprofiles_totalpressure": { + "dim_0": "r" + }, + "epm/output_radialprofiles_toroidalflux": { + "dim_0": "r" + }, + "epm/output_radialprofiles_staticpressure": { + "dim_0": "r" + }, + "epm/output_radialprofiles_staticpprime": { + "dim_0": "r" + }, + "epm/output_radialprofiles_rotationalpressure": { + "dim_0": "r" + }, + "epm/output_radialprofiles_r": { + "dim_0": "r" + }, + "epm/output_radialprofiles_q": { + "dim_0": "r" + }, + "epm/output_radialprofiles_poloidalarea": { + "dim_0": "r" + }, + "epm/output_radialprofiles_plasmavolume": { + "dim_0": "r" + }, + "epm/output_radialprofiles_plasmadensity": { + "dim_0": "r" + }, + "epm/output_radialprofiles_normalizedtoroidalflux": { + "dim_0": "r" + }, + "epm/output_radialprofiles_normalizedpoloidalflux": { + "dim_0": "r" + }, + "epm/output_radialprofiles_jphi": { + "dim_0": "r" + }, + "epm/output_radialprofiles_ffprime": { + "dim_0": "r" + }, + "epm/output_radialprofiles_bz": { + "dim_0": "r" + }, + "epm/output_radialprofiles_bt": { + "dim_0": "r" + }, + "epm/output_radialprofiles_br": { + "dim_0": "r" + }, + "epm/output_numericaldetails_poloidalfluxerror": { + "dim_0": "iterations" + }, + "epm/output_numericaldetails_maximumiterationcount": { + "dim_0": "iterations" + }, + "epm/output_numericaldetails_degreesoffreedom_pprimecoeffs": { + "dim_0": "pprime_n" + }, + "epm/output_numericaldetails_degreesoffreedom_pfcurrents": { + "dim_0": "pfcircuit_n" + }, + "epm/output_numericaldetails_degreesoffreedom_pfcircuitdim": { + "dim_0": "pfcircuit_n" + }, + "epm/output_numericaldetails_degreesoffreedom_pprimedim": { + "dim_0": "pprime_n" + }, + "epm/output_numericaldetails_degreesoffreedom_freepfcurrents": { + "dim_0": "pfcircuit_n" + }, + "epm/output_numericaldetails_degreesoffreedom_ffprimecoeffs": { + "dim_0": "ffprime_n" + }, + "epm/output_numericaldetails_degreesoffreedom_ffprimedim": { + "dim_0": "ffprime_n" + }, + "epm/output_numericaldetails_chisquared": { + "dim_0": "iterations" + }, + + "epm/input_pfsystem_pfcoils_zcentre": { + "dim_0": "pfcoils_n" + }, + "epm/input_pfsystem_pfcoils_turncount": { + "dim_0": "pfcoils_n" + }, + "epm/input_pfsystem_pfcoils_rcentre": { + "dim_0": "pfcoils_n" + }, + "epm/input_pfsystem_pfcoils_pfcoilelements": { + "dim_0": "pfcoils_n" + }, + "epm/input_pfsystem_pfcoils_dz": { + "dim_0": "pfcoils_n" + }, + "epm/input_pfsystem_pfcoils_dr": { + "dim_0": "pfcoils_n" + }, + "epm/input_pfsystem_pfcoils_coilid": { + "dim_0": "pfcoils_n" + }, + "epm/input_pfsystem_pfcoils_circuitid": { + "dim_0": "pfcoils_n" + }, + "epm/input_pfsystem_pfcoils_angle1": { + "dim_0": "pfcoils_n" + }, + "epm/input_pfsystem_pfcoils_angle2": { + "dim_0": "pfcoils_n" + }, + + "epm/input_pfsystem_passivestructures_zcentre": { + "dim_0": "passivestructures_n" + }, + "epm/input_pfsystem_passivestructures_turncount": { + "dim_0": "passivestructures_n" + }, + "epm/input_pfsystem_passivestructures_rcentre": { + "dim_0": "passivestructures_n" + }, + "epm/input_pfsystem_passivestructures_pfcoilelements": { + "dim_0": "passivestructures_n" + }, + "epm/input_pfsystem_passivestructures_dz": { + "dim_0": "passivestructures_n" + }, + "epm/input_pfsystem_passivestructures_dr": { + "dim_0": "passivestructures_n" + }, + "epm/input_pfsystem_passivestructures_coilid": { + "dim_0": "passivestructures_n" + }, + "epm/input_pfsystem_passivestructures_circuitid": { + "dim_0": "passivestructures_n" + }, + "epm/input_pfsystem_passivestructures_angle1": { + "dim_0": "passivestructures_n" + }, + "epm/input_pfsystem_passivestructures_angle2": { + "dim_0": "passivestructures_n" + }, + "epm/input_pfsystem_passivestructures_passivestructureelements": { + "dim_0": "passivestructures_n" + }, + + "epm/input_numericalcontrols_ww_knt": { + "dim_0": "ww_knot_n" + }, + "epm/input_numericalcontrols_ww_knotdim": { + "dim_0": "ww_knot_n" + }, + "epm/input_numericalcontrols_ww_kbdry2": { + "dim_0": "ww_knot_n" + }, + "epm/input_numericalcontrols_ww_kbdry": { + "dim_0": "ww_knot_n" + }, + "epm/input_numericalcontrols_ww_bdry2": { + "dim_0": "ww_knot_n" + }, + "epm/input_numericalcontrols_ww_bdry": { + "dim_0": "ww_knot_n" + }, + + "epm/input_numericalcontrols_pp_knt": { + "dim_0": "pp_knot_n" + }, + "epm/input_numericalcontrols_pp_knotdim": { + "dim_0": "pp_knot_n" + }, + "epm/input_numericalcontrols_pp_kbdry2": { + "dim_0": "pp_knot_n" + }, + "epm/input_numericalcontrols_pp_kbdry": { + "dim_0": "pp_knot_n" + }, + "epm/input_numericalcontrols_pp_bdry2": { + "dim_0": "pp_knot_n" + }, + "epm/input_numericalcontrols_pp_bdry": { + "dim_0": "pp_knot_n" + }, + + "epm/input_numericalcontrols_ne_knt": { + "dim_0": "ne_knot_n" + }, + "epm/input_numericalcontrols_ne_knotdim": { + "dim_0": "ne_knot_n" + }, + "epm/input_numericalcontrols_ne_kbdry2": { + "dim_0": "ne_knot_n" + }, + "epm/input_numericalcontrols_ne_kbdry": { + "dim_0": "ne_knot_n" + }, + "epm/input_numericalcontrols_ne_bdry2": { + "dim_0": "ne_knot_n" + }, + "epm/input_numericalcontrols_ne_bdry": { + "dim_0": "ne_knot_n" + }, + + "epm/input_numericalcontrols_ffp_knt": { + "dim_0": "ffp_knot_n" + }, + "epm/input_numericalcontrols_ffp_knotdim": { + "dim_0": "ffp_knot_n" + }, + "epm/input_numericalcontrols_ffp_kbdry2": { + "dim_0": "ffp_knot_n" + }, + "epm/input_numericalcontrols_ffp_kbdry": { + "dim_0": "ffp_knot_n" + }, + "epm/input_numericalcontrols_ffp_bdry2": { + "dim_0": "ffp_knot_n" + }, + "epm/input_numericalcontrols_ffp_bdry": { + "dim_0": "ffp_knot_n" + }, + + "epm/input_limiter_zvalues": { + "dim_0": "limiter_n" + }, + "epm/input_limiter_rvalues": { + "dim_0": "limiter_n" + }, + "epm/input_limiter_limitercoord": { + "dim_0": "limiter_n" + }, + + "epm/input_constraints_pfcircuits_weights": { + "dim_0": "pfcircuit_n" + }, + "epm/input_constraints_pfcircuits_timeslicesource": { + "dim_0": "pfcircuit_n" + }, + "epm/input_constraints_pfcircuits_target": { + "dim_0": "pfcircuit_n" + }, + "epm/input_constraints_pfcircuits_strdim_shortname": { + "dim_0": "pfcircuit_name_n" + }, + "epm/input_constraints_pfcircuits_sigmas": { + "dim_0": "pfcircuit_n" + }, + "epm/input_constraints_pfcircuits_pfcircuitsdim": { + "dim_0": "pfcircuit_n" + }, + "epm/input_constraints_pfcircuits_id": { + "dim_0": "pfcircuit_n" + }, + "epm/input_constraints_pfcircuits_computed": { + "dim_0": "pfcircuit_n" + }, + "epm/input_constraints_magneticprobes_zcentre": { + "dim_0": "mag_probe_n" + }, + "epm/input_constraints_magneticprobes_weights": { + "dim_0": "mag_probe_n" + }, + "epm/input_constraints_magneticprobes_turncount": { + "dim_0": "mag_probe_n" + }, + "epm/input_constraints_magneticprobes_toroidalsector": { + "dim_0": "mag_probe_n" + }, + "epm/input_constraints_magneticprobes_toroidalangle": { + "dim_0": "mag_probe_n" + }, + "epm/input_constraints_magneticprobes_target": { + "dim_0": "mag_probe_n" + }, + "epm/input_constraints_magneticprobes_strdim_shortname": { + "dim_0": "mag_probe_name_n" + }, + "epm/input_constraints_magneticprobes_sigmas": { + "dim_0": "mag_probe_n" + }, + "epm/input_constraints_magneticprobes_rcentre": { + "dim_0": "mag_probe_n" + }, + "epm/input_constraints_magneticprobes_poloidalorientation": { + "dim_0": "mag_probe_n" + }, + "epm/input_constraints_magneticprobes_magneticprobedim": { + "dim_0": "mag_probe_n" + }, + "epm/input_constraints_magneticprobes_id": { + "dim_0": "mag_probe_n" + }, + "epm/input_constraints_magneticprobes_computed": { + "dim_0": "mag_probe_n" + }, + "epm/input_constraints_magneticprobes_axiallength": { + "dim_0": "mag_probe_n" + }, + "epm/input_constraints_magneticprobes_area": { + "dim_0": "mag_probe_n" + }, + + "epm/input_constraints_fluxloops_zvalues": { + "dim_0": "flux_loop_n" + }, + "epm/input_constraints_fluxloops_weights": { + "dim_0": "flux_loop_n" + }, + "epm/input_constraints_fluxloops_toroidalangleend": { + "dim_0": "flux_loop_n" + }, + "epm/input_constraints_fluxloops_toroidalanglebegin": { + "dim_0": "flux_loop_n" + }, + "epm/input_constraints_fluxloops_target": { + "dim_0": "flux_loop_n" + }, + "epm/input_constraints_fluxloops_strdim_shortname": { + "dim_0": "flux_loop_name_n" + }, + "epm/input_constraints_fluxloops_sigmas": { + "dim_0": "flux_loop_name_n" + }, + "epm/input_constraints_fluxloops_rvalues": { + "dim_0": "flux_loop_name_n" + }, + "epm/input_constraints_fluxloops_id": { + "dim_0": "flux_loop_name_n" + }, + "epm/input_constraints_fluxloops_fluxloopdim": { + "dim_0": "flux_loop_name_n" + }, + "epm/input_constraints_fluxloops_computed": { + "dim_0": "flux_loop_name_n" + }, + "epm/output_fluxfunctionprofiles_elongation": { "normalizedpoloidalflux": "normalized_poloidal_flux" }, @@ -128,5 +557,527 @@ }, "epm/output_profiles2d_z": { "zcoordinatesofcomputationalgrid": "z" + }, + + "epq/output_separatrixgeometry_zboundary": { + "dim_0": "boundary_n" + }, + "epq/output_separatrixgeometry_xpointz": { + "dim_0": "xpoint_n" + }, + "epq/output_separatrixgeometry_xpointr": { + "dim_0": "xpoint_n" + }, + "epq/output_separatrixgeometry_xpointdim": { + "dim_0": "xpoint_n" + }, + "epq/output_separatrixgeometry_strikepointdim": { + "dim_0": "strikepoint_n" + }, + "epq/output_separatrixgeometry_strikepointr": { + "dim_0": "strikepoint_n" + }, + "epq/output_separatrixgeometry_strikepointz": { + "dim_0": "strikepoint_n" + }, + "epq/output_separatrixgeometry_rboundary": { + "dim_0": "boundary_n" + }, + "epq/output_separatrixgeometry_boundarycoordsdim": { + "dim_0": "boundary_n" + }, + "epq/output_radialprofiles_radialcoord": { + "dim_0": "r" + }, + "epq/output_radialprofiles_totalpressure": { + "dim_0": "r" + }, + "epq/output_radialprofiles_toroidalflux": { + "dim_0": "r" + }, + "epq/output_radialprofiles_staticpressure": { + "dim_0": "r" + }, + "epq/output_radialprofiles_staticpprime": { + "dim_0": "r" + }, + "epq/output_radialprofiles_rotationalpressure": { + "dim_0": "r" + }, + "epq/output_radialprofiles_r": { + "dim_0": "r" + }, + "epq/output_radialprofiles_q": { + "dim_0": "r" + }, + "epq/output_radialprofiles_poloidalarea": { + "dim_0": "r" + }, + "epq/output_radialprofiles_plasmavolume": { + "dim_0": "r" + }, + "epq/output_radialprofiles_plasmadensity": { + "dim_0": "r" + }, + "epq/output_radialprofiles_normalizedtoroidalflux": { + "dim_0": "r" + }, + "epq/output_radialprofiles_normalizedpoloidalflux": { + "dim_0": "r" + }, + "epq/output_radialprofiles_jphi": { + "dim_0": "r" + }, + "epq/output_radialprofiles_ffprime": { + "dim_0": "r" + }, + "epq/output_radialprofiles_bz": { + "dim_0": "r" + }, + "epq/output_radialprofiles_bt": { + "dim_0": "r" + }, + "epq/output_radialprofiles_br": { + "dim_0": "r" + }, + "epq/output_numericaldetails_poloidalfluxerror": { + "dim_0": "iterations" + }, + "epq/output_numericaldetails_maximumiterationcount": { + "dim_0": "iterations" + }, + "epq/output_numericaldetails_degreesoffreedom_pprimecoeffs": { + "dim_0": "pprime_n" + }, + "epq/output_numericaldetails_degreesoffreedom_pfcurrents": { + "dim_0": "pfcircuit_n" + }, + "epq/output_numericaldetails_degreesoffreedom_pfcircuitdim": { + "dim_0": "pfcircuit_n" + }, + "epq/output_numericaldetails_degreesoffreedom_pprimedim": { + "dim_0": "pprime_n" + }, + "epq/output_numericaldetails_degreesoffreedom_freepfcurrents": { + "dim_0": "pfcircuit_n" + }, + "epq/output_numericaldetails_degreesoffreedom_ffprimecoeffs": { + "dim_0": "ffprime_n" + }, + "epq/output_numericaldetails_degreesoffreedom_ffprimedim": { + "dim_0": "ffprime_n" + }, + "epq/output_numericaldetails_chisquared": { + "dim_0": "iterations" + }, + + "epq/input_pfsystem_pfcoils_zcentre": { + "dim_0": "pfcoils_n" + }, + "epq/input_pfsystem_pfcoils_turncount": { + "dim_0": "pfcoils_n" + }, + "epq/input_pfsystem_pfcoils_rcentre": { + "dim_0": "pfcoils_n" + }, + "epq/input_pfsystem_pfcoils_pfcoilelements": { + "dim_0": "pfcoils_n" + }, + "epq/input_pfsystem_pfcoils_dz": { + "dim_0": "pfcoils_n" + }, + "epq/input_pfsystem_pfcoils_dr": { + "dim_0": "pfcoils_n" + }, + "epq/input_pfsystem_pfcoils_coilid": { + "dim_0": "pfcoils_n" + }, + "epq/input_pfsystem_pfcoils_circuitid": { + "dim_0": "pfcoils_n" + }, + "epq/input_pfsystem_pfcoils_angle1": { + "dim_0": "pfcoils_n" + }, + "epq/input_pfsystem_pfcoils_angle2": { + "dim_0": "pfcoils_n" + }, + + "epq/input_pfsystem_passivestructures_zcentre": { + "dim_0": "passivestructures_n" + }, + "epq/input_pfsystem_passivestructures_turncount": { + "dim_0": "passivestructures_n" + }, + "epq/input_pfsystem_passivestructures_rcentre": { + "dim_0": "passivestructures_n" + }, + "epq/input_pfsystem_passivestructures_pfcoilelements": { + "dim_0": "passivestructures_n" + }, + "epq/input_pfsystem_passivestructures_dz": { + "dim_0": "passivestructures_n" + }, + "epq/input_pfsystem_passivestructures_dr": { + "dim_0": "passivestructures_n" + }, + "epq/input_pfsystem_passivestructures_coilid": { + "dim_0": "passivestructures_n" + }, + "epq/input_pfsystem_passivestructures_circuitid": { + "dim_0": "passivestructures_n" + }, + "epq/input_pfsystem_passivestructures_angle1": { + "dim_0": "passivestructures_n" + }, + "epq/input_pfsystem_passivestructures_angle2": { + "dim_0": "passivestructures_n" + }, + "epq/input_pfsystem_passivestructures_passivestructureelements": { + "dim_0": "passivestructures_n" + }, + + "epq/input_numericalcontrols_ww_knt": { + "dim_0": "ww_knot_n" + }, + "epq/input_numericalcontrols_ww_knotdim": { + "dim_0": "ww_knot_n" + }, + "epq/input_numericalcontrols_ww_kbdry2": { + "dim_0": "ww_knot_n" + }, + "epq/input_numericalcontrols_ww_kbdry": { + "dim_0": "ww_knot_n" + }, + "epq/input_numericalcontrols_ww_bdry2": { + "dim_0": "ww_knot_n" + }, + "epq/input_numericalcontrols_ww_bdry": { + "dim_0": "ww_knot_n" + }, + + "epq/input_numericalcontrols_pp_knt": { + "dim_0": "pp_knot_n" + }, + "epq/input_numericalcontrols_pp_knotdim": { + "dim_0": "pp_knot_n" + }, + "epq/input_numericalcontrols_pp_kbdry2": { + "dim_0": "pp_knot_n" + }, + "epq/input_numericalcontrols_pp_kbdry": { + "dim_0": "pp_knot_n" + }, + "epq/input_numericalcontrols_pp_bdry2": { + "dim_0": "pp_knot_n" + }, + "epq/input_numericalcontrols_pp_bdry": { + "dim_0": "pp_knot_n" + }, + + "epq/input_numericalcontrols_ne_knt": { + "dim_0": "ne_knot_n" + }, + "epq/input_numericalcontrols_ne_knotdim": { + "dim_0": "ne_knot_n" + }, + "epq/input_numericalcontrols_ne_kbdry2": { + "dim_0": "ne_knot_n" + }, + "epq/input_numericalcontrols_ne_kbdry": { + "dim_0": "ne_knot_n" + }, + "epq/input_numericalcontrols_ne_bdry2": { + "dim_0": "ne_knot_n" + }, + "epq/input_numericalcontrols_ne_bdry": { + "dim_0": "ne_knot_n" + }, + + "epq/input_numericalcontrols_ffp_knt": { + "dim_0": "ffp_knot_n" + }, + "epq/input_numericalcontrols_ffp_knotdim": { + "dim_0": "ffp_knot_n" + }, + "epq/input_numericalcontrols_ffp_kbdry2": { + "dim_0": "ffp_knot_n" + }, + "epq/input_numericalcontrols_ffp_kbdry": { + "dim_0": "ffp_knot_n" + }, + "epq/input_numericalcontrols_ffp_bdry2": { + "dim_0": "ffp_knot_n" + }, + "epq/input_numericalcontrols_ffp_bdry": { + "dim_0": "ffp_knot_n" + }, + + "epq/input_limiter_zvalues": { + "dim_0": "limiter_n" + }, + "epq/input_limiter_rvalues": { + "dim_0": "limiter_n" + }, + "epq/input_limiter_limitercoord": { + "dim_0": "limiter_n" + }, + + "epq/input_constraints_pfcircuits_weights": { + "dim_0": "pfcircuit_n" + }, + "epq/input_constraints_pfcircuits_timeslicesource": { + "dim_0": "pfcircuit_n" + }, + "epq/input_constraints_pfcircuits_target": { + "dim_0": "pfcircuit_n" + }, + "epq/input_constraints_pfcircuits_strdim_shortname": { + "dim_0": "pfcircuit_name_n" + }, + "epq/input_constraints_pfcircuits_sigmas": { + "dim_0": "pfcircuit_n" + }, + "epq/input_constraints_pfcircuits_pfcircuitsdim": { + "dim_0": "pfcircuit_n" + }, + "epq/input_constraints_pfcircuits_id": { + "dim_0": "pfcircuit_n" + }, + "epq/input_constraints_pfcircuits_computed": { + "dim_0": "pfcircuit_n" + }, + "epq/input_constraints_magneticprobes_zcentre": { + "dim_0": "mag_probe_n" + }, + "epq/input_constraints_magneticprobes_weights": { + "dim_0": "mag_probe_n" + }, + "epq/input_constraints_magneticprobes_turncount": { + "dim_0": "mag_probe_n" + }, + "epq/input_constraints_magneticprobes_toroidalsector": { + "dim_0": "mag_probe_n" + }, + "epq/input_constraints_magneticprobes_toroidalangle": { + "dim_0": "mag_probe_n" + }, + "epq/input_constraints_magneticprobes_target": { + "dim_0": "mag_probe_n" + }, + "epq/input_constraints_magneticprobes_strdim_shortname": { + "dim_0": "mag_probe_name_n" + }, + "epq/input_constraints_magneticprobes_sigmas": { + "dim_0": "mag_probe_n" + }, + "epq/input_constraints_magneticprobes_rcentre": { + "dim_0": "mag_probe_n" + }, + "epq/input_constraints_magneticprobes_poloidalorientation": { + "dim_0": "mag_probe_n" + }, + "epq/input_constraints_magneticprobes_magneticprobedim": { + "dim_0": "mag_probe_n" + }, + "epq/input_constraints_magneticprobes_id": { + "dim_0": "mag_probe_n" + }, + "epq/input_constraints_magneticprobes_computed": { + "dim_0": "mag_probe_n" + }, + "epq/input_constraints_magneticprobes_axiallength": { + "dim_0": "mag_probe_n" + }, + "epq/input_constraints_magneticprobes_area": { + "dim_0": "mag_probe_n" + }, + + "epq/input_constraints_fluxloops_zvalues": { + "dim_0": "flux_loop_n" + }, + "epq/input_constraints_fluxloops_weights": { + "dim_0": "flux_loop_n" + }, + "epq/input_constraints_fluxloops_toroidalangleend": { + "dim_0": "flux_loop_n" + }, + "epq/input_constraints_fluxloops_toroidalanglebegin": { + "dim_0": "flux_loop_n" + }, + "epq/input_constraints_fluxloops_target": { + "dim_0": "flux_loop_n" + }, + "epq/input_constraints_fluxloops_strdim_shortname": { + "dim_0": "flux_loop_name_n" + }, + "epq/input_constraints_fluxloops_sigmas": { + "dim_0": "flux_loop_name_n" + }, + "epq/input_constraints_fluxloops_rvalues": { + "dim_0": "flux_loop_name_n" + }, + "epq/input_constraints_fluxloops_id": { + "dim_0": "flux_loop_name_n" + }, + "epq/input_constraints_fluxloops_fluxloopdim": { + "dim_0": "flux_loop_name_n" + }, + "epq/input_constraints_fluxloops_computed": { + "dim_0": "flux_loop_name_n" + }, + + "epq/output_fluxfunctionprofiles_elongation": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_ffprime": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_goutside": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_i": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_iota": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_iotaoutside": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_ioutside": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_javrg": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_lowertriangularity": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_normalizedpoloidalflux": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_normalizedtoroidalflux": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_plasmadensity": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_plasmafluxvolume": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_poloidalflux": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_poloidalfluxarea": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_poloidalfluxoutside": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_q": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_rbphi": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_rinboard": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_rotationalpprime": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_rotationalpressure": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_routboard": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_staticpprime": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_staticpressure": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_toroidalflux": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_fluxfunctionprofiles_uppertriangularity": { + "normalizedpoloidalflux": "normalized_poloidal_flux" + }, + "epq/output_profiles2d_bphi": { + "rcoordinatesofcomputationalgrid": "r", + "zcoordinatesofcomputationalgrid": "z" + }, + "epq/output_profiles2d_bpol": { + "rcoordinatesofcomputationalgrid": "r", + "zcoordinatesofcomputationalgrid": "z" + }, + "epq/output_profiles2d_br": { + "rcoordinatesofcomputationalgrid": "r", + "zcoordinatesofcomputationalgrid": "z" + }, + "epq/output_profiles2d_bz": { + "rcoordinatesofcomputationalgrid": "r", + "zcoordinatesofcomputationalgrid": "z" + }, + "epq/output_profiles2d_jphi": { + "rcoordinatesofcomputationalgrid": "r", + "zcoordinatesofcomputationalgrid": "z" + }, + "epq/output_profiles2d_poloidalflux": { + "rcoordinatesofcomputationalgrid": "r", + "zcoordinatesofcomputationalgrid": "z" + }, + "epq/output_profiles2d_psinorm": { + "rcoordinatesofcomputationalgrid": "r", + "zcoordinatesofcomputationalgrid": "z" + }, + "epq/output_profiles2d_r": { + "rcoordinatesofcomputationalgrid": "r" + }, + "epq/output_profiles2d_z": { + "zcoordinatesofcomputationalgrid": "z" + }, + "epq/input_constraints_mse_weights": { + "dim_0": "mse_n" + }, + "epq/input_constraints_mse_toroidalsector": { + "dim_0": "mse_n" + }, + "epq/input_constraints_mse_target": { + "dim_0": "mse_n" + }, + "epq/input_constraints_mse_sigmas": { + "dim_0": "mse_n" + }, + "epq/input_constraints_mse_r": { + "dim_0": "mse_n" + }, + "epq/input_constraints_mse_msechannelsdim": { + "dim_0": "mse_n" + }, + "epq/input_constraints_mse_id": { + "dim_0": "mse_n" + }, + "epq/input_constraints_mse_computed": { + "dim_0": "mse_n" + }, + "epq/input_constraints_mse_a6": { + "dim_0": "mse_n" + }, + "epq/input_constraints_mse_a5": { + "dim_0": "mse_n" + }, + "epq/input_constraints_mse_a4": { + "dim_0": "mse_n" + }, + "epq/input_constraints_mse_a3": { + "dim_0": "mse_n" + }, + "epq/input_constraints_mse_a2": { + "dim_0": "mse_n" + }, + "epq/input_constraints_mse_a1": { + "dim_0": "mse_n" } } \ No newline at end of file diff --git a/mappings/mastu/groups.json b/mappings/mastu/groups.json index b87efd3..85f5fa6 100644 --- a/mappings/mastu/groups.json +++ b/mappings/mastu/groups.json @@ -3,24 +3,30 @@ "act": {"name": "charge_exchange", "imas": "charge_exchange"}, "aga": {"name": "gas_injection", "imas": "gas_injection"}, "ahx": {"name": "hard_x_rays", "imas": "hard_x_rays"}, - "ait": {"name": "camera_ir", "imas": "camera_ir"}, + "ait": {"name": "camera_ir_t", "imas": "camera_ir"}, + "aiv": {"name": "camera_ir_v", "imas": "camera_ir"}, "alp": {"name": "langmuir_probes", "imas": "langmuir_probes"}, - "anb": {"name": "nbi", "imas": "nbi"}, - "ane": {"name": "interferometer", "imas": "interferometer"}, "amb": {"name": "magnetics_b", "imas": "magnetics"}, "amc": {"name": "magnetics", "imas": "magnetics"}, + "ams": {"name": "mse", "imas": "mse"}, + "anb": {"name": "nbi", "imas": "nbi"}, + "ane": {"name": "interferometer", "imas": "interferometer"}, + "anu": {"name": "neutron_diagnostic", "imas": "neutron_diagnostic"}, "asm": {"name": "magnetics_saddle", "imas": "magnetics"}, "ayc": {"name": "thomson_scattering", "imas": "thomson_scattering"}, "ayd": {"name": "thomson_scattering_divertor", "imas": "thomson_scattering"}, "epm": {"name": "equilibrium", "imas": "equilibrium"}, "epq": {"name": "equilibrium_kinematic", "imas": "equilibrium"}, + "esm": {"name": "equilibrium_summary", "imas": "equilibrium"}, "rba": {"name": "camera_visible_a", "imas": "camera_visible"}, "rbb": {"name": "camera_visible_b", "imas": "camera_visible"}, "rbc": {"name": "camera_visible_c", "imas": "camera_visible"}, + "rgb": {"name": "camera_visible_bremsstrahlung_a", "imas": "camera_visible"}, + "rgc": {"name": "camera_visible_bremsstrahlung_b", "imas": "camera_visible"}, + "xbt": {"name": "bes"}, "xdc": {"name": "controllers", "imas": "controllers"}, "xim": {"name": "spectrometer_visible", "imas": "spectrometer_visible"}, "xma": {"name": "magnetics_a", "imas": "magnetics"}, "xmc": {"name": "magnetics_c", "imas": "magnetics"}, - "xmo": {"name": "magnetics_mirnov","imas": "magnetics"}, "xsx": {"name": "soft_x_rays", "imas": "soft_x_rays"} } \ No newline at end of file diff --git a/mappings/mastu/units.json b/mappings/mastu/units.json deleted file mode 100644 index f453fea..0000000 --- a/mappings/mastu/units.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "m^-^3": "m^-3", - "m-4": "m^-4", - "MWm-2": "MW m^-2", - "MW m-2": "MW m^-2", - "Degree C": "degC", - "Passnumber": "", - "Status": "", - "Version": "", - "arb": "", - "Passno": "", - "-": "", - "--": "", - "---": "", - "#": "", - "Number": "", - "nounits": "", - "xsx_hcaml#": "", - "xsx_hcamu#": "", - "ARB": "", - "out of 10": "", - "Pass": "", - "A.U.": "", - "number": "", - "boolean": "", - "Boolean": "", - "Pattern": "", - "Bitwise": "", - "SVN revision": "", - "view": "", - "status_detai": "", - "error, neutr": "", - "None": "", - "a.u.": "" -} diff --git a/mappings/mastu/variables.json b/mappings/mastu/variables.json index a5eb502..5002ecf 100644 --- a/mappings/mastu/variables.json +++ b/mappings/mastu/variables.json @@ -1,5 +1,104 @@ { + "act": { + "majorradius": "major_radius", + "pixelnumber": "pixel_number" + }, + "aiv": { + "majorradius": "major_radius" + }, + "ait": { + "majorradius": "major_radius" + }, "amc": { "ip": "plasma_current" + }, + "ams": { + "timeaxis": "time" + }, + "ayc": { + "r": "major_radius", + "r_error": "major_radius_error", + "arb": "radial_index" + }, + "aye": { + "r": "major_radius", + "r_error": "major_radius_error", + "arb": "radial_index" + }, + "xdc": { + "XDC/PLASMA/T/IP_REF": "reference_plasma_current", + "XDC/FUELLING/T/DENSITY_REF_TARGET": "reference_plasma_density" + }, + "xim": { + "da_hm10_r": "dalpha_mid_plane_center", + "da_hm10_r1": "dalpha_mid_plane_r1", + "da_hm10_u1": "dalpha_mid_plane_u1", + "da_hm10_t": "dalpha_mid_plane_wide" + }, + "xsx": { + "hcaml#1_data": "hcam_l_1", + "hcaml#10_data": "hcam_l_10", + "hcaml#11_data": "hcam_l_11", + "hcaml#12_data": "hcam_l_12", + "hcaml#13_data": "hcam_l_13", + "hcaml#14_data": "hcam_l_14", + "hcaml#15_data": "hcam_l_15", + "hcaml#16_data": "hcam_l_16", + "hcaml#2_data": "hcam_l_2", + "hcaml#3_data": "hcam_l_3", + "hcaml#4_data": "hcam_l_4", + "hcaml#5_data": "hcam_l_5", + "hcaml#6_data": "hcam_l_6", + "hcaml#7_data": "hcam_l_7", + "hcaml#8_data": "hcam_l_8", + "hcaml#9_data": "hcam_l_9", + "hcamu#1_data": "hcam_u_1", + "hcamu#10_data": "hcam_u_10", + "hcamu#11_data": "hcam_u_11", + "hcamu#12_data": "hcam_u_12", + "hcamu#13_data": "hcam_u_13", + "hcamu#14_data": "hcam_u_14", + "hcamu#15_data": "hcam_u_15", + "hcamu#16_data": "hcam_u_16", + "hcamu#2_data": "hcam_u_2", + "hcamu#3_data": "hcam_u_3", + "hcamu#4_data": "hcam_u_4", + "hcamu#5_data": "hcam_u_5", + "hcamu#6_data": "hcam_u_6", + "hcamu#7_data": "hcam_u_7", + "hcamu#8_data": "hcam_u_8", + "hcamu#9_data": "hcam_u_9", + "tcam#1_data": "tcam_1", + "tcam#10_data": "tcam_10", + "tcam#11_data": "tcam_11", + "tcam#12_data": "tcam_12", + "tcam#13_data": "tcam_13", + "tcam#14_data": "tcam_14", + "tcam#15_data": "tcam_15", + "tcam#16_data": "tcam_16", + "tcam#2_data": "tcam_2", + "tcam#3_data": "tcam_3", + "tcam#4_data": "tcam_4", + "tcam#5_data": "tcam_5", + "tcam#6_data": "tcam_6", + "tcam#7_data": "tcam_7", + "tcam#8_data": "tcam_8", + "tcam#9_data": "tcam_9", + "vcam#1_data": "vcam_1", + "vcam#10_data": "vcam_10", + "vcam#11_data": "vcam_11", + "vcam#12_data": "vcam_12", + "vcam#13_data": "vcam_13", + "vcam#14_data": "vcam_14", + "vcam#15_data": "vcam_15", + "vcam#16_data": "vcam_16", + "vcam#2_data": "vcam_2", + "vcam#3_data": "vcam_3", + "vcam#4_data": "vcam_4", + "vcam#5_data": "vcam_5", + "vcam#6_data": "vcam_6", + "vcam#7_data": "vcam_7", + "vcam#8_data": "vcam_8", + "vcam#9_data": "vcam_9" } } \ No newline at end of file diff --git a/mappings/mast/units.json b/mappings/units.json similarity index 94% rename from mappings/mast/units.json rename to mappings/units.json index 8677610..584355d 100644 --- a/mappings/mast/units.json +++ b/mappings/units.json @@ -1,4 +1,5 @@ { + "W / (sr.m2)": "W / (sr*m^2)", "S": "s", "m^-^3": "m^-3", "m-4": "m^-4", @@ -13,6 +14,7 @@ "Ohms": "ohm", "Ohm": "ohm", "Tesla": "T", + "Celsius": "degC", "Degree C": "degC", "Passnumber": "", "Status": "", diff --git a/src/builder.py b/src/builder.py index 08e550d..33a9ea1 100644 --- a/src/builder.py +++ b/src/builder.py @@ -8,6 +8,11 @@ from src.utils import harmonise_name, read_json_file from src.writer import DatasetWriter +SEG_FAULT_LIST = [ + "EPQ/INPUT/CONSTRAINTS/MSE/STRDIM_SHORTNAME", + "EPQ/INPUT/CONSTRAINTS/MSE/SHORTNAME", +] + class DatasetBuilder: def __init__( @@ -42,14 +47,7 @@ def create(self, shot: int): pipeline = self.pipelines.get(group_name) dataset: xr.Dataset = pipeline(datasets) - - # rename groups - if group_name in self.group_name_mapping: - mapping = self.group_name_mapping[group_name] - if "imas" in mapping: - imas_name = mapping["imas"] - dataset.attrs["imas"] = imas_name - group_name = mapping["name"] + dataset, group_name = self._rename_group(dataset, group_name) logger.info(f"Writing {group_name} for shot #{shot}") file_name = f"{shot}.{self.writer.file_extension}" @@ -129,6 +127,8 @@ def load_datasets(self, shot, group_name: str) -> dict[str, xr.Dataset]: "XDC_Z_S_ZIP", "/XDC/Z/S/ZIPREF", "XDC_Z_S_ZIPREF", + "XDC/PLASMA/T/IP_REF", + "XDC/FUELLING/T/DENSITY_REF_TARGET", ] signal_infos = [ @@ -137,18 +137,37 @@ def load_datasets(self, shot, group_name: str) -> dict[str, xr.Dataset]: datasets = {} for signal_info in signal_infos: - name = signal_info.name + uda_name = signal_info.name + + if uda_name in SEG_FAULT_LIST: + logger.warning( + f"Skipping {uda_name} as it is in the seg fault exclude list." + ) + continue + try: - new_name = harmonise_name(name) - logger.debug(f"Loading {new_name}") - dataset = self.loader.load(shot, name) - dataset.attrs["name"] = new_name + name = harmonise_name(uda_name) + logger.debug(f"Loading {name} ({uda_name})") + dataset = self.loader.load(shot, uda_name) + dataset.attrs["name"] = name dataset.attrs["source"] = group_name - datasets[new_name] = dataset + datasets[name] = dataset except MissingProfileError as e: - logger.warning(e) + if "StructuredData" not in str(e): + logger.warning(e) return datasets + def _rename_group(self, dataset: xr.Dataset, group_name: str): + if group_name in self.group_name_mapping: + mapping = self.group_name_mapping[group_name] + if "imas" in mapping: + imas_name = mapping["imas"] + dataset.attrs["imas"] = imas_name + dataset.attrs["uda_name"] = group_name + group_name = mapping["name"] + + return dataset, group_name + def list_datasets(self, shot: int): infos = self.loader.list_datasets(shot) include_all = len(self.include_datasets) == 0 diff --git a/src/pipelines.py b/src/pipelines.py index 9104270..1a3a3c8 100644 --- a/src/pipelines.py +++ b/src/pipelines.py @@ -6,6 +6,7 @@ AlignChannels, DropCoordinates, DropDatasets, + DropErrors, DropZeroDataset, DropZeroDimensions, InterpolateAxis, @@ -61,10 +62,83 @@ def variable_mapping_file(self): def __init__(self) -> None: self.pipelines = { + "abm": Pipeline( + [ + MapDict(RenameDimensions(self.dimension_mapping_file)), + MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), + MergeDatasets(), + TransformUnits(), + ] + ), + "act": Pipeline( + [ + MapDict(RenameDimensions(self.dimension_mapping_file)), + MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), + DropDatasets(["cel3_bg_z", "cel3_radial_z", "cel3_ss_z"]), + MergeDatasets(), + TransformUnits(), + ] + ), + "aga": Pipeline( + [ + MapDict(RenameDimensions(self.dimension_mapping_file)), + MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), + MergeDatasets(), + TransformUnits(), + ] + ), + "ahx": Pipeline( + [ + MapDict(RenameDimensions(self.dimension_mapping_file)), + MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), + MergeDatasets(), + TransformUnits(), + ] + ), + "ait": Pipeline( + [ + MapDict(RenameDimensions(self.dimension_mapping_file)), + MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), + MergeDatasets(), + TransformUnits(), + ] + ), + "aiv": Pipeline( + [ + MapDict(RenameDimensions(self.dimension_mapping_file)), + MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), + MergeDatasets(), + TransformUnits(), + ] + ), + "alp": Pipeline( + [ + MapDict(RenameDimensions(self.dimension_mapping_file)), + MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), + MergeDatasets(), + TransformUnits(), + ] + ), "amb": Pipeline( [ MapDict(RenameDimensions(self.dimension_mapping_file)), MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), MergeDatasets(), TransformUnits(), ] @@ -73,31 +147,59 @@ def __init__(self) -> None: [ MapDict(RenameDimensions(self.dimension_mapping_file)), MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), + MergeDatasets(), + TransformUnits(), + ] + ), + "ams": Pipeline( + [ + MapDict(RenameDimensions(self.dimension_mapping_file)), + MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), + DropErrors(["stokes_s3", "stokes_s2", "stokes_s1"]), MergeDatasets(), TransformUnits(), - RenameVariables(self.variable_mapping_file), ] ), "anb": Pipeline( [ MapDict(RenameDimensions(self.dimension_mapping_file)), MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), + MergeDatasets(), + TransformUnits(), + ] + ), + "ane": Pipeline( + [ + MapDict(RenameDimensions(self.dimension_mapping_file)), + MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), MergeDatasets(), TransformUnits(), ] ), - "act": Pipeline( + "anu": Pipeline( [ MapDict(RenameDimensions(self.dimension_mapping_file)), MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), MergeDatasets(), TransformUnits(), ] ), - "acu": Pipeline( + "asm": Pipeline( [ MapDict(RenameDimensions(self.dimension_mapping_file)), MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), MergeDatasets(), TransformUnits(), ] @@ -106,6 +208,8 @@ def __init__(self) -> None: [ MapDict(RenameDimensions(self.dimension_mapping_file)), MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), MergeDatasets(), TransformUnits(), ] @@ -114,6 +218,8 @@ def __init__(self) -> None: [ MapDict(RenameDimensions(self.dimension_mapping_file)), MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), MergeDatasets(), TransformUnits(), ] @@ -122,35 +228,138 @@ def __init__(self) -> None: [ MapDict(RenameDimensions(self.dimension_mapping_file)), MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), + DropDatasets( + [ + "input_numericalcontrols_ww_knotdim", + "input_numericalcontrols_ne_knotdim", + "input_numericalcontrols_pp_knotdim", + "input_numericalcontrols_ffp_knotdim", + "input_limiter_unitydim", + "input_constraints_pfcircuits_shortname", + "input_constraints_pfcircuits_pfcircuitsdim", + "input_constraints_magneticprobes_shortname", + "input_constraints_magneticprobes_magneticprobedim", + "input_constraints_fluxloops_strdim_shortname", + "input_constraints_fluxloops_fluxloopdim", + ] + ), MergeDatasets(), TransformUnits(), ] ), + "epq": Pipeline( + [ + MapDict(RenameDimensions(self.dimension_mapping_file)), + MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), + DropDatasets( + [ + "input_numericalcontrols_ww_knotdim", + "input_numericalcontrols_ne_knotdim", + "input_numericalcontrols_pp_knotdim", + "input_numericalcontrols_ffp_knotdim", + "input_limiter_unitydim", + "input_constraints_pfcircuits_shortname", + "input_constraints_pfcircuits_pfcircuitsdim", + "input_constraints_magneticprobes_shortname", + "input_constraints_magneticprobes_magneticprobedim", + "input_constraints_fluxloops_strdim_shortname", + "input_constraints_fluxloops_fluxloopdim", + ] + ), + MergeDatasets(), + TransformUnits(), + ] + ), + "rba": Pipeline( + [MapDict(RenameVariables(self.variable_mapping_file)), ProcessImage()] + ), + "rbb": Pipeline( + [MapDict(RenameVariables(self.variable_mapping_file)), ProcessImage()] + ), + "rbc": Pipeline( + [MapDict(RenameVariables(self.variable_mapping_file)), ProcessImage()] + ), + "rgb": Pipeline( + [MapDict(RenameVariables(self.variable_mapping_file)), ProcessImage()] + ), + "rgc": Pipeline( + [MapDict(RenameVariables(self.variable_mapping_file)), ProcessImage()] + ), "esm": Pipeline( [ MapDict(RenameDimensions(self.dimension_mapping_file)), MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), MergeDatasets(), TransformUnits(), ] ), - "xsx": Pipeline( + "xbt": Pipeline( [ MapDict(RenameDimensions(self.dimension_mapping_file)), MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), MergeDatasets(), TransformUnits(), - TensoriseChannels("hcam_l", regex=r"hcam_l_ch(\d+)"), - TensoriseChannels("hcam_u", regex=r"hcam_u_ch(\d+)"), - TensoriseChannels("tcam", regex=r"tcam_ch(\d+)"), ] ), "xdc": Pipeline( [ MapDict(RenameDimensions(self.dimension_mapping_file)), MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), + MergeDatasets(), + TransformUnits(), + ] + ), + "xim": Pipeline( + [ + MapDict(RenameDimensions(self.dimension_mapping_file)), + MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), + MergeDatasets(), + TransformUnits(), + ] + ), + "xma": Pipeline( + [ + MapDict(RenameDimensions(self.dimension_mapping_file)), + MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), + MergeDatasets(), + TransformUnits(), + ] + ), + "xmc": Pipeline( + [ + MapDict(RenameDimensions(self.dimension_mapping_file)), + MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), + MergeDatasets(), + TransformUnits(), + ] + ), + "xsx": Pipeline( + [ + MapDict(RenameDimensions(self.dimension_mapping_file)), + MapDict(RenameVariables(self.variable_mapping_file)), + MapDict(DropZeroDimensions()), + MapDict(DropZeroDataset()), MergeDatasets(), TransformUnits(), + TensoriseChannels("hcam_l", regex=r"hcam_l_ch(\d+)"), + TensoriseChannels("hcam_u", regex=r"hcam_u_ch(\d+)"), + TensoriseChannels("tcam", regex=r"tcam_ch(\d+)"), ] ), } diff --git a/src/transforms.py b/src/transforms.py index b71456b..77be21c 100644 --- a/src/transforms.py +++ b/src/transforms.py @@ -13,7 +13,7 @@ from src.log import logger from src.utils import read_json_file -UNITS_MAPPING_FILE = "mappings/mast/units.json" +UNITS_MAPPING_FILE = "mappings/units.json" class BaseTransform(ABC): @@ -100,6 +100,16 @@ def __call__(self, datasets: dict[str, xr.Dataset]) -> dict[str, xr.Dataset]: return datasets +class DropErrors(BaseTransform): + def __init__(self, keys: list[str]): + self.keys = keys + + def __call__(self, datasets: dict[str, xr.Dataset]) -> dict[str, xr.Dataset]: + for key in self.keys: + datasets[key] = datasets[key].drop(f"{key}_error") + return datasets + + class DropCoordinates(BaseTransform): def __init__(self, name, keys: list[str]) -> None: self.name = name @@ -145,6 +155,11 @@ def __call__(self, dataset: xr.Dataset) -> xr.Dataset: class MergeDatasets(BaseTransform): def __call__(self, dataset_dict: dict[str, xr.Dataset]) -> xr.Dataset: + for name, item in dataset_dict.items(): + if "dim_0" in item.dims: + print(f"{item.dims}, {name}") + # print(item) + dataset = xr.merge(dataset_dict.values()) dataset = dataset.compute() dataset.attrs = {} @@ -193,6 +208,9 @@ def __init__( def __call__(self, dataset: xr.Dataset) -> xr.Dataset: group_keys = self._get_group_keys(dataset) + for key in group_keys: + self._parse_digits(key) + # If we couldn't find any matching keys, do nothing. if len(group_keys) == 0: return dataset