MDSplus trees
Contents
Procedures for updates and changes to the tree should be followed rigorously to keep the tree in working, comprehensible order.
LTX-β Trees
Environment variables needed in .cshrc on portal for LTX-β tree access:
LTX_B: setenv ltx_b_path 'lithos.pppl.gov:8000::'
LTX_CAMERAS: setenv ltx_cameras_path 'lithos.pppl.gov:8000::'
LTX_NBI: setenv ltx_nbi_path 'lithos.pppl.gov:8000::'
TOYTREE: setenv toytree_path 'lithos.pppl.gov:8000::/usr/local/ltx/toytree'
Note that running codes from on Lithos requires these variables to be set in .bashrc, instead:
LTX_B: export ltx_b_path='ltxdata/new/ltx_b;/ltxdata/models/ltx_b'
LTX_CAMERAS: export ltx_cameras_path='ltxdata/new/ltx_cameras;/ltxdata/models/ltx_cameras'
LTX_NBI: export ltx_nbi_path='ltxdata/new/ltx_nbi;/ltxdata/models/ltx_nbi'
TOYTREE: export toytree_path='/usr/local/ltx/toytree'
LTX-β Trees are constructed by running a maketree script, LTXB_maketree.py, which currently resides in /usr/local/ltx/ on Lithos, with its attendant config files residing in /usr/local/ltx/maketree_configs.
LTX_B
Shots are numbered sequentially, starting with 100000. Test-shots (running digitizers and sending triggers only, but not energizing coils) are 4-digit numbers starting from 1000.
Suggestions for modifications to LTX_B:
- Store real timing in tree, make LabView read it from .TIMING nodes
- Rename .RECONSTRUCT to .ANALYSIS
- Standardize position/orientation metadata for diagnostics
Any changes to the maketree script should be recorded in the change notes metadata node, as well as the LTX_B maketree changelog.
Top-Level Structure
The tree is divided into top nodes based on function:
- .DEVICES contains hardware nodes which store raw shot data from digitizer channels (written either by the digitizer itself, or by a customized script), as well as calibration data for the integrators. Devices are grouped by type (e.g. NI, DTACQ, etc). Shot data should never be changed and the nodes should always be set WriteOnce. The data in this nodes should be accessed through pointers from processed data nodes.
- .DIAGNOSTICS contains nodes for processed data from plasma physics diagnostics, such as flux loops, cameras, probes, interferometry, etc. See also .OPER_DIAGS for operational/engineering diagnostics.
- .DOWNSAMPLED nodes provide decimated signals (typically <50 time points) for quick shot comparison.
- .METADATA nodes store additional information about the shot, e.g. date, operator name, last tree rebuild, etc.
- .OPER_DIAGS contains nodes for processed data from operational/engineering diagnostics, such as thermocouples, coil current monitors, power supplies, etc, which are chiefly useful for interrogating machine performance and identifying problems.
- .RECONSTRUCT contains results of standard automated shot-to-shot PSI-Tri reconstructions, as well as other "reconstructed" quantities such as MHD activity and estimated current centroid from the Mirnov arrays.
- .TIMING stores triggering data for acquisition (e.g. digitizers) and control (e.g. ECH) systems.
Architecture Conventions
These conventions are not hard and fast rules, but strongly recommended to foster an accessible tree for future use. Generally speaking, global organizing standards apply from the top level down to the level where collaborators and other general users of the tree will require access; raw data, calibration, and other background features can be structured however is easiest for the owner of the diagnostic in question, but data intended to be read out for analysis should be assigned SI units wherever possible, and an appropriate timebase/"dimension" in the case of signal nodes.
Device Nodes
All digitizer channels should be housed in the .DEVICES top node with the following convention:
.DEVICES.[TYPE]:[CHASSIS]:[SLOT]:[CHANNEL]
- The top node (
.DEVICES.) is used to clearly segregate raw data. - The [TYPE] node (e.g.
NI) specifies the kind of digitizer/device. - The [CHASSIS] node (e.g.
OH_PXI_8110) identifies the specific digitizer or other device as mounted in the rack. Chassis names should be as unambiguous as possible, and match with the front-panel labeling of the device. NB: a special exception is the.CHRONOS_AOnode housing records of the analog output signals from Chronos. - The [SLOT] node (e.g.
PXI5105_S3) identifies the slot or board connected to a digitizer suite. This node is optional, since not all digitizers are broken up into separate boards. If used, it should identify both the board type (e.g. PXI-5105) and which slot of the chassis it plugs into (e.g. slot 3) in the format shown above. - The [CHANNEL] nodes (e.g.
INPUT_3) should match the labeled input/channel names, to avoid confusion.
Aside from digitizers, other hardware devices such as cameras and integrators can be given hardware nodes, as well, at the owner's request.
Diagnostic Signals
The following are recommendations to help standardize the layout of the tree as new diagnostics are added:
Ideally, each channel of processed data (e.g. each Mirnov coil) should have at least:
- Its own node (e.g.
.DIAGNOSTICS.MAGNETIC.IP_ROG) which contains the processed signal, with appropriate timebase, in SI units - A raw subnode (e.g.
.DIAGNOSTICS.MAGNETIC.IP_ROG.RAW)- This points to the source hardware node (e.g.
.DEVICES.DTACQ:NEOS:INPUT_92)
- This points to the source hardware node (e.g.
- Appropriate calibration data nodes, such as...
- A fixed calibration term (e.g.
.DIAGNOSTICS.MAGNETIC.IP_ROG.CAL) - A pointer to an integrator gain term (e.g.
.DIAGNOSTICS.MAGNETIC.IP_ROG.GAIN)
- A fixed calibration term (e.g.
The main node for the channel (.DIAGNOSTICS.MAGNETIC.IP_ROG above) is the signal a user would read, and should be populated either by a TDI script within the node (as in the above example), or by an external processing script.
LTX_CAMERAS
A sub-tree linked to from .DIAGNOSTICS.LTX_CAMERAS in LTX_B. Owned by Filippo Scotti.
LTX_NBI
A sub-tree for diagnostics and parameters of the neutral beam system, linked to from .OPER_DIAGS.LTX_NBI in LTX_B.
The tree structure is broken down into beam output diagnostics (.BEAM_DIAGS) including the beam acceleration components and calorimetry analysis results, nbiGUI parameter settings ((.SETTINGS)), signals output by integral beam source diagnostics not directly related to the beam (.SOURCE_DIAGS), and timing records (.TIMING). There is also a .METADATA node containing information such as LTX shot tree syncing, the timestamp associated with the nbiGUI files, and the nbiGUI shot number.
Nodes within .BEAM_DIAGS are split into .PERFORMANCE nodes storing beam current and voltage, as well as total deposited energy from calorimetry, and .POSITION nodes storing analyzed positional results from calorimetry measurements on the scrapers and the dump plate.
TOYTREE
TOYTREE serves as a safe testbed for significant, long-term charges to LTX_B, minimizing the time during which the tree will be broken while debugging.
LTX Trees
Contains hardware nodes, as well as raw and processed data from standard plasma and operational diagnostics, and other metadata (e.g. a calibration shot number from the tree "LTXCAL"). Shots are numbered as timestamps in a YYMMDDHHMM format.
There are some examples of use of pmds in Python in Erik Granstedt's codes in /u/egranste/bin/ltx/ and /u/egranste/bin/ltx/mdsplus
LTX
Structure
When a "2013" node exists (e.g. Flux_loops vs fluxloop2013), it is the more current version of the node. There are often multiple processed signal subnodes for use with scripts which can only draw data from the tree; the sensor node itself is often only a storage node, not a signal node.
Standard Shots
- Flat Te: 1504291652
- Used for reflectometry on slide 16 of this 2016 EPR talk
- ltxcal shot: 1309091052
- Daily summary at [1]
- Last shot with daily summary on \p\ltxdata\LTXDailySummaries: 1410221615
- ltxcal shot: 1309091052(?)
- NB: Ip trace from 1410221615 claims that the calibration shot is 1210221622!
- Craig's Thesis: 1111081819, 26, 34, 40, 54, 59; 1209141634, 1629, 1722, 1738
- Thomson profiles, 2012 shots had diamagnetic data
- TRANSP_LTX runs 103574 and 105989
- Erik's Thesis: 1112061424, 1702; 1112071141, 1428; 1112211444
- DEGAS 2 modeling
Diagnostic Calibration/Verification
- TF only: 1401231144, 1503021801
- All equilibrium coils, standard: 1503031600
- All equilibrium coils, weak OH: 1503031403
- Plasma shot: 1503031555
Coil Current Calibration/Verification
- DAQs only: 1401231132, 1401231138
- TF coil: 1401231144
- Red coil: 1401231200
- Blue coil: 1401231204
- Internal coil: 1401231209
- Orange coil: 1401231218
- Green coil: 1401231234
- Yellow coil: 1401231239
- OH coil: 1401231315
LTXCAL
Shots are numbered as timestamps in a YYMMDDHHMM format.
LTXPOST
Contains post-processed data. Likely to be deprecated. Shots are numbered as timestamps in a YYMMDDHHMM format. Typically correspond to a shot on the "LTX" tree.
Environment variables for .cshrc file to make traverser and dwscope work on portal:
LTX: setenv ltx_path 'lithos.pppl.gov:8000::'
LTXCAL: setenv ltxcal_path 'lithos.pppl.gov:8000::'
LTXPOST: setenv ltxpost_path 'lithos.pppl.gov:8000::'
Related Pages
Tree Changes - procedural notes on how changes to the trees should be carried out
Neutral_Beam - details of neutral beam operation, relevant for the LTX_NBI subtree
Analysis codes - A list of data analysis scripts with a brief description of their function and purpose, including those used for post-shot automation.