Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

putSlice()
Code Block
languagepy
titleITM
linenumberstrue
#system libraries
import sys
from pylab import * 

# UAL library
import ual

# Create a new instance of database
itm_obj = ual.itm(14,4)
itm_obj.create()

cpo = itm_obj.equilibrium




# Filling fields with TIME-INDEPENDENT  data
cpo.codeparam.parameters = 'param'

#Save time independent fields
cpo.putNonTimed()





# Setting values of time depended data
cpo.x.y = VALUE
    
#Do not forget time!!
cpo.time = VALUE 
    
#Append this slice in the database
cpo.putSlice() 

#close the pulse file
itm_obj.close()
Code Block
languagepy
titleIMAS
linenumberstrue
#system libraries
import sys
import numpy

# UAL library
import imas

# Create a new instance of database
imas_obj = imas.ids(11, 22)
imas_obj.create()  # Create a new instance of database

ids = imas_obj.core_profiles

# Mandatory to define this property
ids.ids_properties.homogeneous_time = 1

# Filling fields with TIME-INDEPENDENT  data
ids.ids_properties.comment = 'Test IDS created by putSlice'

#Save time independent fields
ids.putNonTimed()

# Allocate all variables, time coordinate of size 1
ids.time.resize(1)
ids.x.y.resize(1)

# Setting values of time depended data
ids.x.y[0] = VAKUE 

#Do not forget time!!
ids.time[0] = VALUE

#Append this slice in the database
ids.putSlice()

#close the pulse file
imas_obj.close()

...

 put()
Code Block
languagepy
titleITM
linenumberstrue
#system libraries
import sys
from pylab import * 

#UAL library
import ual

# Create a new instance of database
itm_obj = ual.itm(13,3)
itm_obj.create()




cpoArray = itm_obj.equilibriumArray

# allocate the CPO structures
cpoArray.resize(10)


# Filling fields with TIME-INDEPENDENT data
cpoArray[0].codeparam.parameters = 'param'

# SCALARS(!)
# ---- a loop ----
for i in range(10):
      # Setting values of time depended data 
      cpoArray[i].x.y = i
    
	  #Do not forget time!!
      cpoArray[i].time = i
# ---- a loop ----





#Save data in the database
cpoArray.put() # <= Called outside the loop

#close the pulse file
itm_obj.close()
Code Block
languagepy
titleIMAS
linenumberstrue
#system libraries
import sys
import numpy

#UAL library
import imas

# Create a new instance of database
imas_obj = imas.ids(11, 22)
imas_obj.create()

# Mandatory to define this property
ids.ids_properties.homogeneous_time = 0

ids = imas_obj.core_profiles

# allocate the IDS structures
ids.x.y.resize(10)
ids.time.resize(10))

# Filling fields with TIME-INDEPENDENT  data
ids.ids_properties.comment = 'A test IDS created by PUT'

# STORE AS SCALARS(!)
# ---- a loop ----
for i in range(10):
      # Setting values of time depended data
      ids.x.y[i] = i 
	  
      #Do not forget time!!
      ids.time[i] = i
# ---- a loop ----

# OR STORE AS VECTORS
ids.x.y = valueVector
ids.time = timeVector

#Save data in the database
ids.put() # <= Called outside the loop

#close the pulse file
imas_obj.close()

 

 

 

VI related notice
I will use VI in every place where text files are modified. If you have any other text file editor of your choice - fell free to use it instead.
#system libraries import sys import numpy #UAL library import ual #Open the database itm_obj = ual.itm(11,22) itm_obj.open() cpoArray = itm_obj.pfsystemsArray #Get data cpoArray.get() # SCALARS (!) for i in range(len(cpoArray)): print 'Time SCALAR =' + str(cpoArray[i].time) print 'Value SCALAR =' + str(cpoArray[i].x.y) #close the pulse file itm_obj.close()

get() CPO vs IDS

 

 

Code Block
languagepy
titleITM
linenumberstrue
Code Block
languagepy
titleIMAS
linenumberstrue
#system libraries
import sys
import numpy

#UAL library
import imas

#Open a database
imas_obj = imas.ids(11, 22)
imas_obj.open()  

ids = imas_obj.core_profiles

#Get data
ids.get()

# SCALARS (!)
for i in range(len(ids.time)):
    print 'Time   =' + str(ids.time[i]) 
    print 'Value  =' + str(ids.x.y[i])

# VECTORS (!)
print 'Time  = '  + str(ids.time)
print 'Value  = ' + str(ids.x.y)


#close the pulse file
imas_obj.close()

 

 

 

...

 getSlice() CPO vs  IDS
Code Block
titleITM
linenumberstrue
program diagnostic
    use imas_schemas
    use imas_routines
    implicit none

    integer :: idx, i, arraySize
    type (type_equilibrium), pointer :: eqArray(:) ! <= Array !!!



    call imas_open('IDS', 14, 4, idx)
    
    call imas_get(idx, 'equilibrium', eqArray)
    arraySize = size(eqArray)
    write (*,*) "Number of slices: ", arraySize
    
	do i=1, arraySize
    	write (*,*) "Time: ", eqArray(i)%time
        write (*,*) "Value of r: ", eqArray(i)%eqgeometry%boundary(1)%r(1)
        write (*,*) "Value of z: ", eqArray(i)%eqgeometry%boundary(1)%z(1)
    enddo
    call imas_close(idx)
end program
Code Block
titleIMAS
linenumberstrue
program#system diagnosticlibraries
import sys
import   use imas_schemas
    use imas_routines  
    implicit none

    integer :: idx, i, arraySize 
    type (type_equilibrium) :: equilibrium
    real(IMAS_R8), pointer :: timeVector(:)
    real(IMAS_R8) :: time

    call imas_open('IDS', 14, 4, idx)
    
    call imas_get_times(idx, 'equilibrium',timeVector)
    
    arraySize = size(timeVector)
    write (*,*) "Number of slices: ", arraySize
    write (*,*) "Time vector: ", timeVector
    
	do i = 1, arraySize
        time = timeVector(i)
        call imas_get_slice(idx, 'equilibrium', equilibrium, time, 1)
            
    	write (*,*) "Time [", time, "]: ",  equilibrium%time
        write (*,*) "Value of r: ", equilibrium%eqgeometry%boundary(1)%r(1)
        write (*,*) "Value of z: ", equilibrium%eqgeometry%boundary(1)%z(1)
    enddo
    
	call imas_close(idx)
end programnumpy

#UAL library
import imas

#Open a database
imas_obj = imas.ids(11,22)
imas_obj.open()  

ids = imas_obj.core_profiles

#Get data
ids.getSlice(2, 1)

#SCALARS 
print 'Time : ' + str(ids.time)
print 'VALUE = ' + str(ids.x.y.z)

#close the pulse file
imas_obj.close()

 

4. Compile the code
 
Code Block
shell> make clean
shell> make

...