Location of parameters#

  • Electron density \(n_e\): The number of electrons per unit volume in the plasma.

  • Electorn temperature \(T_e\): The temperature of the electrons in the plasma.

  • Radiated power (bolometers) \(P_{rad}\): The power radiated by the plasma.

  • Internal inductance \(l_i\): A measure of the plasma’s inductance.

  • plasma current \(I_p\): The flow of charged particles in the plasma.

import zarr
import s3fs
import matplotlib.pyplot as plt
import xarray as xr
import dask
import numpy as np                                                      
import fsspec

Data in a single shot#

Let us take shot number 30420.

Level 1 file.#

Download using the following command:

./s5cmd --no-sign-request --endpoint-url https://s3.echo.stfc.ac.uk cp "s3://mast/level1/shots/30420.zarr/*" ./30420.zarr/level1/
!ls "/home/hell/Desktop/UKAEA/Projects/1. 2024/1. Dec/1. Disruptions/bulk download/30420.zarr"
abm  aga  air  ama  amh  ane  arp  asx	efm  rba  rca  rgc  xdc  xma  xpc
ada  ahx  ait  amb  amm  anu  asb  ayc	esm  rbb  rco  rir  xho  xmb  xsx
adg  aim  alp  amc  ams  aoe  asm  aye	esx  rbc  rgb  rit  xim  xmo
!tree "/home/hell/Desktop/UKAEA/Projects/1. 2024/1. Dec/1. Disruptions/bulk download/30420.zarr" -L 2
/home/hell/Desktop/UKAEA/Projects/1. 2024/1. Dec/1. Disruptions/bulk download/30420.zarr
├── abm
│   ├── calib_shot
│   ├── channel_status
│   ├── channel_type
│   ├── chord
│   ├── dim_0
│   ├── gain
│   ├── i-bol
│   ├── km
│   ├── passnumber
│   ├── phi-chords
│   ├── phi-slits
│   ├── prad_pol
│   ├── rbm
│   ├── r-chords
│   ├── r-slits
│   ├── r_tco_emis
│   ├── status
│   ├── taum
│   ├── tco_emis
│   ├── time
│   ├── v-bol
│   ├── version
│   ├── z-chords
│   └── z-slits
├── ada
│   ├── dalpha_integrated
│   ├── dalpha_inverted
│   ├── dalpha_peak_radius
│   ├── dalpha_raw_full
│   ├── dim_0
│   ├── dim_1
│   ├── geo_full
│   ├── inner_integrated
│   ├── inner_peak_radius
│   ├── passnumber
│   ├── status
│   └── time
├── adg
│   ├── density_gradient
│   ├── gradient_position
│   ├── passnumber
│   ├── status
│   └── time
├── aga
│   ├── bc11
│   ├── bc5
│   ├── fig
│   ├── fig_raw
│   ├── hecc
│   ├── helios
│   ├── hl1
│   ├── hl11
│   ├── hm12
│   ├── hu11
│   ├── hu6
│   ├── hu8
│   ├── ibfla
│   ├── ibflb
│   ├── ibfua
│   ├── ibfub
│   ├── ibil
│   ├── inboard_total
│   ├── integ_gas
│   ├── outboard_total
│   ├── passnumber
│   ├── status
│   ├── tc11
│   ├── tc5a
│   ├── tc5b
│   └── time
├── ahx
│   ├── hxr_mezzw
│   ├── hxr_s
│   ├── hxr_w
│   ├── passnumber
│   ├── status
│   ├── time
│   └── version
├── aim
│   ├── da_hm10_t
│   ├── da_hm10_t_error
│   ├── da_to10
│   ├── da_to10_error
│   ├── passnumber
│   ├── status
│   └── time
├── air
│   ├── alphaconst_osp
│   ├── alphaconst_osp_elm
│   ├── camera_view_osp
│   ├── dim_0
│   ├── etot_osp
│   ├── etot_osp_elm
│   ├── etotsum_osp
│   ├── etotsum_osp_elm
│   ├── lampowpp_osp
│   ├── lampowsol_osp
│   ├── minpow_dens_osp_elm
│   ├── passnumber
│   ├── peakpower_pos_osp
│   ├── phi_extent_osp
│   ├── phi_start_osp
│   ├── pkpow_dens_osp_elm
│   ├── pkpower_density_osp
│   ├── ptot_osp
│   ├── ptot_osp_elm
│   ├── qprofile_osp
│   ├── qprofile_osp_elm
│   ├── rcoord_osp
│   ├── r_extent_osp
│   ├── r_start_osp
│   ├── satpixels_osp
│   ├── status
│   ├── svn_revision
│   ├── temperature_osp
│   ├── time
│   ├── tprofile_osp
│   ├── z_extent_osp
│   └── z_start_osp
├── ait
│   ├── alphaconst_isp
│   ├── alphaconst_isp_elm
│   ├── alphaconst_osp
│   ├── alphaconst_osp_elm
│   ├── camera_view_isp
│   ├── camera_view_osp
│   ├── dim_0
│   ├── etot_isp
│   ├── etot_isp_elm
│   ├── etot_osp
│   ├── etot_osp_elm
│   ├── etotsum_isp
│   ├── etotsum_isp_elm
│   ├── etotsum_osp
│   ├── etotsum_osp_elm
│   ├── lampowpp_isp
│   ├── lampowpp_osp
│   ├── lampowsol_isp
│   ├── lampowsol_osp
│   ├── minpow_dens_isp_elm
│   ├── minpow_dens_osp_elm
│   ├── passnumber
│   ├── peakpower_pos_isp
│   ├── peakpower_pos_osp
│   ├── phi_extent_isp
│   ├── phi_extent_osp
│   ├── phi_start_isp
│   ├── phi_start_osp
│   ├── pkpow_dens_isp_elm
│   ├── pkpow_dens_osp_elm
│   ├── pkpower_density_isp
│   ├── pkpower_density_osp
│   ├── ptot_isp
│   ├── ptot_isp_elm
│   ├── ptot_osp
│   ├── ptot_osp_elm
│   ├── qprofile_isp
│   ├── qprofile_isp_elm
│   ├── qprofile_osp
│   ├── qprofile_osp_elm
│   ├── rcoord_isp
│   ├── rcoord_osp
│   ├── r_extent_isp
│   ├── r_extent_osp
│   ├── r_start_isp
│   ├── r_start_osp
│   ├── satpixels_isp
│   ├── satpixels_osp
│   ├── status
│   ├── svn_revision
│   ├── temperature_isp
│   ├── temperature_osp
│   ├── time
│   ├── tprofile_isp
│   ├── tprofile_osp
│   ├── z_extent_isp
│   ├── z_extent_osp
│   ├── z_start_isp
│   └── z_start_osp
├── alp
│   ├── badamps
│   ├── inner_lo_chisq
│   ├── inner_lo_denpeakval
│   ├── inner_lo_density
│   ├── inner_lo_density_error
│   ├── inner_lo_jsapeakpos
│   ├── inner_lo_jsapeakpos_error
│   ├── inner_lo_jsapeakval
│   ├── inner_lo_jsapeakval_error
│   ├── inner_lo_jsat
│   ├── inner_lo_jsat_error
│   ├── inner_lo_jsol
│   ├── inner_lo_jsol_error
│   ├── inner_lo_ktepeakval
│   ├── inner_lo_lamjsatpp
│   ├── inner_lo_lamjsatpp_error
│   ├── inner_lo_lamjsatsol
│   ├── inner_lo_lamjsatsol_error
│   ├── inner_lo_power
│   ├── inner_lo_power_error
│   ├── inner_lo_powpeakval
│   ├── inner_lo_powpeakval_error
│   ├── inner_lo_powsum
│   ├── inner_lo_powsum_error
│   ├── inner_lo_powtot
│   ├── inner_lo_powtot_error
│   ├── inner_lo_r
│   ├── inner_lo_raw_vfloat
│   ├── inner_lo_te
│   ├── inner_lo_te_error
│   ├── inner_lo_time
│   ├── inner_lo_timemid
│   ├── inner_lo_vfloat
│   ├── inner_lo_vfloat_error
│   ├── inner_lo_z
│   ├── outer_lo_chisq
│   ├── outer_lo_denpeakval
│   ├── outer_lo_density
│   ├── outer_lo_density_error
│   ├── outer_lo_jsapeakpos
│   ├── outer_lo_jsapeakpos_error
│   ├── outer_lo_jsapeakval
│   ├── outer_lo_jsapeakval_error
│   ├── outer_lo_jsat
│   ├── outer_lo_jsat_error
│   ├── outer_lo_jsol
│   ├── outer_lo_jsol_error
│   ├── outer_lo_ktepeakval
│   ├── outer_lo_lamjsatpp
│   ├── outer_lo_lamjsatpp_error
│   ├── outer_lo_lamjsatsol
│   ├── outer_lo_lamjsatsol_error
│   ├── outer_lo_power
│   ├── outer_lo_power_error
│   ├── outer_lo_powpeakval
│   ├── outer_lo_powpeakval_error
│   ├── outer_lo_powsum
│   ├── outer_lo_powsum_error
│   ├── outer_lo_powtot
│   ├── outer_lo_powtot_error
│   ├── outer_lo_r
│   ├── outer_lo_raw_vfloat
│   ├── outer_lo_te
│   ├── outer_lo_te_error
│   ├── outer_lo_time
│   ├── outer_lo_timemid
│   ├── outer_lo_vfloat
│   ├── outer_lo_vfloat_error
│   ├── outer_lo_z
│   ├── outer_up_chisq
│   ├── outer_up_denpeakval
│   ├── outer_up_density
│   ├── outer_up_density_error
│   ├── outer_up_jsapeakpos
│   ├── outer_up_jsapeakpos_error
│   ├── outer_up_jsapeakval
│   ├── outer_up_jsapeakval_error
│   ├── outer_up_jsat
│   ├── outer_up_jsat_error
│   ├── outer_up_jsol
│   ├── outer_up_jsol_error
│   ├── outer_up_ktepeakval
│   ├── outer_up_lamjsatpp
│   ├── outer_up_lamjsatpp_error
│   ├── outer_up_lamjsatsol
│   ├── outer_up_lamjsatsol_error
│   ├── outer_up_power
│   ├── outer_up_power_error
│   ├── outer_up_powpeakval
│   ├── outer_up_powpeakval_error
│   ├── outer_up_powsum
│   ├── outer_up_powsum_error
│   ├── outer_up_powtot
│   ├── outer_up_powtot_error
│   ├── outer_up_r
│   ├── outer_up_raw_vfloat
│   ├── outer_up_te
│   ├── outer_up_te_error
│   ├── outer_up_time
│   ├── outer_up_timemid
│   ├── outer_up_vfloat
│   ├── outer_up_vfloat_error
│   ├── outer_up_z
│   ├── passnumber
│   ├── status
│   └── time
├── ama
│   ├── n=2_amplitude
│   ├── n=2_frequency
│   ├── n=2_signal
│   ├── n=odd_amplitude
│   ├── n=odd_frequency
│   ├── n=odd_signal
│   ├── passnumber
│   ├── status
│   ├── time
│   └── version
├── amb
│   ├── ccbv01
│   ├── ccbv03
│   ├── ccbv04
│   ├── ccbv05
│   ├── ccbv06
│   ├── ccbv07
│   ├── ccbv08
│   ├── ccbv09
│   ├── ccbv10
│   ├── ccbv11
│   ├── ccbv12
│   ├── ccbv13
│   ├── ccbv14
│   ├── ccbv15
│   ├── ccbv16
│   ├── ccbv17
│   ├── ccbv18
│   ├── ccbv19
│   ├── ccbv20
│   ├── ccbv22
│   ├── ccbv23
│   ├── ccbv24
│   ├── ccbv25
│   ├── ccbv26
│   ├── ccbv27
│   ├── ccbv28
│   ├── ccbv29
│   ├── ccbv30
│   ├── ccbv31
│   ├── ccbv33
│   ├── ccbv34
│   ├── ccbv36
│   ├── ccbv37
│   ├── ccbv38
│   ├── ccbv39
│   ├── ccbv40
│   ├── fl_cc03
│   ├── fl_cc04
│   ├── fl_cc05
│   ├── fl_cc07
│   ├── fl_cc09
│   ├── fl_p3l_4
│   ├── fl_p3u_1
│   ├── fl_p3u_4
│   ├── fl_p4l_1
│   ├── fl_p4l_4
│   ├── fl_p4u_4
│   ├── fl_p5l_1
│   ├── fl_p5l_4
│   ├── fl_p5u_1
│   ├── fl_p6l_1
│   ├── obr01
│   ├── obr04
│   ├── obr05
│   ├── obr06
│   ├── obr08
│   ├── obr09
│   ├── obr10
│   ├── obr12
│   ├── obr13
│   ├── obr14
│   ├── obr15
│   ├── obr16
│   ├── obr17
│   ├── obr18
│   ├── obv03
│   ├── obv04
│   ├── obv05
│   ├── obv06
│   ├── obv09
│   ├── obv11
│   ├── obv17
│   ├── obv18
│   ├── status
│   ├── time
│   └── version
├── amc
│   ├── efps_current
│   ├── error_field_02
│   ├── error_field_05
│   ├── p2il_coil_current
│   ├── p2il_feed_current
│   ├── p2iu_coil_current
│   ├── p2iu_feed_current
│   ├── p2l_case_current
│   ├── p2l_current
│   ├── p2ol_coil_current
│   ├── p2ol_feed_current
│   ├── p2ou_coil_current
│   ├── p2ou_feed_current
│   ├── p2u_case_current
│   ├── p2u_current
│   ├── p3l_case_current
│   ├── p3l_coil_current
│   ├── p3l_current
│   ├── p3l_feed_current
│   ├── p3u_case_current
│   ├── p3u_coil_current
│   ├── p3u_current
│   ├── p3u_feed_current
│   ├── p4l_case_current
│   ├── p4l_coil_current
│   ├── p4l_current
│   ├── p4l_feed_current
│   ├── p4u_case_current
│   ├── p4u_coil_current
│   ├── p4u_current
│   ├── p4u_feed_current
│   ├── p5l_case_current
│   ├── p5l_coil_current
│   ├── p5l_current
│   ├── p5l_feed_current
│   ├── p5u_case_current
│   ├── p5u_coil_current
│   ├── p5u_current
│   ├── p5u_feed_current
│   ├── p6l_current
│   ├── p6u_current
│   ├── plasma_current
│   ├── sol_current
│   ├── status
│   ├── tf_current
│   ├── time
│   └── version
├── amh
│   ├── halo_ccu_2
│   ├── halo_p2l_1
│   ├── halo_p2l_2
│   ├── halo_p2l_3
│   ├── halo_p2l_4
│   ├── halo_p2l_5
│   ├── halo_p2l_6
│   ├── halo_p2u_2
│   ├── halo_p2u_3
│   ├── halo_p2u_4
│   ├── halo_p2u_5
│   ├── halo_p2u_6
│   ├── halo_p3l_1
│   ├── halo_p3l_2
│   ├── halo_p3l_4
│   ├── halo_p3l_6
│   ├── halo_p3u_2
│   ├── halo_p3u_3
│   ├── halo_p3u_4
│   ├── halo_p3u_5
│   ├── halo_p3u_6
│   ├── halo_sum_p2l
│   ├── halo_sum_p2u
│   ├── halo_sum_p3l
│   ├── halo_sum_p3u
│   ├── passnumber
│   ├── phalo_epl_i1
│   ├── phalo_epl_i2
│   ├── phalo_epl_i4
│   ├── phalo_epl_o1
│   ├── phalo_epl_o2
│   ├── phalo_epl_o3
│   ├── phalo_epl_o5
│   ├── phalo_epl_o6
│   ├── phalo_epu_i3
│   ├── phalo_epu_i4
│   ├── phalo_epu_o1
│   ├── phalo_epu_o3
│   ├── phalo_epu_o4
│   ├── phalo_epu_o6
│   ├── phalo_p2l_i2
│   ├── phalo_p2l_i3
│   ├── phalo_p2l_i6
│   ├── phalo_p2l_o1
│   ├── phalo_p2l_o2
│   ├── phalo_p2l_o4
│   ├── phalo_p2u_i1
│   ├── phalo_p2u_i2
│   ├── phalo_p2u_i3
│   ├── phalo_p2u_i4
│   ├── phalo_p2u_i5
│   ├── phalo_p2u_i6
│   ├── phalo_p2u_o4
│   ├── phalo_sum_epl_inner
│   ├── phalo_sum_epl_outer
│   ├── phalo_sum_epu_inner
│   ├── phalo_sum_epu_outer
│   ├── phalo_sum_p2l_inner
│   ├── phalo_sum_p2l_outer
│   ├── phalo_sum_p2u_inner
│   ├── phalo_sum_p2u_outer
│   ├── status
│   ├── time
│   └── version
├── amm
│   ├── botcol
│   ├── endcrown_l
│   ├── endcrown_u
│   ├── incon
│   ├── incon_channel
│   ├── lhorw
│   ├── lhorw_channel
│   ├── mid
│   ├── mid_channel
│   ├── p2larm1
│   ├── p2larm2
│   ├── p2larm3
│   ├── p2ldivpl1
│   ├── p2ldivpl2
│   ├── p2uarm1
│   ├── p2uarm2
│   ├── p2uarm3
│   ├── p2udivpl1
│   ├── p2udivpl2
│   ├── passnumber
│   ├── ring
│   ├── ring_channel
│   ├── rodgr
│   ├── rodgr_channel
│   ├── substeps
│   ├── tcutoff
│   ├── time
│   ├── tolerance
│   ├── topcol
│   ├── uhorw
│   ├── uhorw_channel
│   ├── vertw
│   └── vertw_channel
├── ams
├── ane
│   ├── co2
│   ├── density
│   ├── hene
│   ├── passnumber
│   ├── status
│   ├── status_detail
│   ├── time
│   └── version
├── anu
│   ├── errors
│   ├── neutrons
│   ├── neutrons_cb
│   ├── neutrons_count
│   ├── neutrons_dc
│   ├── passnumber
│   ├── status
│   ├── time
│   └── version
├── aoe
│   ├── co2_frac
│   ├── fast_k
│   ├── fast_ka
│   ├── fast_sync
│   ├── fast_u
│   ├── ka_band
│   ├── k_band
│   ├── passnumber
│   ├── ramping
│   ├── status
│   ├── time
│   ├── u_band
│   └── version
├── arp
│   ├── passnumber
│   ├── rp_gap_efit
│   ├── rp_radius
│   ├── status
│   └── time
├── asb
│   ├── cii_dga
│   ├── oii_dga
│   ├── passnumber
│   ├── status
│   ├── svn_revision
│   └── time
├── asm
│   ├── hm_periods
│   ├── hm_rating
│   ├── hm_time
│   ├── out_nn_pattern
│   ├── out_nn_rating
│   ├── out_rating
│   ├── out_signal
│   ├── out_theta
│   ├── out_theta_deviation
│   ├── out_time
│   ├── passnumber
│   ├── sad_d01_1-7
│   ├── sad_d02_2-8
│   ├── sad_d03_4-10
│   ├── sad_d04_5-11
│   ├── sad_d05_6-12
│   ├── sad_m
│   ├── sad_m_channel
│   ├── status
│   └── time
├── asx
│   ├── elm_freqs
│   ├── elmy
│   ├── large_scale
│   ├── lower_false_inv_rad
│   ├── modes
│   ├── passnumber
│   ├── sawteeth
│   ├── sawtooth_periods
│   ├── status
│   ├── up_cam_nos_sawt_inv
│   └── upper_false_inv_rad
├── ayc
│   ├── acqiris_time
│   ├── acqiris_time_
│   ├── angle
│   ├── arb
│   ├── aspectra
│   ├── chi2
│   ├── covariance_ne_te
│   ├── instrument_dr
│   ├── instrument_time
│   ├── interferometer_corr
│   ├── laser_energy
│   ├── laser_track
│   ├── ne
│   ├── ne_core
│   ├── ne_error
│   ├── passnumber
│   ├── pe
│   ├── pe_error
│   ├── plasmalight_error
│   ├── poisson_error
│   ├── polyname
│   ├── pulse
│   ├── radial_index
│   ├── radius
│   ├── r_core
│   ├── r_error
│   ├── scat_length
│   ├── segment_number
│   ├── spectra
│   ├── spectra_error
│   ├── spectral_index
│   ├── spectra_stray_light
│   ├── status
│   ├── te
│   ├── te_core
│   ├── te_error
│   ├── time
│   ├── version_fibre
│   ├── version_poly
│   ├── version_raman
│   ├── xyc_time
│   ├── xyc_time_
│   └── yag_nelint
├── aye
│   ├── angle
│   ├── arb
│   ├── aspectra
│   ├── chi2
│   ├── covariance_ne_te
│   ├── gauss_amplitude
│   ├── gauss_dclevel
│   ├── gauss_position
│   ├── gauss_sigma
│   ├── instrument_dr
│   ├── interferometer_corr
│   ├── laser_energy
│   ├── laser_track
│   ├── ne
│   ├── ne_error
│   ├── passnumber
│   ├── pe
│   ├── pe_error
│   ├── polyname
│   ├── pulse
│   ├── r
│   ├── radial_index
│   ├── r_error
│   ├── scat_length
│   ├── segment_number
│   ├── spectra
│   ├── spectra_error
│   ├── spectral_index
│   ├── status
│   ├── te
│   ├── te_error
│   ├── time
│   ├── time_
│   ├── version_fibre
│   ├── version_poly
│   └── version_raman
├── efm
│   ├── all_times
│   ├── areap_c
│   ├── betan
│   ├── betap
│   ├── betapd
│   ├── betat
│   ├── betatd
│   ├── bphi_rgeom
│   ├── bphi_rmag
│   ├── bphi_squared
│   ├── bpol_squared
│   ├── bvac_r
│   ├── bvac_rgeom
│   ├── bvac_rmag
│   ├── bvac_val
│   ├── chisq_magnetic
│   ├── cm_bdry
│   ├── cnvrgd_times
│   ├── current_centrd_r
│   ├── current_centrd_z
│   ├── cutip
│   ├── diamag_fluxc
│   ├── diamag_fluxx
│   ├── elongation
│   ├── elongation_axis
│   ├── elongpsi_c
│   ├── fcoil_ang1
│   ├── fcoil_ang2
│   ├── fcoil_c
│   ├── fcoil_chisq
│   ├── fcoil_circ
│   ├── fcoil_height
│   ├── fcoil_n
│   ├── fcoil_r
│   ├── fcoil_turns
│   ├── fcoil_width
│   ├── fcoil_x
│   ├── fcoil_xmult
│   ├── fcoil_z
│   ├── fcurbd
│   ├── ffprime
│   ├── ffprime_coefs
│   ├── ffprime_coefs_n
│   ├── final_chisq
│   ├── fpsi_c
│   ├── fwtbdry
│   ├── fwtbp
│   ├── fwtfc
│   ├── fwtmp
│   ├── fwtsi
│   ├── geom_axis_rc
│   ├── geom_axis_zc
│   ├── gridr
│   ├── gridz
│   ├── ip_times
│   ├── irod
│   ├── iteration_error
│   ├── jr
│   ├── kffcur
│   ├── kfffnc
│   ├── kppcur
│   ├── kppfnc
│   ├── kwwcur
│   ├── kwwfnc
│   ├── lcfs_coords
│   ├── lcfs_length
│   ├── lcfsn_c
│   ├── lcfs_r
│   ├── lcfs_z
│   ├── li
│   ├── limiterr
│   ├── limiterz
│   ├── magnetic_axis_r
│   ├── magnetic_axis_z
│   ├── magpr_ang
│   ├── magpr_c
│   ├── magpri_chisq
│   ├── magpr_len
│   ├── mag_probe_n
│   ├── magpr_r
│   ├── magpr_x
│   ├── magpr_z
│   ├── minor_radius
│   ├── nh
│   ├── n_iterations
│   ├── npress
│   ├── num_iterations
│   ├── nw
│   ├── p2ar_c
│   ├── p2br_c
│   ├── p2cr_c
│   ├── passnumber
│   ├── pcurbd
│   ├── plasma_area
│   ├── plasma_current_c
│   ├── plasma_current_rz
│   ├── plasma_current_x
│   ├── plasma_energy
│   ├── plasma_volume
│   ├── pol_length
│   ├── pprime
│   ├── pprime_coefs
│   ├── pprime_coefs_n
│   ├── pprimew
│   ├── ppsi_c
│   ├── pr_c
│   ├── profile_r
│   ├── profile_z
│   ├── psi_axis
│   ├── psi_boundary
│   ├── psi_loop_n
│   ├── psi_norm
│   ├── psir
│   ├── psirz
│   ├── pwpsi_c
│   ├── q_100
│   ├── q=1_radius
│   ├── q=2_radius
│   ├── q=3_radius
│   ├── q_90
│   ├── q_95
│   ├── q_axis
│   ├── qpsi_c
│   ├── qr
│   ├── qstar
│   ├── r
│   ├── rbdry
│   ├── rpsi100_in
│   ├── rpsi100_out
│   ├── rpsi90_in
│   ├── rpsi90_out
│   ├── rpsi95_in
│   ├── rpsi95_out
│   ├── rt
│   ├── rvals
│   ├── rvtor
│   ├── scalepr
│   ├── shaf_integral_1
│   ├── shaf_integral_2
│   ├── shaf_integral_3
│   ├── sigbdry
│   ├── silop_c
│   ├── silop_chisq
│   ├── silop_dphi
│   ├── silop_r
│   ├── silop_x
│   ├── silop_z
│   ├── status
│   ├── time
│   ├── time_
│   ├── triang_lower
│   ├── triang_lpsi_c
│   ├── triang_upper
│   ├── triang_upsi_c
│   ├── volp_c
│   ├── wcurbd
│   ├── wplasmd
│   ├── wpol
│   ├── xpoint1_rc
│   ├── xpoint1_zc
│   ├── xpoint2_rc
│   ├── xpoint2_zc
│   ├── z
│   └── zbdry
├── esm
│   ├── area_outin_ratio
│   ├── av_t
│   ├── dr_sep_in
│   ├── dr_sep_out
│   ├── efm_comb_ratingav
│   ├── efm_rating_da
│   ├── efm_rating_daadg
│   ├── efm_rating_dia_flux
│   ├── efm_rating_ip
│   ├── fit_quality_n
│   ├── flux_exp_il
│   ├── flux_exp_iu
│   ├── flux_exp_ol
│   ├── flux_exp_ou
│   ├── g_iss95
│   ├── g_iter89p
│   ├── g_iter98pby2
│   ├── g_ne_8a
│   ├── g_ne_bar
│   ├── g_neoalc
│   ├── h_iss95
│   ├── h_iter89p
│   ├── h_iter98pby2
│   ├── h_ne_8a
│   ├── h_ne_bar
│   ├── h_neoalc
│   ├── ibmp1_r_larmor
│   ├── ibmp2_r_larmor
│   ├── ilspz
│   ├── iss95
│   ├── iter89p
│   ├── iter98pby2
│   ├── iuspz
│   ├── multi_ts_time
│   ├── ne_8a
│   ├── ne_bar
│   ├── neo-alcator_low_a
│   ├── n_greenwald
│   ├── n_hugill
│   ├── obmp1_r_larmor
│   ├── obmp2_r_larmor
│   ├── olspr
│   ├── ouspr
│   ├── passnumber
│   ├── p_aux
│   ├── p_aux_error
│   ├── p_aux_guess
│   ├── p_loss
│   ├── p_loss_error
│   ├── p_loss_guess
│   ├── p_phi
│   ├── pphix
│   ├── primary_x_pt
│   ├── r
│   ├── radius
│   ├── r_ibmp_x1_psi
│   ├── r_ibmp_x2_psi
│   ├── r_larmor
│   ├── r_larmor_multi
│   ├── r_multi
│   ├── r_obmp_x1_psi
│   ├── r_obmp_x2_psi
│   ├── sp_valid
│   ├── status
│   ├── surface_area
│   ├── tau_e_guess
│   ├── time
│   ├── ts_time
│   ├── v_ion
│   ├── v_ion_multi
│   ├── v_loop_dynamic
│   ├── v_loop_static
│   ├── w_dot
│   └── x
├── esx
│   ├── lower_inv_psi
│   ├── lower_inv_radius
│   ├── passnumber
│   ├── status
│   ├── time
│   ├── upper_inv_psi
│   └── upper_inv_radius
├── rba
│   ├── data
│   └── time
├── rbb
│   ├── data
│   └── time
├── rbc
│   ├── data
│   └── time
├── rca
│   ├── data
│   ├── dim_0
│   ├── dim_1
│   └── error
├── rco
│   ├── data
│   └── time
├── rgb
│   ├── data
│   └── time
├── rgc
│   ├── data
│   └── time
├── rir
│   ├── data
│   └── time
├── rit
│   ├── data
│   └── time
├── xdc
│   ├── ai_raw_tf_current
│   ├── density_t_nelref
│   ├── ip_t_ipref
│   ├── shape_e_bverr1
│   ├── shape_s_camera_used
│   ├── shape_s_delta_psi
│   ├── shape_s_dpsi_dr
│   ├── shape_s_dpsiref
│   ├── shape_s_fluxerr1
│   ├── shape_s_fluxerr2
│   ├── shape_s_fluxerr3
│   ├── shape_s_fluxerr4
│   ├── shape_s_fluxerr5
│   ├── shape_t_drref
│   ├── time0
│   └── time1
├── xho
│   ├── edge_pixel
│   ├── edge_radius
│   ├── filtered_pixels
│   ├── frame_latency
│   ├── processing_time
│   ├── raw_pixels
│   └── ridge_pixel
├── xim
│   ├── cii_hu10_u
│   ├── da_bo10
│   ├── da_hl11_l1
│   ├── da_hl11_r1
│   ├── da_hm10_r
│   ├── da_hm10_r1
│   ├── da_hm10_t
│   ├── da_hu10_r1
│   ├── da_hu10_t
│   ├── da_hu10_u1
│   ├── da_to10
│   ├── dg_hu10_r2
│   ├── heii_eceleste
│   ├── light_end
│   ├── light_start
│   ├── mass_end
│   ├── mass_start
│   ├── pellet_halpha_2
│   ├── pellet_time
│   ├── preion_trig
│   ├── target
│   ├── time
│   ├── trigger
│   ├── ts_yag
│   └── xsa_logic_out
├── xma
│   ├── acq196_226_12
│   ├── acq196_227_24
│   ├── balun_1
│   ├── balun_2
│   ├── balun_3
│   ├── ccbv_01
│   ├── ccbv_02
│   ├── ccbv_03
│   ├── ccbv_04
│   ├── ccbv_05
│   ├── ccbv_06
│   ├── ccbv_07
│   ├── ccbv_08
│   ├── ccbv_09
│   ├── ccbv_10
│   ├── ccbv_11
│   ├── ccbv_12
│   ├── ccbv_13
│   ├── ccbv_14
│   ├── ccbv_15
│   ├── ccbv_16
│   ├── ccbv_17
│   ├── ccbv_18
│   ├── ccbv_19
│   ├── ccbv_20
│   ├── ccbv_21
│   ├── ccbv_22
│   ├── ccbv_23
│   ├── ccbv_24
│   ├── ccbv_25
│   ├── ccbv_26
│   ├── ccbv_27
│   ├── ccbv_28
│   ├── ccbv_29
│   ├── ccbv_30
│   ├── ccbv_31
│   ├── ccbv_32
│   ├── ccbv_33
│   ├── ccbv_34
│   ├── ccbv_35
│   ├── ccbv_36
│   ├── ccbv_37
│   ├── ccbv_38
│   ├── ccbv_39
│   ├── ccbv_40
│   ├── devices_d2_acq196_151_channel
│   ├── devices_d2_acq196_151_range
│   ├── devices_d6_acq196_226_channel
│   ├── devices_d6_acq196_226_range
│   ├── devices_d7_acq196_227_channel
│   ├── devices_d7_acq196_227_range
│   ├── devices_limit
│   ├── dia_comp
│   ├── dia_loop
│   ├── dia_loopdot
│   ├── dim_0
│   ├── dim_1
│   ├── dtest_3
│   ├── dtest_4
│   ├── fl_cc01
│   ├── fl_cc02
│   ├── fl_cc03
│   ├── fl_cc04
│   ├── fl_cc05
│   ├── fl_cc07
│   ├── fl_cc08
│   ├── fl_cc09
│   ├── fl_cc10
│   ├── fl_p2l1
│   ├── fl_p2l2
│   ├── fl_p2l3
│   ├── fl_p2l4
│   ├── fl_p2u1
│   ├── fl_p2u2
│   ├── fl_p2u3
│   ├── fl_p2u4
│   ├── fl_p3l1
│   ├── fl_p3l4
│   ├── fl_p3u1
│   ├── fl_p3u4
│   ├── fl_p4l1
│   ├── fl_p4l4
│   ├── fl_p4u1
│   ├── fl_p4u4
│   ├── fl_p5l1
│   ├── fl_p5l4
│   ├── fl_p5u1
│   ├── fl_p5u4
│   ├── fl_p6l1
│   ├── fl_p6u1
│   ├── hscl_dot
│   ├── hscu_dot
│   ├── htest_1
│   ├── htest_2
│   ├── htest_3
│   ├── htest_4
│   ├── int_test_ch1
│   ├── int_test_ch2
│   ├── int_test_ch3
│   ├── int_test_ch4
│   ├── lv_cc01
│   ├── lv_cc02
│   ├── lv_cc03
│   ├── lv_cc04
│   ├── lv_cc05
│   ├── lv_cc06
│   ├── lv_cc07
│   ├── lv_cc08
│   ├── lv_cc09
│   ├── lv_cc10
│   ├── lv_p2l1
│   ├── lv_p2l2
│   ├── lv_p2l3
│   ├── lv_p2l4
│   ├── lv_p2u1
│   ├── lv_p2u2
│   ├── lv_p2u3
│   ├── lv_p2u4
│   ├── lv_p3l4
│   ├── lv_p3u4
│   ├── lv_p4l4
│   ├── lv_p4u4
│   ├── lv_p5l4
│   ├── lv_p5u4
│   ├── lv_p6l1
│   ├── lv_p6u1
│   ├── obr_01
│   ├── obr_02
│   ├── obr_03
│   ├── obr_04
│   ├── obr_05
│   ├── obr_06
│   ├── obr_07
│   ├── obr_08
│   ├── obr_09
│   ├── obr_10
│   ├── obr_11
│   ├── obr_12
│   ├── obr_13
│   ├── obr_14
│   ├── obr_15
│   ├── obr_16
│   ├── obr_17
│   ├── obr_18
│   ├── obv_01
│   ├── obv_02
│   ├── obv_03
│   ├── obv_04
│   ├── obv_05
│   ├── obv_06
│   ├── obv_07
│   ├── obv_08
│   ├── obv_09
│   ├── obv_10
│   ├── obv_11
│   ├── obv_12
│   ├── obv_13
│   ├── obv_14
│   ├── obv_15
│   ├── obv_16
│   ├── obv_17
│   ├── obv_18
│   ├── obv_19
│   ├── p6_volts
│   ├── pcs_1
│   ├── pcs_2
│   ├── pcs_3
│   ├── pcs_4
│   ├── ref_rog
│   ├── rog_cc_tfl
│   ├── rog_cc_tfu
│   ├── rog_elm_l01
│   ├── rog_elm_l02
│   ├── rog_elm_l03
│   ├── rog_elm_l04
│   ├── rog_elm_l05
│   ├── rog_elm_l06
│   ├── rog_elm_l07
│   ├── rog_elm_l08
│   ├── rog_elm_l09
│   ├── rog_elm_l10
│   ├── rog_elm_l11
│   ├── rog_elm_l12
│   ├── rog_elm_u01
│   ├── rog_elm_u03
│   ├── rog_elm_u05
│   ├── rog_elm_u07
│   ├── rog_elm_u09
│   ├── rog_elm_u11
│   ├── rogext_efps
│   ├── rogext_error_ne
│   ├── rogext_error_se
│   ├── rogext_p2l1
│   ├── rogext_p2l2
│   ├── rogext_p2u1
│   ├── rogext_p2u2
│   ├── rogext_p3l
│   ├── rogext_p3u
│   ├── rogext_p4l
│   ├── rogext_p4u
│   ├── rogext_p5l
│   ├── rogext_p5u
│   ├── rogext_p6l1
│   ├── rogext_p6l2
│   ├── rogext_sol
│   ├── rogext_tf
│   ├── rogext_tf1
│   ├── rogext_tf2
│   ├── rogext_tfdiff
│   ├── rog_ip01_1
│   ├── rog_ip01_2
│   ├── rog_ip01_3
│   ├── rog_ip01_4
│   ├── rog_ip02_1
│   ├── rog_ip02_2
│   ├── rog_ip02_3
│   ├── rog_ip02_4
│   ├── rog_p2l1
│   ├── rog_p2l2
│   ├── rog_p2u1
│   ├── rog_p2u2
│   ├── rog_p3l1
│   ├── rog_p3l2
│   ├── rog_p3u1
│   ├── rog_p3u2
│   ├── rog_p4l1
│   ├── rog_p4l2
│   ├── rog_p4u1
│   ├── rog_p4u2
│   ├── rog_p5l1
│   ├── rog_p5l2
│   ├── rog_p5u1
│   ├── rog_p5u2
│   ├── rog_p6l1
│   ├── rog_p6l2
│   ├── rog_p6u1
│   ├── rog_p6u2
│   ├── rtip_inp1
│   ├── rtip_inp2
│   ├── rtip_inp3
│   ├── rtip_inp4
│   ├── rtip_mon1
│   ├── rtip_mon2
│   ├── rtip_mon3
│   ├── rtip_mon4
│   ├── rtip_out1
│   ├── rtip_out2
│   ├── rtip_out3
│   ├── rtip_out4
│   ├── time
│   ├── time1
│   ├── time2
│   └── time3
├── xmb
│   ├── acq196_152_ch96
│   ├── dev4_acq196_383_ch32
│   ├── devices_d3_acq196_152_channel
│   ├── devices_d3_acq196_152_range
│   ├── devices_d4_acq196_383_channel
│   ├── devices_d4_acq196_383_range
│   ├── devices_limit
│   ├── dim_0
│   ├── dim_1
│   ├── halo_elm_l1
│   ├── halo_elm_l2
│   ├── halo_elm_l3
│   ├── halo_elm_l4
│   ├── halo_elm_u1
│   ├── halo_elm_u2
│   ├── halo_elm_u3
│   ├── halo_elm_u4
│   ├── halo_mbd1
│   ├── halo_mbd2
│   ├── halo_mbd3
│   ├── halo_mbd4
│   ├── halo_mbd5
│   ├── halo_mbd6
│   ├── halo_p2l1
│   ├── halo_p2l2
│   ├── halo_p2l3
│   ├── halo_p2l4
│   ├── halo_p2l5
│   ├── halo_p2l6
│   ├── halo_p2u1
│   ├── halo_p2u2
│   ├── halo_p2u3
│   ├── halo_p2u4
│   ├── halo_p2u5
│   ├── halo_p2u6
│   ├── halo_p3l1
│   ├── halo_p3l2
│   ├── halo_p3l3
│   ├── halo_p3l4
│   ├── halo_p3l5
│   ├── halo_p3l6
│   ├── halo_p3u1
│   ├── halo_p3u2
│   ├── halo_p3u3
│   ├── halo_p3u4
│   ├── halo_p3u5
│   ├── halo_p3u6
│   ├── phalo_epl_i1
│   ├── phalo_epl_i2
│   ├── phalo_epl_i3
│   ├── phalo_epl_i4
│   ├── phalo_epl_o1
│   ├── phalo_epl_o2
│   ├── phalo_epl_o3
│   ├── phalo_epl_o4
│   ├── phalo_epl_o5
│   ├── phalo_epl_o6
│   ├── phalo_epu_i1
│   ├── phalo_epu_i2
│   ├── phalo_epu_i3
│   ├── phalo_epu_i4
│   ├── phalo_epu_o1
│   ├── phalo_epu_o2
│   ├── phalo_epu_o3
│   ├── phalo_epu_o4
│   ├── phalo_epu_o6
│   ├── phalo_p2l_i1
│   ├── phalo_p2l_i2
│   ├── phalo_p2l_i3
│   ├── phalo_p2l_i4
│   ├── phalo_p2l_i5
│   ├── phalo_p2l_i6
│   ├── phalo_p2l_o1
│   ├── phalo_p2l_o2
│   ├── phalo_p2l_o3
│   ├── phalo_p2l_o4
│   ├── phalo_p2u_i1
│   ├── phalo_p2u_i2
│   ├── phalo_p2u_i3
│   ├── phalo_p2u_i4
│   ├── phalo_p2u_i5
│   ├── phalo_p2u_i6
│   ├── phalo_p2u_o1
│   ├── phalo_p2u_o2
│   ├── phalo_p2u_o3
│   ├── phalo_p2u_o4
│   ├── sad_out_l01
│   ├── sad_out_l02
│   ├── sad_out_l03
│   ├── sad_out_l04
│   ├── sad_out_l05
│   ├── sad_out_l06
│   ├── sad_out_l07
│   ├── sad_out_l08
│   ├── sad_out_l09
│   ├── sad_out_l10
│   ├── sad_out_l11
│   ├── sad_out_l12
│   ├── sad_out_m01
│   ├── sad_out_m02
│   ├── sad_out_m03
│   ├── sad_out_m04
│   ├── sad_out_m05
│   ├── sad_out_m06
│   ├── sad_out_m07
│   ├── sad_out_m08
│   ├── sad_out_m09
│   ├── sad_out_m10
│   ├── sad_out_m11
│   ├── sad_out_m12
│   ├── sad_out_u01
│   ├── sad_out_u02
│   ├── sad_out_u03
│   ├── sad_out_u04
│   ├── sad_out_u05
│   ├── sad_out_u06
│   ├── sad_out_u07
│   ├── sad_out_u08
│   ├── sad_out_u09
│   ├── sad_out_u10
│   ├── sad_out_u11
│   ├── sad_out_u12
│   ├── time
│   └── time1
├── xmo
│   ├── devices_d3_acq216_025_channel
│   ├── devices_d3_acq216_025_range
│   ├── devices_limit
│   ├── dim_0
│   ├── dim_1
│   ├── omaha_1lz
│   ├── omaha_2lt
│   ├── omaha_2lz
│   ├── omaha_3lt
│   ├── omaha_3lz
│   ├── omaha_4lr
│   ├── omaha_4lt
│   ├── omaha_4lz
│   ├── omaha_5lt
│   ├── omaha_5lz
│   ├── omaha_5ur
│   ├── omaha_5ut
│   ├── omaha_5uz
│   ├── omaha_6lz
│   ├── time
│   └── time1
├── xpc
│   ├── a14_0116#06
│   ├── a14_0118#03
│   ├── a14_0118#06
│   ├── chfs_drive
│   ├── clamp_p1_drive
│   ├── clamp_p2_drive
│   ├── clamp_predict_p1
│   ├── clamp_predict_p2
│   ├── co2
│   ├── ecel_mod_drive
│   ├── fa_drive
│   ├── fa_drive_dizic
│   ├── gas_bc11_drive
│   ├── gas_bc11_ref
│   ├── gas_bc5_drive
│   ├── gas_bc5_ref
│   ├── gas_hecc_drive
│   ├── gas_hecc_ref
│   ├── gas_hl11_drive
│   ├── gas_hl11_ref
│   ├── gas_hl1_drive
│   ├── gas_hl1_ref
│   ├── gas_hm12a_drive
│   ├── gas_hm12a_ref
│   ├── gas_hm12b_drive
│   ├── gas_hm12b_ref
│   ├── gas_hu11_drive
│   ├── gas_hu11_ref
│   ├── gas_hu6_drive
│   ├── gas_hu6_ref
│   ├── gas_hu8_drive
│   ├── gas_hu8_ref
│   ├── gas_ibfla_drive
│   ├── gas_ibfla_ref
│   ├── gas_ibflb_drive
│   ├── gas_ibflb_ref
│   ├── gas_ibfua_drive
│   ├── gas_ibfua_ref
│   ├── gas_ibfub_drive
│   ├── gas_ibfub_ref
│   ├── gas_ibil_drive
│   ├── gas_ibil_ref
│   ├── gas_spare_drive
│   ├── gas_spare_ref
│   ├── gas_tc11_drive
│   ├── gas_tc11_ref
│   ├── gas_tc5a_drive
│   ├── gas_tc5a_ref
│   ├── gas_tc5b_drive
│   ├── gas_tc5b_ref
│   ├── hene
│   ├── lincam1
│   ├── lincam2
│   ├── nbi_ss_current
│   ├── nbi_ss_volts
│   ├── nbi_sw_volts
│   ├── rtip_fast
│   ├── time
│   ├── trcf_0102_05
│   ├── trcf_0102_06
│   ├── trcf_0102_07
│   ├── trcf_0102_08
│   ├── trcf_0102_09
│   ├── trcf_0104_10
│   ├── trcf_0104_11
│   ├── trcf_0104_12
│   ├── trcf_0104_13
│   ├── trcf_0104_14
│   ├── trcf_0104_15
│   ├── trcf_0104_16
│   ├── trcf_0104_5
│   ├── trcf_0104_6
│   ├── trcf_0104_9
│   ├── z_d_f_b
│   └── zip_velocity
└── xsx
    ├── acq196_061_ch01
    ├── acq196_147_96
    ├── devices_d112_acq196_061_channel
    ├── devices_d112_acq196_061_range
    ├── devices_d2_acq196_147_channel
    ├── devices_d2_acq196_147_range
    ├── devices_limit
    ├── dim_0
    ├── dim_1
    ├── hcam_l
    ├── hcam_l_channel
    ├── hcam_l_p_mm
    ├── hcam_l_r1
    ├── hcam_l_r2
    ├── hcam_l_theta_rad
    ├── hcam_l_z1
    ├── hcam_l_z2
    ├── hcam_u
    ├── hcam_u_channel
    ├── hcam_u_p_mm
    ├── hcam_u_r1
    ├── hcam_u_r2
    ├── hcam_u_theta_rad
    ├── hcam_u_z1
    ├── hcam_u_z2
    ├── relay_monitor
    ├── tcam
    ├── tcam_channel
    ├── tcam_p_mm
    ├── tcam_r1
    ├── tcam_r2
    ├── tcam_theta_rad
    ├── tcam_z1
    ├── tcam_z2
    ├── time
    └── time1

1525 directories, 0 files

Explore amx, ayc, atm#

  • amc is the plasma current data.

  • ayc is the Thomspon scattering data.

  • ane is CO2 interferometer data.

  • efm is equilibrium reconstruction data (EFIT).

  • xmo is the magnetic data example Mirnov coils.

  • rbais Photron bullet camera A.

  • rbb is Photron bullet camera B.

# Set up the S3 storage options
shot_number = 30420
endpoint = "https://s3.echo.stfc.ac.uk"
fs = s3fs.S3FileSystem(endpoint_url=endpoint, anon=True)

filename = "s3://mast/level1/shots/"+ str(shot_number) + ".zarr"
datasets = {
    "amc": filename + "/amc",
    "ayc": filename + "/ayc",
    "atm": filename + "/atm"
}

loaded_datasets = {}

for name, path in datasets.items():
    try:
        loaded_datasets[name] = xr.open_zarr(fs.get_mapper(path))
        print(f"Successfully loaded: {name}")
    except Exception as e:
        print(f"Error loading '{name}': {e}")
Successfully loaded: amc
Successfully loaded: ayc
Error loading 'atm': No such file or directory: '<fsspec.mapping.FSMap object at 0x7bc972488250>'
loaded_datasets["amc"]
<xarray.Dataset> Size: 5MB
Dimensions:            (time: 30000)
Coordinates:
  * time               (time) float32 120kB -2.0 -2.0 -2.0 ... 3.999 4.0 4.0
Data variables: (12/46)
    efps_current       (time) float32 120kB dask.array<chunksize=(30000,), meta=np.ndarray>
    error_field_02     (time) float32 120kB dask.array<chunksize=(30000,), meta=np.ndarray>
    error_field_05     (time) float32 120kB dask.array<chunksize=(30000,), meta=np.ndarray>
    p2il_coil_current  (time) float32 120kB dask.array<chunksize=(30000,), meta=np.ndarray>
    p2il_feed_current  (time) float32 120kB dask.array<chunksize=(30000,), meta=np.ndarray>
    p2iu_coil_current  (time) float32 120kB dask.array<chunksize=(30000,), meta=np.ndarray>
    ...                 ...
    p6u_current        (time) float32 120kB dask.array<chunksize=(30000,), meta=np.ndarray>
    plasma_current     (time) float32 120kB dask.array<chunksize=(30000,), meta=np.ndarray>
    sol_current        (time) float32 120kB dask.array<chunksize=(30000,), meta=np.ndarray>
    status             float32 4B ...
    tf_current         (time) float32 120kB dask.array<chunksize=(30000,), meta=np.ndarray>
    version            float32 4B ...
Attributes:
    description:  Plasma Current and PF/TF Coil Currents
    file_name:    amc0304.20
    format:       IDA3
    mds_name:     None
    name:         amc
    quality:      Not Checked
    shot_id:      30420
    signal_type:  Analysed
    source:       amc
    uda_name:     AMC
    uuid:         01aad0c4-2a84-59e2-8b1b-168b4bd66aa3
    version:      0
loaded_datasets["ayc"]
<xarray.Dataset> Size: 1MB
Dimensions:              (acqiris_time: 73, radial_index: 131, arb: 130,
                          time: 73, spectral_index: 4, instrument_time: 20,
                          time_segment: 73, xyc_time: 73)
Coordinates:
  * acqiris_time         (acqiris_time) float32 292B 0.0 1.0 2.0 ... 71.0 72.0
  * arb                  (arb) float32 520B 0.0 1.0 2.0 ... 127.0 128.0 129.0
  * instrument_time      (instrument_time) float32 80B 1.0 2.0 3.0 ... 19.0 20.0
  * radial_index         (radial_index) float32 524B 0.0 1.0 2.0 ... 129.0 130.0
  * spectral_index       (spectral_index) float32 16B 1.0 2.0 3.0 4.0
  * time                 (time) float32 292B 0.004166 0.008332 ... 0.3 0.3042
  * xyc_time             (xyc_time) float32 292B 0.0 1.0 2.0 ... 70.0 71.0 72.0
Dimensions without coordinates: time_segment
Data variables: (12/36)
    acqiris_time_        (acqiris_time) float32 292B dask.array<chunksize=(73,), meta=np.ndarray>
    angle                (radial_index) float32 524B dask.array<chunksize=(131,), meta=np.ndarray>
    aspectra             (time, radial_index, spectral_index) float32 153kB dask.array<chunksize=(73, 131, 4), meta=np.ndarray>
    chi2                 (time, radial_index) float32 38kB dask.array<chunksize=(73, 131), meta=np.ndarray>
    covariance_ne_te     (time, radial_index) float32 38kB dask.array<chunksize=(73, 131), meta=np.ndarray>
    instrument_dr        (instrument_time, radial_index) float32 10kB dask.array<chunksize=(20, 131), meta=np.ndarray>
    ...                   ...
    te_error             (time, radial_index) float32 38kB dask.array<chunksize=(73, 131), meta=np.ndarray>
    version_fibre        float32 4B ...
    version_poly         float32 4B ...
    version_raman        float32 4B ...
    xyc_time_            (xyc_time) float32 292B dask.array<chunksize=(73,), meta=np.ndarray>
    yag_nelint           (time) float32 292B dask.array<chunksize=(73,), meta=np.ndarray>
Attributes:
    description:  Core Thomson scattering data
    file_name:    ayc0304.20
    format:       IDA3
    mds_name:     None
    name:         ayc
    quality:      Not Checked
    shot_id:      30420
    signal_type:  Analysed
    source:       ayc
    uda_name:     AYC
    uuid:         8d043ece-8bf8-5af8-87e4-d2a1b01716fa
    version:      0
loaded_datasets["atm"]
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
/tmp/ipykernel_3085215/263473155.py in <module>
----> 1 loaded_datasets["atm"]

KeyError: 'atm'

Grab useful parameters#

  • Electron density \(n_e\): The number of electrons per unit volume in the plasma.

  • Electron temperature \(T_e\): The temperature of the electrons in the plasma.

  • Radiated power (bolometers) \(P_{rad}\): The power radiated by the plasma.

  • Internal inductance \(l_i\): A measure of the plasma’s inductance.

  • plasma current \(I_p\): The flow of charged particles in the plasma.

# plasma current
loaded_datasets["amc"]["plasma_current"]
<xarray.DataArray 'plasma_current' (time: 30000)> Size: 120kB
dask.array<open_dataset-plasma_current, shape=(30000,), dtype=float32, chunksize=(30000,), chunktype=numpy.ndarray>
Coordinates:
  * time     (time) float32 120kB -2.0 -2.0 -2.0 -1.999 ... 3.999 3.999 4.0 4.0
Attributes: (12/18)
    description:  Plasma Current
    dims:         ['time']
    file_name:    None
    format:       None
    label:        Plasma Current
    mds_name:     \TOP.ANALYSED.AMC.PLASMA:CURRENT
    ...           ...
    source:       amc
    time_index:   0
    uda_name:     AMC_PLASMA CURRENT
    units:        kA
    uuid:         6327e756-e587-5c74-8aed-4e595d3546cf
    version:      0
# Electron density
loaded_datasets["ayc"]["ne"]
<xarray.DataArray 'ne' (time: 73, radial_index: 131)> Size: 38kB
dask.array<open_dataset-ne, shape=(73, 131), dtype=float32, chunksize=(73, 131), chunktype=numpy.ndarray>
Coordinates:
  * radial_index  (radial_index) float32 524B 0.0 1.0 2.0 ... 128.0 129.0 130.0
  * time          (time) float32 292B 0.004166 0.008332 0.0125 ... 0.3 0.3042
Attributes: (12/18)
    description:  Electron Density
    dims:         ['time', 'radial_index']
    file_name:    None
    format:       None
    label:        electron density
    mds_name:     \TOP.ANALYSED.AYC:NE
    ...           ...
    source:       ayc
    time_index:   0
    uda_name:     AYC_NE
    units:        1 / m ** 3
    uuid:         0141808d-ccda-5bce-917c-2eebd553f22f
    version:      0
# Electron temperature
loaded_datasets["ayc"]["te"]
<xarray.DataArray 'te' (time: 73, radial_index: 131)> Size: 38kB
dask.array<open_dataset-te, shape=(73, 131), dtype=float32, chunksize=(73, 131), chunktype=numpy.ndarray>
Coordinates:
  * radial_index  (radial_index) float32 524B 0.0 1.0 2.0 ... 128.0 129.0 130.0
  * time          (time) float32 292B 0.004166 0.008332 0.0125 ... 0.3 0.3042
Attributes: (12/18)
    description:  Electron Temperature
    dims:         ['time', 'radial_index']
    file_name:    None
    format:       None
    label:        electron temperature
    mds_name:     \TOP.ANALYSED.AYC:TE
    ...           ...
    source:       ayc
    time_index:   0
    uda_name:     AYC_TE
    units:        eV
    uuid:         54a16683-8517-5f0e-a242-f36d4fbfb9ba
    version:      0
# internal inductance $l_i$
# radiated power (bolometer)

Data in level 2#

Download using the following command:

./s5cmd --no-sign-request --endpoint-url https://s3.echo.stfc.ac.uk cp "s3://mast/level2/shots/30420.zarr/*" ./30420.zarr/level2/
! ls "/home/hell/Desktop/UKAEA/Projects/1. 2024/1. Dec/1. Disruptions/bulk download/30420_level2.zarr"
control  equilibrium  mirnov	  soft_x_rays  thomson_scattering
dalpha	 magnetics    mirnov_fft  summary
! tree "/home/hell/Desktop/UKAEA/Projects/1. 2024/1. Dec/1. Disruptions/bulk download/30420_level2.zarr" -L 2
/home/hell/Desktop/UKAEA/Projects/1. 2024/1. Dec/1. Disruptions/bulk download/30420_level2.zarr
├── control
│   ├── gas
│   ├── gas_channel
│   ├── ref_plasma_current
│   ├── ref_plasma_density
│   ├── time
│   └── vertical_control
├── dalpha
│   ├── dalpha_mid_plane_center
│   ├── dalpha_mid_plane_wide
│   ├── dalpha_tangential
│   └── time
├── equilibrium
│   ├── beta_normal
│   ├── beta_pol
│   ├── beta_tor
│   ├── bphi_rmag
│   ├── bvac_rmag
│   ├── da_rating
│   ├── elongation
│   ├── elongation_axis
│   ├── ip_rating
│   ├── lcfs_r
│   ├── lcfs_z
│   ├── li
│   ├── magnetic_axis_r
│   ├── magnetic_axis_z
│   ├── magnetic_flux
│   ├── major_radius
│   ├── minor_radius
│   ├── n_boundary_coords
│   ├── n_x_points
│   ├── plasma_current
│   ├── profile_r
│   ├── q
│   ├── q100
│   ├── q90
│   ├── q95
│   ├── q_axis
│   ├── rpsi100_in
│   ├── rpsi100_out
│   ├── rpsi90_in
│   ├── rpsi90_out
│   ├── rpsi95_in
│   ├── rpsi95_out
│   ├── time
│   ├── triangularity_lower
│   ├── triangularity_upper
│   ├── vloop_dynamic
│   ├── vloop_static
│   ├── whmd
│   ├── x_point_r
│   ├── x_point_z
│   └── z
├── magnetics
│   ├── center_column
│   ├── center_column_channel
│   ├── coil_currents
│   ├── coil_currents_channel
│   ├── coil_voltages
│   ├── coil_voltages_channel
│   ├── flux_loops
│   ├── flux_loops_channel
│   ├── outer_discrete
│   ├── outer_discrete_channel
│   ├── saddle_coils
│   ├── saddle_coils_channel
│   └── time
├── mirnov
│   ├── omv_110
│   ├── omv_210
│   ├── omv_310
│   └── time
├── mirnov_fft
│   ├── frequency
│   ├── omv_110_angles
│   ├── omv_110_spectrogram
│   ├── omv_210_angles
│   ├── omv_210_spectrogram
│   ├── omv_310_angles
│   ├── omv_310_spectrogram
│   └── time
├── soft_x_rays
│   ├── hcam_l
│   ├── hcam_l_channel
│   ├── hcam_u
│   ├── hcam_u_channel
│   ├── tcam
│   ├── tcam_channel
│   └── time
├── summary
│   ├── gas_inboard_total
│   ├── gas_outboard_total
│   ├── gas_pressure
│   ├── integrated_electron_density
│   ├── line_averaged_density
│   ├── neutron_flux
│   ├── plasma_current
│   ├── sol_current
│   └── time
└── thomson_scattering
    ├── major_radius
    ├── ne
    ├── ne_core
    ├── pe
    ├── te
    ├── te_core
    └── time

108 directories, 0 files

Exploring level 2 data#

# Set up the S3 storage options
shot_id = 30420
endpoint = "https://s3.echo.stfc.ac.uk"
url = f's3://mast/level2/shots/{shot_id}.zarr'
fs = fsspec.filesystem(
  **dict(
    protocol='simplecache',
    target_protocol="s3",
    target_options=dict(anon=True, endpoint_url=endpoint)
  )
)

filename = "s3://mast/level2/shots/"+ str(shot_number) + ".zarr"
store = zarr.storage.FSStore(fs=fs, url=url)
datasets = {
    "control": "control",
    "summary": "summary",
    "magnetics": "magnetics",
    "dalpha": "dalpha",
    "soft_x_rays": "soft_x_rays",
    "thomson_scattering": "thomson_scattering",

}

loaded_datasets_level2 = {}

for name, group in datasets.items():
    try:
        loaded_datasets_level2[name] = xr.open_zarr(store, group)
        print(f"Successfully loaded: {name}")
    except Exception as e:
        print(f"Error loading '{name}': {e}")
Successfully loaded: control
Successfully loaded: summary
Successfully loaded: magnetics
Successfully loaded: dalpha
Successfully loaded: soft_x_rays
Successfully loaded: thomson_scattering
loaded_datasets_level2[datasets["control"]]
<xarray.Dataset> Size: 336kB
Dimensions:             (gas_channel: 20, time: 1743)
Coordinates:
  * gas_channel         (gas_channel) <U16 1kB '/xdc/gas/f/bc11' ... '/xdc/ga...
  * time                (time) float64 14kB -0.0568 -0.05655 ... 0.3784 0.3787
Data variables:
    gas                 (gas_channel, time) float64 279kB dask.array<chunksize=(10, 1743), meta=np.ndarray>
    ref_plasma_current  (time) float64 14kB dask.array<chunksize=(1743,), meta=np.ndarray>
    ref_plasma_density  (time) float64 14kB dask.array<chunksize=(1743,), meta=np.ndarray>
    vertical_control    (time) float64 14kB dask.array<chunksize=(1743,), meta=np.ndarray>
loaded_datasets_level2[datasets["summary"]]                                                             
<xarray.Dataset> Size: 125kB
Dimensions:                      (time: 1743)
Coordinates:
  * time                         (time) float64 14kB -0.0568 -0.05655 ... 0.3787
Data variables:
    gas_inboard_total            (time) float64 14kB dask.array<chunksize=(1743,), meta=np.ndarray>
    gas_outboard_total           (time) float64 14kB dask.array<chunksize=(1743,), meta=np.ndarray>
    gas_pressure                 (time) float64 14kB dask.array<chunksize=(1743,), meta=np.ndarray>
    integrated_electron_density  (time) float64 14kB dask.array<chunksize=(1743,), meta=np.ndarray>
    line_averaged_density        (time) float64 14kB dask.array<chunksize=(1743,), meta=np.ndarray>
    neutron_flux                 (time) float64 14kB dask.array<chunksize=(1743,), meta=np.ndarray>
    plasma_current               (time) float64 14kB dask.array<chunksize=(1743,), meta=np.ndarray>
    sol_current                  (time) float64 14kB dask.array<chunksize=(1743,), meta=np.ndarray>
loaded_datasets_level2[datasets["magnetics"]]
<xarray.Dataset> Size: 476kB
Dimensions:                 (center_column_channel: 5, time: 1743,
                             coil_currents_channel: 6,
                             coil_voltages_channel: 4, flux_loops_channel: 6,
                             outer_discrete_channel: 8, saddle_coils_channel: 4)
Coordinates:
  * center_column_channel   (center_column_channel) <U11 220B 'xma/ccbv/04' ....
  * coil_currents_channel   (coil_currents_channel) <U20 480B 'AMC_P3L COIL C...
  * coil_voltages_channel   (coil_voltages_channel) <U12 192B '/xdc/pf/f/p1' ...
  * flux_loops_channel      (flux_loops_channel) <U12 288B 'AMB_FL/CC03' ... ...
  * outer_discrete_channel  (outer_discrete_channel) <U10 320B 'xma/obr/03' ....
  * saddle_coils_channel    (saddle_coils_channel) <U15 240B 'xmb/sad/out/m01...
  * time                    (time) float64 14kB -0.0568 -0.05655 ... 0.3787
Data variables:
    center_column           (center_column_channel, time) float64 70kB dask.array<chunksize=(5, 1743), meta=np.ndarray>
    coil_currents           (coil_currents_channel, time) float64 84kB dask.array<chunksize=(6, 1743), meta=np.ndarray>
    coil_voltages           (coil_voltages_channel, time) float64 56kB dask.array<chunksize=(4, 1743), meta=np.ndarray>
    flux_loops              (flux_loops_channel, time) float64 84kB dask.array<chunksize=(6, 1743), meta=np.ndarray>
    outer_discrete          (outer_discrete_channel, time) float64 112kB dask.array<chunksize=(8, 1743), meta=np.ndarray>
    saddle_coils            (saddle_coils_channel, time) float64 56kB dask.array<chunksize=(4, 1743), meta=np.ndarray>
loaded_datasets_level2[datasets["dalpha"]]
<xarray.Dataset> Size: 697kB
Dimensions:                  (time: 21780)
Coordinates:
  * time                     (time) float64 174kB -0.0568 -0.05678 ... 0.3788
Data variables:
    dalpha_mid_plane_center  (time) float64 174kB dask.array<chunksize=(21780,), meta=np.ndarray>
    dalpha_mid_plane_wide    (time) float64 174kB dask.array<chunksize=(21780,), meta=np.ndarray>
    dalpha_tangential        (time) float64 174kB dask.array<chunksize=(21780,), meta=np.ndarray>
loaded_datasets_level2[datasets["soft_x_rays"]]
<xarray.Dataset> Size: 96MB
Dimensions:         (hcam_l_channel: 18, time: 217800, hcam_u_channel: 18,
                     tcam_channel: 18)
Coordinates:
  * hcam_l_channel  (hcam_l_channel) <U14 1kB '/xsx/HCAM/L/1' ... '/xsx/HCAM/...
  * hcam_u_channel  (hcam_u_channel) <U14 1kB '/xsx/HCAM/U/1' ... '/xsx/HCAM/...
  * tcam_channel    (tcam_channel) <U12 864B '/xsx/TCAM/1' ... '/xsx/TCAM/9'
  * time            (time) float64 2MB -0.0568 -0.0568 -0.0568 ... 0.3788 0.3788
Data variables:
    hcam_l          (hcam_l_channel, time) float64 31MB dask.array<chunksize=(3, 27225), meta=np.ndarray>
    hcam_u          (hcam_u_channel, time) float64 31MB dask.array<chunksize=(3, 27225), meta=np.ndarray>
    tcam            (tcam_channel, time) float64 31MB dask.array<chunksize=(3, 27225), meta=np.ndarray>
loaded_datasets_level2[datasets["thomson_scattering"]]
<xarray.Dataset> Size: 257kB
Dimensions:       (major_radius: 120, time: 88)
Coordinates:
  * major_radius  (major_radius) float64 960B 0.3 0.31 0.32 ... 1.47 1.48 1.49
  * time          (time) float64 704B -0.0568 -0.0518 -0.0468 ... 0.3732 0.3782
Data variables:
    ne            (time, major_radius) float64 84kB dask.array<chunksize=(88, 120), meta=np.ndarray>
    ne_core       (time) float64 704B dask.array<chunksize=(88,), meta=np.ndarray>
    pe            (time, major_radius) float64 84kB dask.array<chunksize=(88, 120), meta=np.ndarray>
    te            (time, major_radius) float64 84kB dask.array<chunksize=(88, 120), meta=np.ndarray>
    te_core       (time) float64 704B dask.array<chunksize=(88,), meta=np.ndarray>