You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

1. IMAS Primer

1.1. What is IMAS?

1.2. IMAS Data Model & IDS (Frederic) - 20.09

1.2.1. IDS and time: homogenous, heterogenous, independent

1.2.2. occurences

1.2.3. slices

1.3. Database entries

1.3.1. MDSPlus pulse files

2. IMAS Access Layer  - 20.09

2.1. Access Layer architecture (Bartek)

2.2. 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).

2.2.1. 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

2.2.1.1. open

The following code opens the existing MDS+ pulse file for shot=54178, run=0, from the 'west' database of user 'g2lfleur':

import imas
from imas import imasdef
#creates the Data Entry object 'data_entry' associated  to the pulse file with shot=54178, run=0, belonging to database 'west' of user 'g2lfleur', using the MDS+ backend
data_entry = imas.DBEntry(imasdef.MDSPLUS_BACKEND, 'west, 54178, 0, user_name=’g2lfleur’)
#opens the pulse file associated to the Data Entry object 'data_entry' previously created
data_entry.open() 

2.2.1.2. 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:


module load IMAS

imasdb pcss_tutorial


Now, the following code will create a new MDS+ pulse file for shot=15000, run=1 in the 'pcss_tutorial' database of the current user:

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, 'pcss_tutorial, 15000, 1, user_name=getpass.getuser())
#creates the pulse file associated to the Data Entry object 'data_entry' previously created
data_entry.create() 

2.2.1.3. put/putSlice

2.2.1.4. get/getSlice

2.2.1.5.  delete_data

2.2.1.6. close

2.3. Acessing data from commandline (bartek palak)

2.3.1. imasdbs

2.3.2. idsdump

2.3.3. idsdumppath

3. Adapting user code into IMAS - 22.09

3.1. Motivations and different levels of adaptation (Bartek Palak)

3.2. Code adaptation (Dimitriy)

3.3. Wrapping user codes into actors - iWrap (Bartek Palak)

3.3.1. motivations

3.3.2. how to prepare user code{toc}

3.3.3. wrapping (job description, iWrap)

3.3.4. usage of actor within WF


4. Dealing with experimental data (Michal P.) - 22.09

5. Adapting codes to IMAS based Docker (Tomek) - 22.09






  • No labels