Last Modified: Thursday, 17-Dec-2009 11:27:46 GMT

Current Manual for the International Multi-Tokamak Profile Database

Standard list of variables and file formats

ITPA Confinement Modelling and Database Group

This current version of the Profile Database Manual is under development. It is the definitive source of information on Profile Database data formats etc, and over the coming months we intend to incorporate information on reading and writing MDSplus trees to bring this documentation fully up to date.

Contents

Introduction
Definition of local transport quantities
Comments Data
OD Data: global parameters
OD file format and example
1D description file: time traces
2D description file: Evolving radial profiles
Index Format for time evolving radial grids
Equilibrium Data (only available in MDSplus)
File naming convention and 1D and 2D file description format
Accessing the Profile Database
Accessing the Profile Database via MDSplus
How to Contribute data to the Profile Database?
Software

Introduction

The International Multi-tokamak Profile Database is served from a computer at UKAEA Culham:
http://tokamak-profiledb.ccfe.ac.uk

The profile database stores well documented discharges that are accessible to the fusion community through ftp, http, and MDSplus.
A discharge documentation is composed of: This document establishes what set of variables are provided for each description file together with the definition of these variables and the standard format in which they are provided. Once the discharge data have been submitted to the profile database, the data are stored as follow:
This document describes, for each of the description files, the list of relevant plasma paramaters they contain together with the file format in which they are provided.

Definition of local transport quantities:

The primary role of the profile database is to supply profile data allowing the derivation of local transport coefficients and their comparison with predictions from transport models. It is assumed that the transport models will focus on thermal electron and main thermal ion transport. Therefore, the database seeks to provide the radial profiles as a function of time of all the relevant terms needed in the conservation equations for these two species.
Throughout this document the following definition are adopted:
The radial coordinate is the normalized toroidal flux defined as follow:
&rho=(&phi/&phia)0.5, where &phi is the total toroidal flux enclosed by the given magnetic surface and &phia is the total toroidal flux enclosed by the plasma separatrix (see 1D signal # 29: PHIA). &rho goes from 0 in the center to 1 at the separatrix.

We note <.> the surface average operator defined by < B.&nabla A > = 0 whatever A(R,Z), V(ρ) the volume enclosed by the surface of label ρ, and S(ρ) is the corresponding surface area.

The particle and energy conservation equations can be written:

The compressional term CMP is theory dependent and needs to be specified for each model. For instance in the Braginskii model: CMP=-n&alpha k T&alpha < &nabla v&alpha > with &Gamma&alpha = n&alpha v&alpha and where &alpha stands either for thermal electrons or for main thermal ions.
The plasma surface area is given by: S(&rho)=V'(&rho) < | &nabla &rho | >

Quantity:Corresponding signal number and name in this manual:
ϕα29.PHIA
nα 9. NE, 38. NM1, 42. NM2, 42b. NM3, 46. NIMP
Tα 1. TE, 5. TI
dnα/dt 60.DNER
dWα/dt 58. DWER, 59. DWIR
S(ρ)72. SURF
<|∇ρ|>(*) 73. GRHO1
< |∇ρ|2 >(*)74.GRHO2
χα 36. CHIE, 37. CHII (Note that the definition of χα does not include the <|∇ρ|2>
(*) ρ is demensionless and the gradient is with respect to the (R,Z) coordinates, so these quantities are in m-1 and m-2 respectively.

Comments Data

The comments file contains all the information users need to known about the discharge or the way the data has been obtained but that doesn't appear either in this manual or in the 0D, 1D or 2D files detailed in the next chapters. This text file should contain the following fields: [an error occurred while processing this directive]
This information is crucial to provide users/modellers with a compact overview of the discharges. Data providers should feel free to add in this file any information they think might be relevant to the use of this data. Comments data should list codes and assumptions used in the data analysis. For instance EFIT for equilibrium, PENCIL for NBI deposition profile, ONETWO for transport, "flat Zeff was assumed" or "It was asumed that Te = Ti" etc

See this example comments file

OD Data: global parameters

It is expected that for each discharge sent to the database one or several relevant time slices will be selected at which time the following global data - were relevant - will be provided.

These time slices are used to summarize the discharge and help users locate specific regimes in the database. However, they are not necessarilly the same time slices as used in the 2D files described below (indeed 2D Ufiles may contains hundreds of time slices whereas for the 0D file only a few time slices will in general be sufficient).

Additional definitions are given at the end of this chapter for quantities used to define parameters figuring in this standard list.


[an error occurred while processing this directive]

The following quantities were used in the above list but not yet defined, they are not needed for the 0D description:

WFFORM: Total fast ion energy due to NBI in joules estimated from approximate formula. Zero if no NBI is applied.

ASDEX: From regression analysis based on 176 FREYA runs:

CFTNEL-1.3 PINJ ENBI0.75 (WTOT-WFFORM)0.5 for H beam, and C'F'T NEL-1.1 PINJ ENBI (WTOT WFFORM)0.8 for D beam, where C and C' are estimated constants depending on the target gas, and FT and F'T are estimated temperature effects. Missing temperature profiles are interpolated by regression of the available YAG temperature profiles in the database against IP, BT, NEL, NEV, EVAP and beam gas.

D3D:

The velocities vc and vb are determined from the critical energy and the beam energy respectively, and Pb is the injected neutral beam power. The quantity &tause is the slowing down-time on electrons first defined by Spitzer,

where Ab and Zb are the atomic mass and charge of the fast ions, Te is the electron temperature in eV, ne is the electron density in m-3, and logΛe=16 is the Coulomb logarithm. If ion drag were negligible, the term in the brackets would be identically one. For DIII-D parameters, however, this term varies rapidly with temperature. To give better agreement with ONETWO results, the above formula is multiplied by 0.55.
JET:0.16*1019 PINJ/NEV for SHOT #18760, 1019(0.16 P80kV+ 0.3 P140kV + 0.02 PHe)/NEV for SHOT# > 18760.
JFT2M: WFPER + WFPAR.
PBXM: WFPER + WFPAR.
PDX: WFPER + WFPAR.
Normal level of accuracy is ASDEX (± 15%), D3D (± 50%), JET (± 50%), JFT2M, PBXM, PDX: Co.


PFLOSS: Amount of neutral beam power in watts that is lost from the plasma through charge exchange and unconfined orbits.

ASDEX: From fits to FREYA code results, (± 30%)

D3D: PABS exp (3.3 - IP/106)/100 (± 30%).

JET: PINJ exp (3.35 - 0.667|IP|/106 - 0.2 NEL/1019)/100  (± 50%).

JFT2M: From fits to Monte Carlo code results (± 20%).

PBXM: From a fits to the TRANSP code results (± 20%).

PDX: From a fits to the TRANSP code results (± 30%).



OD file formats and examples:

The required format for the 0D description follows the guidelines for the file format adopted to the OD H mode global database and the previous suggested format. The main difference is that the format is extendable to cope with additional variables.

The table below shows the appropriate formats and missing value codes for the three datatypes of 0D variables.
0D Variables: types, formats, and missing values
Type Example 0D Variables Format Missing Value
Strings AUXHEAT, DIVMAT, ECHLOC, TOK, WALMAT etc A10,1X????????
Integers DATE, NM1A, NM1Z, UPDATE etcI10,1X-9999999
Reals AMIN, BT, IP, KAPPA, PNBI, Q95, TE0, ZEFF etc 1PE10.3,1X-9.999E-09
1X:One blank space (ASCII code 32).
A10:10 ASCII characters.
I10:Integer using up to 10 characters.
1PE10.3:Floating point number occupying at most 10 characters. Format: ±#.###E±##

More Traditional 0D file Format

Examples of more Traditional 0D description files:

This is an example of a 0D file in the format for the 1998 Public release. This format is still acceptable assuming the header blocks are inserted between the timeslices.
TOK        UPDATE     DATE       SHOT       TIME       AUXHEAT    PHASE      
STATE      PGASA      PGASZ      BGASA      BGASZ      BGASA2     BGASZ2     
PIMPA      PIMPZ      PELLET     RGEO       RMAG       AMIN       SEPLIM     
XPLIM      KAPPA      DELTA      INDENT     AREA       VOL        CONFIG     
IGRADB     WALMAT     DIVMAT     LIMMAT     EVAP       BT         IP         
VSURF      Q95        BEPMHD     BETMHD     BEPDIA     NEL        DNELDT     
ZEFF       PRAD       POHM       ENBI       PINJ       BSOURCE    PINJ2      
BSOURCE2   COCTR      PNBI       ECHFREQ    ECHMODE    ECHLOC     PECH       
ICFREQ     ICSCHEME   ICANTEN    PICRH      LHFREQ     LHNPAR     PLH        
IBWFREQ    PIBW       TE0        TI0        WFANI      WFICRH     MEFF       
ISEQ       WTH        WTOT       DWTOT      PL         PLTH       TAUTOT     
TAUTH                                                                        
AUG            960215     950808       6905  2.470E+00 NBI        H          
STEADY              2          1          2          1   -9999999   -9999999 
        12          6 NONE        1.665E+00 -9.999E-09  4.700E-01 -9.999E-09 
-9.999E-09  1.750E+00  1.050E-01 -9.999E-09 -9.999E-09 -9.999E-09 SN         
         1 ????????   ????????   ????????   ????????   -2.200E+00  1.000E+06 
 5.200E-01  3.570E+00 -9.999E-09 -9.999E-09 -9.999E-09  7.800E+19  0.000E+00 
 1.500E+00  5.000E+05  5.500E+05  6.000E+01  5.110E+06     642412  0.000E+00 
  -9999999  1.000E+00  5.080E+06 -9.999E-09 -9.999E-09 ????????   -9.999E-09 
-9.999E-09 ????????   ????????   -9.999E-09 -9.999E-09 -9.999E-09  0.000E+00 
-9.999E-09  0.000E+00  2.020E+03  2.310E+03 -9.999E-09 -9.999E-09 -9.999E-09 
NONE        3.370E+05  3.690E+05  0.000E+00 -9.999E-09 -9.999E-09 -9.999E-09 
-9.999E-09                                                                   
TOK        UPDATE     DATE       SHOT       TIME       AUXHEAT    PHASE      
STATE      PGASA      PGASZ      BGASA      BGASZ      BGASA2     BGASZ2     
PIMPA      PIMPZ      PELLET     RGEO       RMAG       AMIN       SEPLIM     
XPLIM      KAPPA      DELTA      INDENT     AREA       VOL        CONFIG     
IGRADB     WALMAT     DIVMAT     LIMMAT     EVAP       BT         IP         
VSURF      Q95        BEPMHD     BETMHD     BEPDIA     NEL        DNELDT     
ZEFF       PRAD       POHM       ENBI       PINJ       BSOURCE    PINJ2      
BSOURCE2   COCTR      PNBI       ECHFREQ    ECHMODE    ECHLOC     PECH       
ICFREQ     ICSCHEME   ICANTEN    PICRH      LHFREQ     LHNPAR     PLH        
IBWFREQ    PIBW       TE0        TI0        WFANI      WFICRH     MEFF       
ISEQ       WTH        WTOT       DWTOT      PL         PLTH       TAUTOT     
TAUTH                                                                        
AUG            960215     950808       6905  2.690E+00 NBI        H          
STEADY              2          1          2          1   -9999999   -9999999 
        12          6 NONE        1.665E+00 -9.999E-09  4.700E-01 -9.999E-09 
-9.999E-09  1.750E+00  1.050E-01 -9.999E-09 -9.999E-09 -9.999E-09 SN         
         1 ????????   ????????   ????????   ????????   -2.200E+00  1.000E+06 
 3.900E-01  3.590E+00 -9.999E-09 -9.999E-09 -9.999E-09  8.000E+19  0.000E+00 
 1.500E+00  5.000E+05  3.570E+05  6.000E+01  7.670E+06     642412  0.000E+00 
  -9999999  1.000E+00  7.660E+06 -9.999E-09 -9.999E-09 ????????   -9.999E-09 
-9.999E-09 ????????   ????????   -9.999E-09 -9.999E-09 -9.999E-09  0.000E+00 
-9.999E-09  0.000E+00  2.680E+03  2.220E+03 -9.999E-09 -9.999E-09 -9.999E-09 
NONE        4.010E+05  4.570E+05  0.000E+00 -9.999E-09 -9.999E-09 -9.999E-09 
-9.999E-09                                                                   
With the removal of some of the old restrictions this file can be stripped down. The variables that are missing in all timeslices can be removed. Note that the header blocks have been modified, but still remain fixed within the file.
TOK        UPDATE     DATE       SHOT       TIME       AUXHEAT    PHASE      
STATE      PGASA      PGASZ      BGASA      BGASZ      PIMPA      PIMPZ      
PELLET     RGEO       AMIN       KAPPA      DELTA      CONFIG     IGRADB     
BT         IP         VSURF      Q95        NEL        DNELDT     ZEFF       
PRAD       POHM       ENBI       PINJ       BSOURCE    PINJ2      COCTR      
PNBI       PLH        PIBW       TE0        TI0        ISEQ       WTH
WTOT       DWTOT
AUG            960215     950808       6905  2.470E+00 NBI        H          
STEADY              2          1          2          1         12          6 
NONE        1.665E+00  4.700E-01  1.750E+00  1.050E-01 SN                  1 
-2.200E+00  1.000E+06  5.200E-01  3.570E+00  7.800E+19  0.000E+00  1.500E+00
 5.000E+05  5.500E+05  6.000E+01  5.110E+06     642412  0.000E+00  1.000E+00  
 5.080E+06  0.000E+00  0.000E+00  2.020E+03  2.310E+03 NONE        3.370E+05 
 3.690E+05  0.000E+00  
TOK        UPDATE     DATE       SHOT       TIME       AUXHEAT    PHASE
STATE      PGASA      PGASZ      BGASA      BGASZ      PIMPA      PIMPZ
PELLET     RGEO       AMIN       KAPPA      DELTA      CONFIG     IGRADB
BT         IP         VSURF      Q95        NEL        DNELDT     ZEFF
PRAD       POHM       ENBI       PINJ       BSOURCE    PINJ2      COCTR
PNBI       PLH        PIBW       TE0        TI0        ISEQ       WTH
WTOT       DWTOT
AUG            960215     950808       6905  2.690E+00 NBI        H          
STEADY              2          1          2          1         12          6 
NONE        1.665E+00  4.700E-01  1.750E+00  1.050E-01 SN                  1 
-2.200E+00  1.000E+06  3.900E-01  3.590E+00  8.000E+19  0.000E+00  1.500E+00 
 5.000E+05  3.570E+05  6.000E+01  7.670E+06     642412  0.000E+00  1.000E+00 
 7.660E+06  0.000E+00  0.000E+00  2.680E+03  2.220E+03 NONE        4.010E+05 
 4.570E+05  0.000E+00  

Simpler Alternative CSV File Format

The above format for 0D files is quite complex for reading and writing the files.
A much simpler comma separated variable format is proposed with the following benefits
  1. simplify the format of the file
  2. allow creation and viewing from spreadsheets
    TOKUPDATEDATESHOTTIME
    JET2003120120001006535211.00E+01
    JET2003120120001006535211.10E+01

  3. simplify reading and writing code
The comma separated value (CSV) file format would be one line of header followed by one line per timeslice:

TOK,UPDATE,DATE,SHOT,TIME,…

JET,20031201,20001006,53521,1.00E+01,…

JET,20031201,20001006,53521,1.10E+01,…

The only restriction would be that the strings between the commas should not exceed 10 characters. Padding with spaces is not required between commas.

Example reading and writing routines exist for Fortran, C and IDL.

1D description file: time traces

[an error occurred while processing this directive]

2D description file: Evolving radial profiles

Note that all radial profile should be given using the square root of the normalized toroidal flux as the radial label r.

[an error occurred while processing this directive]

Index Format for time evolving radial grids

The file format for 2D profiles implies that a fixed radial vector in RHO space be used for each time point given in the time vector. However, experimental data are often measured on a grid (typically the major radius) which does not correspond to a fixed grid when translated in RHO space. In such cases it is not possible to project the measurement grid onto a fixed RHO grid for each time point without significant loss of information. To remedy this problem, an additional level of indirection is introduced: an index is used to label each radial measurement as a function of time, a separate 2D file gives the RHO coordinate for each index as a function of time.

The process can be schematically represented as follows:

Standard 2D format:

RHO vector (rho1, rho2, .... rhoN)

TIME vector: (t1, t2, .... , tM)

DATA vector: (data(rho1,t1),...,data(rhoN,t1), ..., data(rhoN, tM)

Index format:

Data file:

INDEX vector (0, 1, .... N)

TIME vector: (t1, t2, .... , tM)

DATA vector: (data(0,t1),...,data(0,t1), ..., data(N, tM)


RHO file:

INDEX vector (i1, i2, .... iN)

TIME vector: (t1, t2, .... , tM)

RHO vector: (rho(i1,t1),...,rho(iN,t1), ..., rho(iN, tM)

This special format is to be used only for:
* measured quantities that would lose significant information if projected onto a fixed RHO grid as a function of time,
* the following 2D signals:TEXP, TEXPEB, TIXP, TIXPEB, NEXP, NEXPEB, NM1XP, NM1XPEB, NM2XP, NM2XPEB, NM3XP, NM3XPEB, NIMPXP, NIMPXPEB, VROTXP, VROTXPEB. (i.e. experimental measurements and their corresponding error bars)
* The signal name for the RHO vector of the RHO file should be the name of the signal with 'RHO' at the beginning.For instance, experimental data points for TE would have the signal name: TEXP and will be followed by a file with singal name: 'RHOTEXP'

Equilibrium Data

Note that equilibrium data is only included in the MDSplus tree structure, and this branch closely follows the structure which was proposed and adopted by the Pedestal Group.
EQUIL Variables
EQUIL Signal UnitsData TypeBrief DescriptionFull Description
EQUIL:FFPRIMPSI T.radReal FdF/dPSI
2D:- FFPRIMPSI(psi,t)
FdF/dPSI, where F=RB&phi and PSI is poloidal flux per radian
2D:- FFPRIMPSI(psi,t)
EQUIL:FPOLPSI TmReal FPOLPSI=(RBt)
2D:- FPOLPSI(psi,t)
Toroidal field function FPOLPSI=(RBt)
2D:- FPOLPSI(psi,t)
EQUIL:PPRIMEPSI Pa.rad/WbReal dP/dPSI
2D:- PPRIMEPSI(psi,t)
dP/dPSI, where P is plasma pressure and PSI is poloidal flux per radian
2D:- PPRIMEPSI(psi,t)
EQUIL:PRESPSI PaReal Plasma pressure,
2D:- PRESPSI(psi,t)
Plasma pressure vs. poloidal flux
2D:- PRESPSI(psi,t)
EQUIL:PSIBDRY Wb/radReal PSI at separatrix
1D:- PSIBDRY(t)
PSI at separatrix
1D:- PSIBDRY(t)
EQUIL:PSIMAG Wb/radReal PSI at magnetic axis
1D:- PSIMAG(t)
PSI at magnetic axis
1D:- PSIMAG(t)
EQUIL:PSIRZ Wb/radReal Poloidal flux per radian
3D:- PSIRZ(R,Z,t)
Poloidal flux per radian
3D:- PSIRZ(R,Z,t)
EQUIL:QPSI -Real Safety factor Q
2D:- QPSI(psi,t)
Safety factor Q
2D:- QPSI(psi,t)
EQUIL:RBDRY mReal R values on plasma boundary contour
2D:- RBDRY(index,t)
R values on plasma boundary contour
2D:- RBDRY(index,t)
EQUIL:RBDRY:NPTS -Integer number of boundary points
1D:- NPTS(t)
number of boundary points
1D:- NPTS(t)
EQUIL:RCONTR mReal R values on PSI contours
3D:- RCONTR(index, psi, t)
R values on PSI contours
3D:- RCONTR(index, psi, t)
EQUIL:RCONTR:NPTS -Integer number of points on each PSI contour
2D:- NPTS(psi,t)
number of points on each PSI contour
2D:- NPTS(psi,t)
EQUIL:RMAXIS mReal R at magnetic axis
1D:- RMAXIS(t)
R at magnetic axis
1D:- RMAXIS(t)
EQUIL:RXPT mReal R at X-point(s)
2D:- RXPT(X-point-index,t)
R at X-point(s)
2D:- RXPT(X-point-index,t)
EQUIL:RXPT:NPTS -Integer number of X-points
1D:- NPTS(t)
number of X-points
1D:- NPTS(t)
EQUIL:ZBDRY mReal Z values on plasma boundary contour
2D:- ZBDRY(index,t)
Z values on plasma boundary contour
2D:- ZBDRY(index,t)
EQUIL:ZBDRY:NPTS -Integer number of boundary points
1D:- NPTS(t)
number of boundary points
1D:- NPTS(t)
EQUIL:ZCONTR mReal Z values on PSI contours
3D:- ZCONTR(index, psi, t)
Z values on PSI contours
3D:- ZCONTR(index, psi, t)
EQUIL:ZCONTR:NPTS -Integer number of points on each contour
2D:- NPTS(psi,t)
number of points on each contour
2D:- NPTS(psi,t)
EQUIL:ZMAXIS mReal Z at magnetic axis
1D:- ZMAXIS(t)
Z at magnetic axis
1D:- ZMAXIS(t)
EQUIL:ZXPT mReal Z at X-point(s)
2D:- RXPT(xpoint_index,t)
Z at X-point(s)
2D:- RXPT(xpoint_index,t)
EQUIL:ZXPT:NPTS -Integer number of X-points
1D:- NPTS(t)
number of X-points
1D:- NPTS(t)


File naming convention and 1D and 2D file description format

The 1D and 2D description files are themselves composed of a list of files, one for each of the variables listed above. The first independent variable should be the radial vector followed by the time vector:

RHO ;-INDEPENDENT VARIABLE LABEL: X-

TIME SECONDS ;-INDEPENDENT VARIABLE LABEL: Y-

TE ;-DEPENDENT VARIABLE LABEL-

For index file (see VI.d) the vectors are:

INDEX ;-INDEPENDENT VARIABLE LABEL: X-

TIME SECONDS ;-INDEPENDENT VARIABLE LABEL: Y-

TEXP ;-DEPENDENT VARIABLE LABEL-

and a separate set:

INDEX ;-INDEPENDENT VARIABLE LABEL: X-

TIME SECONDS ;-INDEPENDENT VARIABLE LABEL: Y-

RHOTEXP ;-DEPENDENT VARIABLE LABEL-

The radial vector RHO must be sorted in increasing order of the normalized toroidal flux. In order words, it should increase monotonically from the minimum value (closest to the axis) to its maximum value (closest to the edge or even beyond the separatrix if available).

Of course the data vector (containing the dependent variable) should be consistent with the order in which the radial vector is given. Similarly, the INDEX vector should contain integers in increasing order starting from 0.

The field '-DEPENDENT VARIABLE LABEL-' should contain only the name of the variable as it appears in this manual.

For instance:

QNBII ;-DEPENDENT VARIABLE LABEL-

Software information for reading and writing UFILEs and various software for extracting and retrieving the data are provided, whenever available, in: /pub/profile_data/software.


-The various files are assembled together in two single files - one regrouping all 1D Ufiles the other regrouping all 2D Ufiles. UFILEs are separated by two lines of at list 10 '*' (ASCII code 42) as follow:

--- UFILE 1 -----
************************************************
************************************************
--- UFILE 2 -----
************************************************
************************************************
--- UFILE 3 -----

The file containing the separatrix information should be grouped with the 2D UFILEs.

-The comments file for the discharge (plain ASCII text) is called:

tok_#####_com.dat

The file containing the 0D data is called:

tok_#####_0d.dat

The file grouping all 1D files is called:

tok_#####_1d.dat

The file grouping all 2D files is called:

tok_#####_2d.dat

The optional files containing all measured experimental data (see section on Index method):

tok_#####_2dexp.dat

where tok is the name of the Tokamak and ##### is the pulse number.
-On the file server, the data corresponding to the tokamak tok , shot number ##### appears in the directory: /pub/profile_data/tok/##### which contains:


tok_#####_com.dat

tok_#####_0d.dat

tok_#####_1d.dat

tok_#####_2d.dat


-All 0D data form all discharges figuring on the server are also grouped together in a file called tokamak_0d.dat figuring in the directory: /pub/profile_data.



Current Manual for the ITPA International Multi-Tokamak Profile Database

Access to Restricted ITPA Profile Databases

Database Working DB ITB DB
Access rules Available to members or approved active participants in the ITPA Confinement Database and Modelling Group Available to members or approved active participants in the ITPA Transport and Internal Transport Barrier Physics Group
Assuming eligibility, do you need to acquire...
Data-Providers only!
Do you require...


PR98 Data now Accessible via MDSplus

Profile Database Access via MDSplus

Profile database data is accessible from `tokamak-profiledb.ccfe.ac.uk' via MDSplus, thanks to Tom Fredian, Josh Stillerman and Martin Greenwald at MIT who have helped with setting up the server and in converting the data.

We'd appreciate MDSplus users testing this new way to access Profile Database data. Please Report any Problems, so we can fix them!


Documentation on MDSplus for Profile Database:

If you are new to MDSplus, then Tom Fredian's talk is probably the best place to start.


Example routines to Read/Write MDSplus trees:

  1. Simple IDL Example reading a few database items into an IDL program
  2. IDL procedure to read all profile database data from a given discharge into IDL structures (originally from Martin Greenwald)
  3. Fortran Example reading a few database items into a Fortran program, with the makefile to compile with the Absoft f77 compiler (originally from David Mikkelsen)
  4. MATLAB Example reading a few database items into a MATLAB program (from Frederic Imbeaux)
  5. IDL example to write an MDSplus tree on the tokamak-profiledb.ccfe.ac.uk MDSplus server (Malcolm Walters)
  6. TCL script to generate profile database model tree files (Josh Stillerman):
NB you must first install MDSplus on your machine before running these!
Please also feel free to contribute any additional examples which may be of general use!

MDSplus Server and Tree Names

If you want to get started, then the following information is crucial.

DatabasePR08PR98Working DBITB DB
MDSplus Server Name`tokamak-profiledb.ccfe.ac.uk'`tokamak-profiledb.ccfe.ac.uk' `tokamak-profiledb.ccfe.ac.uk'`tokamak-profiledb.ccfe.ac.uk'
Tree Namespr08_tok1pr98_tok1tok1itb_tok1
Read Accessunrestrictedunrestrictedregistration required2 registration required2
Write Accessnot applicablenot applicableregistration required3 registration required3

1 where tok= `aug', `cmod', `d3d', `ftu', `jet', `jt60u', `rtp', 't10', 'tftr', 'ts', 'txtr'
2 permission must be granted from the appropriate ITPA group.
3 only bona-fide data-providers will be granted write access int the database transit areas

Registration for MDSplus Access to Restricted Databases

MDSplus access to WDB and ITB databases is ONLY possible for registered IP addresses/usernames. PR98 is NOT subject to this restriction. To access the restricted databases (WDB, ITB) via MDSplus, you must register with us the following information:
To register simply email your registration details.

How to Contribute Data to the ITPA Profile databases

How to Contribute Data to the ITPA Profile Databases?

The International Multi-tokamak Confinement Profile Database provides a convenient archive for any tokamak data which are suitable for transport analysis: ie ideally this should include measured profiles of temperatures, densities, and heat/particle sources, and estimates of the errors in these quantities.A discharge can be submitted to the profile database either (i) by filling the appropriate MDSplus tree, or (ii) by providing four associated ASCII files: comments file, 0D file, 1D file, and 2D file. The comments provide a brief description of the discharge and generally useful auxiliary information; the 0D data provide global quantities at one or more time points in each discharge; the 1D data give time traces of a number of global quantities; and the 2D data gives radial profiles of local plasma quantities at one or more time points. A full description of the profile database requirements is given in the database manual .

If you have data which would be of interest and would like to contribute to the profile database, please assemble your data in files as described in the profile database manual and follow the submission procedure which is outlined below.

The new way of submitting data is very much data-provider driven! Only registered people can contribute new data to the database. If you wish to submit data, please register simply by emailing your own computer account details. Any new data must be checked before being added to the live database. To make sure this occurs the submission procedure has four stages.

  1. Data-provider places of data on the server in their private transit area, either via FTP or via MDSplus
  2. Data-provider runs simple checks on the uploaded data
  3. Data-provider reads check logs, and flags satisfactory discharges for upload from the transit area to the live database.
  4. System automatically uploads discharges which have been checked and flagged by the data-provider from the private transit area into the live database.

1. Placing Your Data on the Server Incoming Transit Area

Using MDSplus

Data can be written directly to the database server by using MDSplus. A description of the tree structure is here, and other MDSplus information is here. Addition of data is done using a series of calls similar to the following IDL code. The treename to use will be given to you on registration.

pro mdswrite ; ; IDL example to write new stripped down MDSplus tree at tokamak-profiledb.ccfe.ac.uk ; Example shows filling each node type: comments, zerod, oned, and twod ; ; Colin Roach + Malcolm Walters March 2004 ; ; First connect to the server ; mdsconnect,'tokamak-profiledb.ccfe.ac.uk' ; ; pick tree and shot number ; eg this example is to submit a d3d discharge to the working profile database ; ( to submit aug discharge to the itb database set tree='i_itb_aug' ) ; nb incoming treename has 'i_' as prefix before the profile database treename ; ;############################################################################### ; strangely MDSplus needs shot number >= 100 to avoid padding with zeros ;############################################################################### ; tree='i_d3d' & shot=100 ; ; check if the tree already exists in the transit area ;############################################################################### ; nb for bizarre reasons we need to call mdsopen even if the tree does not exist! ;############################################################################### ; mdsopen,tree,shot,status=status ; ; if the tree is already there, go straight to adding data if (status) then goto,adddata ; ; otherwise copy the model tree ; mdstcl, 'set tree i_d3d',status=status print,"mdstcl, 'set tree '+tree",status mdstcl, 'create pulse '+strtrim(shot,2),status=status print,"mdstcl, 'create pulse'",status ;############################################################################### ; nb for bizarre reasons we need to reconnect (otherwise get mdsvalue errors) ;############################################################################### ; mdsconnect,'tokamak-profiledb.ccfe.ac.uk' ; Open the new tree ; mdsopen,tree,shot,status=status print,"mdsopen",status adddata: print,'Add data' ; Insert the data ; First some comments MdsPut, '\top.COMMENTS:DESCRIPTION', "$", 'Test of MDSplus writing' print,"mdsput setting comment description = ",mdsvalue('\top.comments:description') stop ; Then some 0D data MdsPut, '\top.ZEROD:TOK', "$", 'D3D' MdsPut, '\top.ZEROD:TIME', "$", 100.0 MdsPut, '\top.ZEROD:IP', "$", 50.0 print,"mdsput setting various 0D nodes " stop ; Now some 1D data ip_time=dindgen(1000) & ip=1.0d6*(1.0d0-exp(-(ip_time)/100)) plot,ip_time,ip,xtitle='time',title='current',charsize=2 MdsPut, '\top.ONED:IP','build_signal(build_with_units($,$),*,build_with_units($,$))',IP,'Amps',IP_TIME,'Seconds' print,"mdsput setting various 1D IP node" stop ; some 2D data ; nt=10 & nx=50 x=dindgen(nx)/double(nx-1) & t=dindgen(nt) ne0=1.0d19*(1.0d0-x^2) dene=dindgen(nx,nt) for i=0,nt-1 do dene(*,i)=ne0*(t(nt-1)^2-0.5d0*(t(i)-t(nt-1))^2) surface,dene,x,t,xtitle='x',ytitle='time',title='Density',charsize=2 MdsPut, '\top.TWOD:NE', 'build_signal(build_with_units($,$),*,build_with_units($,$),build_with_units($,$))',dene,'m-3',x,'rho',t,'Seconds' print,"mdsput setting the 2D NE signal" EQU: ; add PSIRZ to the equilibrium branch ; nr=32 & nz=32 & nt=3 r=dindgen(nr)/double(nr-1) & z=dindgen(nz)/double(nz-1)-0.5d0 & t=dindgen(nt) psirz=dindgen(nr,nz,nt) for it=0,nt-1 do begin for iz=0,nz-1 do begin psirz(*,iz,it)=t[it]*exp(-((r-0.5d0)^2+z[iz]^2)) endfor endfor !p.multi=[0,2,2] surface,psirz[*,*,0],r,z,xtitle='R',ytitle='Z',title='PSIRZ',charsize=2 surface,psirz[*,*,1],r,z,xtitle='R',ytitle='Z',title='PSIRZ',charsize=2 surface,psirz[*,*,2],r,z,xtitle='R',ytitle='Z',title='PSIRZ',charsize=2 ; MdsPut, '\top.EQUIL:PSIRZ', 'build_signal(build_with_units($,$),*,build_with_units($,$),build_with_units($,$),build_with_units($,$))',psirz,'Wb/rad',r,'R (m)',z,'Z (m)',t,'t (s)' print,"mdsput setting signal EQUIL:PSIRZ" ; Close this pulse close: mdsclose ;Since we aren't doing any more pulses disconnect. mdsdisconnect end
For more details about writing trees please see the Tom Fredian's talk or the MDSplus website.

Using FTP

If you wish to submit data in ASCII files then you can transfer them by FTP onto the database machine.

Each discharge in the database should have four associated files: comments file, 0D file, 1D file, and 2D file. The comments file ("*_com.dat") gives a brief description of the discharge and generally useful auxiliary information; the 0D file ("*_0D.dat") gives 78 global quantities at one or more time points in each discharge; the 1D file ("*_1D.dat") gives time traces of a number of global quantities; and the 2D file ("*_2D.dat") gives radial profiles of local plasma quantities at one or more time points. The 1D and 2D files are stored in the familiar ufile format, and a full description of the profile database format and requirements is given in the database manual .

To create the ASCII files for uploading;
    1. Check this software link for any software that might already exist to extract the data on your system.
    2. Fill in the 0D data in the format described in the 0d File Format section, and name the file: tok_#####_0d.dat.
    3. Find in your local DataBase the available time traces corresponding to the signal list in the section on Minimal List of 1D variables. Translate each signal into a 1D UFILEs where the name figuring in the manual is used in the UFILE variable description field.Combine all 1D UFILEs into one file called tok_#####_1d.dat by separating each UFILE by two lines of at least 10 '*'
    4. Find in your local DataBase the available radial profiles as a function of time corresponding to the required 2D signal list. Translate each signal into a 2D UFILEs where the name figuring in the manual is used in the UFILE variable description field, the radial coordinate is the square root of the normalized toroidal flux (radial vector before time vector). Combine all 2D UFILEs and the separatrix file into one file called tok_#####_2d.dat by separating each UFILE by two lines of at least 10 '*'
    5. Create the comments data file as detailed in section Comments Data and name the file: tok_#####_com.dat.

After creating all the data it can then be copied onto the server. Each tokamak has its own FTP area, each of these has an identical layout. An example session is shown below. Some of the server responses have been removed for clarity.

    1. First connect to the server using the username and password given to you.
    2. >ftp tokamak-profiledb.ccfe.ac.uk Connected to tokamak-profiledb.ccfe.ac.uk (194.81.223.118). Name (tokamak-profiledb.ccfe.ac.uk:): jet Password: 230-aftpd:Connected to 194.81.223.118. Logging in... (NB depending on your own firewall and ftp client, you may immediately need to enter passive mode to succeed with ftp access. This is entered as follows:. ftp> passive Passive mode on ftp> )
    3. Move to the directory for the database to which you plan to upload (eg wdb) ftp> ls drwxr-xr-x 2 513 400 4096 Aug 19 2003 itb drwxr-xr-x 31 513 400 4096 Jan 8 11:31 wdb ftp> cd wdb
    4. Move to the directory for the pulse, (you can create this directory if it does not already exist). ftp> mkdir 60933 ftp> ls drwxr-xr-x 2 513 400 4096 Dec 8 10:58 60933 ftp> cd 60933
    5. Add the files ftp> put jet_60933_0d.dat ftp> put jet_60933_1d.dat ftp> put jet_60933_2d.dat ftp> put jet_60933_com.dat

2.-4. Checking Your Data Online and Making Your Data Live.

Before the data can be made live it needs to be checked and scheduled for upload. To do this go to the password protected http://tokamak-profiledb.ccfe.ac.uk/UPLOAD/. Selecting the database to which you wish to upload discharges takes you to a table of the discharges which have already been uploaded to the transit area. Your uploaded discharges can be checked and the resulting reports can be viewed online from this webpage. When you are satisfied that your data satisfies these checks, you can schedule the discharges for upload to the live database. (NB There is a finite period of time during which it is also possible to uncheck discharges which you have mistakenly flagged for upload.)

2. Checking Discharges in the Transit Area

To run checks for any uploaded discharges:
(i) select checkboxes for the discharges to check on the upload webpage and then
(ii) click on the Generate Reports buttun, which runs the checking code interactively and returns links to the reports, and a summary.
Please read these reports online and ensure that there are no significant errors in your data before continuing. Feel free to email us if you do not understand any of the error messages.

3. Scheduling Upload from the Transit Area to the Live Database

Once the data has been checked it can be scheduled for upload, also from the main upload page:
(i) select checkboxes for the discharges for upload
(ii) click on the Schedule Upload button.
(iii) please enter a useful comment for each discharge and your contact details. (These inform database users about new or modified data.)
(iv) it is possible to cancel a scheduled upload before the upload takes place. This is done from the main upload page by selecting discharges and clicking on the Remove Scheduled Upload button.

4. Upload to the Live Database

Discharges scheduled for upload will be uploaded automatically via a cron job, which runs at regular intevals to update the live data. (In extreme circumstances the administrators can run this job at any time.) Note that the upload procedure will fail to make your discharge live if the submitted data does not conform to the official variable lists and data formats. If the upload is successful the uploaded data and reports will be removed from the transit area. In the event of upload failure the data will stay in the transit area, and report files will indicate why the upload attempt failed.

Examples of Recent Submissions

See recent database submissions for examples on how to lay out file formats: NB: you need access to the restricted area to get there!



Some Useful Contributed Software

Various Ufile read/write software:
  1. Stan Kaye's FORTRAN and IDL routines to write UFILES from TRANSP could be useful for data providers.
  2. Malcolm Walters FORTRAN routines to read and write more recent and more flexible 0D UFILES (also useful for data providers.)
Various software to read/write MDSplus trees:
  1. Simple IDL Example reading a few database items into an IDL program
  2. IDL procedure to read all profile database data from a given discharge into IDL structures (originally from Martin Greenwald)
  3. Fortran Example reading a few database items into a Fortran program, with the makefile to compile with the Absoft f77 compiler (originally from David Mikkelsen)
  4. MATLAB Example reading a few database items into a MATLAB program (from Frederic Imbeaux)
  5. IDL example to write an MDSplus tree on the tokamak-profiledb.ccfe.ac.uk MDSplus server (Malcolm Walters)
  6. TCL script to generate profile database model tree files (Josh Stillerman):