...
Warning |
---|
Warning Stop here for a moment. Make sure you have followed the configuration setup before proceeding any further! Configuration related tutorial is here -> Click me! <- |
2.1. Introduction
For the future versions of UAL physical implementation of back-ends will be fully transparent,
however current version of UAL is coupled only with MDSPlus engine used for storing/ reading data locally.
This part of tutorial provides you some tricks useful in everyday work.
2.2. MDSPlus database
MDSplus is a set of software tools for data acquisition and storage and a methodology for management of complex scientific data (source).
In order to benefit from UAL layer, scientific data must be stored in MDSPlus database. Before you will be able to use it, you have to create database's structure. This is fairly simple. All you have to do is to execute following commands:
source $ITMSCRIPTDIR/ITMv1 kepler test 4.10b > /dev/null $ITMSCRIPTDIR/create_user_itm_dir test 4.10bimasdb <machine_name>
At this point, you can check your public directory and browse through the database structure.
cd $HOME/public/itmdbimasdb/itm_trees
Explanation of the tree structure:
location | description | ||||
---|---|---|---|---|---|
$HOME/public/itmdb/ | itm_trees/$TOKAMAKNAME<machine_name>/<data_version>/<MDSPlus_tree_number>/ids_<shot><run>.* example: | ~owsiak~/public/imasdb/test/3/0/ids_120001.* | |||
<machine_name> example: test/itmdb/itm_trees/test) | defines the equipment used for acquiring the results; "test" - is most commonly used for artificial, test data | ||||
$HOME/public/itmdb/itm_trees/$TOKAMAKNAME/$DATAVERSION/mdsplus example: ~owsiak/public/itmdb/itm_trees/test/4.10b/mdsplus | contains experimental data for given UAL version | ||||
<data_version> example: 3 | Major Data Dictionary version | ||||
<MDSPlus_tree_number> example: $HOME/public/itmdb/itm_trees/$TOKAMAKNAME/$DATAVERSION/$MDSPLUS_TREE_BASE_$NUMBER/ example: ~/public/itmdb/itm_trees/test/4.10b/mdsplus/0 | Contains all the shot and runs for given data tree | $HOME/public/itmdb/itm_trees/$TOKAMAKNAME/$DATAVERSION/mdsplus/$MDSPLUS_TREE_BASE_$NUMBER/ids_$SHOT example: ~/public/itmdb/itm_trees/test/4.10b/mdsplus/ids_120001. | |||
Shot number | Shot number is represented by first digits in database file ids_SSSSRRRR.*; there is no limit for number of digits used | ||||
Run number | Run number is represented by last four digits in database file ids_SSSSRRRR.*Contains data for given shot | ||||
ids_####.datafile, ids_####.tree, ids_####.characteristics | Contain Contains data for givet given shot/run |
2.
...
3. Accessing MDSPlus database data
From the user's point of view, there are few characteristics that define single data tree:
Parameter | Environment variable | Description |
---|---|---|
User name | $USER | Defines the name of the user who owns the data |
Tokamak name | $TOKAMAKNAME | Defines the name of the machine that was used during simulation (test - contains testing data) |
UAL database version | $DATAVERSION | Specifies UAL data version |
Run number | not defined | Run number is represented by last four digits in database file ids_SSSSRRRR.* |
Shot number | not defined | Shot number is represented by first digits in database file ids_SSSSRRRR.*; there is no limit for number of digits used |
Info |
---|
ITMv1 script source $ITMSCRIPTDIR/ITMv1 kepler test 4.10b > /dev/null
|
...
2.3.1 Listing pulse files
Info | ||
---|---|---|
| ||
Usage: itmdbs imasdbs [OPTIONS] [COMMAND] This program lists existing ITM databases. Possible commands are: list <shot number>- list existing databases slices <shot number> <run number> - list existing databases, including number of timeslices and time range for time-dependent IDSes times <shot number> <run number> - list existing databases, including number of timeslices their time points for time-dependent IDSes tokamak - list existing tokamaks (with data versions) dataversion - list existing dataversions (with tokamaks) If the optional arguments shot number and run number are given, only databases with these numbers will be shown. If no command is given, the list command is performed. To see databases stored in the public itm database, use 'public' as the user name. Options: -h, --help show this help message and exit -u USER, --user=USER Show databases of specified user -t TOKAMAK, --tokamak=TOKAMAK Show only databases for specified tokamaks -v VERSION, --version=VERSION Show only databases for specified data version --backend=BACKEND Show databases written with given backend(s). Comma- separated list of backends (Currently supported: mdsplus, hdf5). By default all backends are shown. -c, --compact Compact/reduced output |
Code Block |
---|
shell> itmdbsimasdbs -t test slices 1410 440 Tokamak: test Data version: 4.10b3 UAL Backend: mdsplus Shot 1410 Run: 40 core_profiles: 25 slices (345.0 - 345.48) core_sources: 25 slices (345.0 - 345.48) core_transport: 25 slices 4(345.0 - 345.48) equilibrium: 100 25 slices (345.0 - 345.48) transport_solver_numerics: 25 slices (345.0 - 345.48) wall: 25 slices (345.0 - 99345.0) |
...
48) |
Code Block |
---|
shell> imasdbs -u palakb
Tokamak: test
Data version: 3
UAL Backend: mdsplus
Shot 1 Runs: 1
Shot 2 Runs: 3 666 777 999
Shot 10 Runs: 30 40 42 60 61 64 65 66 80 81 99 123 666 999 1234
Shot 12 Runs: 1 2 99
Shot 13 Runs: 1 |
2.3.2 Dumping pulse files
Code Block |
---|
shell> idsdump
Usage: idsdump <USER> <TOKAMAK> <VERSION> <SHOT> <RUN> <IDS>
or
idsdump <SHOT> <RUN> <IDS> |
Code Block |
---|
[palakb@hpc-login4 ~]$ idsdump 13 1 equilibrium
class equilibrium
Attribute ids_properties
class ids_properties
Attribute comment:
Attribute homogeneous_time: 1
Attribute source:
Attribute provider:
Attribute creation_date:
[.......]
Attribute code
class code
Attribute name:
Attribute commit:
Attribute version:
Attribute repository:
Attribute parameters:
Attribute output_flag
[]
Attribute time
[ 0. 1. 2.]
|
2.3.3 Copying database files directly
In case you know user name, machine name, shot number and run number, you can import users' database files copying them directly from the users' public directories. Database files are located inside:
Code Block |
---|
~$USERNAME/public/itmdbimasdb/itm_trees/$TOKAMAKNAME/$DATAVERSION/mdsplus/0/ids_SSSSRRRR.* |
Take a look at the example below. We will copy data from user michalo, machine test, shot: 12 and run: 2
...
Code Block |
---|
# change directory in your $HOME cd $HOME/public/itmdb/itm_treesimasdb/test/4.10b/mdsplus3/0/ # copy data files (pay attention to *_dot_* at the end of command line!) cp ~michalo/public/itmdbimasdb/itm_trees/test/4.10b/mdsplus3/0/ids_120002.* . cp ~michalo/public/itmdb/itm_treesimasdb/test/4.10b3/mdsplus/0/ids_130003.* . |
Currently UAL uses only MDSPlus engine for storing/ reading data locally.