Table of Contents |
---|
IMAS Primer
What is IMAS?
|
Adapting codes to IMAS - Welcome session (
...
...
IDS and time: homogenous, heterogenous, independent
occurences
slices
Database entries
MDSPlus pulse files
IMAS framework - Tutorial session - part 1
IMAS Primer
...
- 20.09
Access Layer architecture (Bartek)
High Level Interfaces and their API (Application Programming Interface)
There are currently 5 High Level Interfaces (HLIs) available from the following programming languages:
- Fortran
- C++
- Java
- Python
- Matlab
Only Python and Matlab provide user interactive session for accessing IMAS data.
The HLI API covers all available Access Layer features:
- creating a so-called new IMAS Data Entry
- opening an existing IMAS Data Entry
- writing data from an IDS to a Data Entry
- reading data of an IDS from an existing Data Entry
- deleting an IDS from an existing Data Entry
- closing a Data Entry
A Data Entry is an IMAS concept for designating a pulse with given shot and run numbers located in some database (see below).
HLI API
As an example, we will describe the Python HLI.
Documentation of all others HLIs is available in the User guide available from this page: https://confluence.iter.org/display/IMP/Integrated+Modelling+Home+Page
create
Creating a new Data Entry using the MDS+ backend consists in creating a new pulse file on disk. Therefore, you need to have write permissions for the database specified in the create() command.
So, let's first create a new database belonging to the current user.
From a new shell, execute the following command:
Code Block |
---|
module load IMAS
imasdb data_access_tutorial |
Now, the following code will create a new MDS+ pulse file for shot=15000, run=1 in the 'data_access_tutorial' database of the current user:
Code Block |
---|
import imas
import getpass
from imas import imasdef
#creates the Data Entry object 'data_entry' associated to the pulse file with shot=15000, run=1, belonging to database 'pcss_tutorial' of the current user, using the MDS+ backend
data_entry = imas.DBEntry(imasdef.MDSPLUS_BACKEND, 'data_access_tutorial, 15000, 1, user_name=getpass.getuser())
#creates the pulse file associated to the Data Entry object 'data_entry' previously created
data_entry.create()
#close the pulse file associated to the 'data_entry' object
data_entry.close() |
The pulse file has been created at location ~/public/imasdb/data_access_tutorial/3/0:
Code Block |
---|
$ ls -alh ~/public/imasdb/data_access_tutorial/3/0
total 78M
drwxrwsr-x 2 fleuryl fleuryl 4.0K Aug 31 10:09 .
drwxrwsr-x 12 fleuryl fleuryl 4.0K Aug 31 10:09 ..
-rw-rw-r-- 1 fleuryl fleuryl 42M Aug 31 10:09 ids_150000001.characteristics
-rw-rw-r-- 1 fleuryl fleuryl 37 Aug 31 10:09 ids_150000001.datafile
-rw-rw-r-- 1 fleuryl fleuryl 36M Aug 31 10:09 ids_150000001.tree |
open
The following code opens the existing MDS+ pulse file created previously for shot=15000, run=1, from the 'data_access_tutorial' database of the current user:
Code Block |
---|
import imas
import getpass
from imas import imasdef
#creates the Data Entry object 'data_entry' associated to the pulse file with shot=15000, run=1, belonging to database 'data_access_tutorial' of the current user, using the MDS+ backend
data_entry = imas.DBEntry(imasdef.MDSPLUS_BACKEND, 'data_access_tutorial, 15000, 1, user_name=getpass.getuser())
#opens the pulse file associated to the Data Entry object 'data_entry' previously created
data_entry.open() |
put/putSlice
get/getSlice
delete_data
close
Acessing data from commandline (bartek palak)
imasdbs
idsdump
idsdumppath
Adapting codes to IMAS - IMAS Primer (20.09)
Adapting codes to IMAS - success stories - HCD (20.09)
Adapting codes to IMAS - success stories (20.09)
IMAS Access Layer - 20.09
Adapting codes to IMAS - IMAS Access Layer (20.09)
Adapting codes to IMAS - Accessing data from command line (20.09)
Adapting codes to IMAS - High Level Interfaces and their API (20.09)
IMAS framework - Tutorial session - part 2
Adapting user code into IMAS - 22.09
Adapting codes to IMAS - Motivations and
...
different levels of adaptation (
...
...
...
Adapting codes to IMAS - Wrapping user codes into actors
...
...
motivations
how to prepare user code{toc}
wrapping (job description, iWrap)
usage of actor within WF
Dealing with experimental data - 22.09
Adapting codes to IMAS - Dealing with experimental data (
...
Adapting codes to IMAS based Docker - 22.09
Adapting codes to IMAS - Adapting codes to IMAS based Docker (
...
Closing remarks - accessing resources - 22.09
Adapting codes to IMAS - Closing remarks (22.09)
...
This work has been carried out within the framework of the EUROfusion Consortium, funded by the European Union via the Euratom Research and Training Programme (Grant Agreement No. 101052200—EUROfusion). Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or the European Commission. Neither the European Union nor the European Commission can be held responsible for them. The scientific work is published for the realization of the international project co-financed by Polish Ministry of Science and Higher Education in 2021 from financial resources of the program entitled "PMW” 5218/HEU - EURATOM/2022/2