Data Processing (GOLEM like)

Simple web interface

Try our simple web interface [link]. It allows plotting and data downloading [examples]

WGET

To download the whole discharge directory, it is possible to use

wget -r  -nH  --cut-dirs=3 --no-parent -l2 -Pshot http://golem.fjfi.cvut.cz/operation/shots/<shotno>

To download only one diagnostic use

wget http://golem.fjfi.cvut.cz/utils/data/<shot number>/<identifier>

List of all available signals Data. More details about web interface are here

PyGolem - python, matlab interface

See more details in Pygolem section. PyGolem supports python/matlab/html access.

Matlab - standalone

ShotNo=22471;
baseURL='http://golem.fjfi.cvut.cz/utils/data/';
identifier='loop_voltage';
%Create a path to data
dataURL=strcat(baseURL,int2str(ShotNo),'/',identifier); 
% Write data from GOLEM server to a local file
urlwrite(dataURL,identifier);
% Load data
data = load(identifier, '\t'); 
% Plot and save the graph 
plot(data(:,1)*1000, data(:,2), '.') ;
xlabel('Time [ms]')
ylabel('U_l [V]')
saveas(gcf, 'plot', 'jpeg');
exit;

Matlab - golem_data.m

A script for matlab that uses web interface to download data [link] . A simple example of use:

Download script on a linux computer

wget http://golem.fjfi.cvut.cz:5001/_showraw/SW/pygolem/golem_data.m
matlab

Simple example:
Plot one signal:

[tvec, data, obj] = golem_data(10011, 'loop_voltage')
plot(tvec, data)

LIst of all diagnostic:
http://golem.fjfi.cvut.cz/shots/0/Data.php#all_data

Advanced example:

Plot signals with labels and errorbars:

[tvec,data,obj1] = golem_data(10689 , 'electron_temperature');
[~,~,obj2] = golem_data(10689 , 'spectrometr\temperature');
hold all
plot(tvec,data)  %    or use object: plot(obj1.tvec, obj1.data)
errorbar(obj2.tvec, obj2.data,obj2.data_err(:,1), obj2.data_err(:,2) )
xlabel(obj2.ax_labels(1,:))
ylabel(obj2.ax_labels(2,:))
legend({obj1.name, obj2.name})
axis([obj1.plasma_start, obj1.plasma_end, 0, inf])
title(obj1.info)
hold off

Python - standalone

import matplotlib.pyplot as plt
from numpy import loadtxt
from urllib import urlopen

baseURL = "http://golem.fjfi.cvut.cz/utils/data/"
ShotNo = 22471
identifier = "loop_voltage"
#Create a path to data
dataURL = urlopen(baseURL+ str(ShotNo) + '/' + identifier)
#Load data from GOLEM server 
data=loadtxt(dataURL, delimiter='\t')
#Plot the graph
plt.plot(data[:,0], data[:,1], 'k-') 
plt.savefig('graph.jpg')
plt.show()

Python - golem_data.py

A script for python that uses web interface to download data [link]. A simple example of use:

Download script on a linux computer

wget http://golem.fjfi.cvut.cz:5001/_showraw/SW/pygolem/golem_data.py
ipython --pylab

Simple example:
Plot one signal:

from golem_data import golem_data
obj = golem_data(10011, 'loop_voltage')
plot(obj.tvec,obj.data)
show()

LIst of all diagnostic:
http://golem.fjfi.cvut.cz/shots/0/Data.php#all_data

Plot evolution over a group of shots:

from golem_data import golem_data
for shot in range(10300, 10350):
     plot(shot, golem_data(shot, 'pressure').data, 'b.')
show()

Advanced example:

Plot signals with labels and errorbars:

from golem_data import golem_data

obj1 = golem_data(10689 , 'electron_temperature')
obj2 = golem_data(10689 , 'spectrometr\\temperature')
plot(obj1.tvec,obj1.data,  label=obj1.labels) 
errorbar(obj2.tvec, obj2.data, xerr=obj2.tvec_err, yerr=[obj2.data_err[:,0], obj2.data_err[:,1]],  label=obj2.labels )
xlabel(obj2.ax_labels[0])
ylabel(obj2.ax_labels[1])
legend([obj1.name, obj2.name])
axis([obj1.plasma_start, obj1.plasma_end, 0, None])
title(obj1.info)
show()

More tools:

download.py - script for fast downloading of raw data without calling pygolem web interface

data_mining - Script for fast local loading of scalar values from pygolem database.

Gnuplot - standalone

set macros;
ShotNo = "22471";
baseURL = "http://golem.fjfi.cvut.cz/utils/data/";
identifier = "loop_voltage";
#Create a path to data
DataURL= "@baseURL@ShotNo/@identifier";
#Write data from GOLEM server to a local file
!wget -q  @DataURL;
#Plot the graph from a local file
set datafile separator "\t";
plotstyle = "with lines linestyle -1"
plot 'loop_voltage' using 1:2 @plotstyle;
exit;

Gnuplot and wget - from bash

echo "set ytics nomirror;plot '< wget -q -O - http://golem.fjfi.cvut.cz/utils/data/22471/uloop' u 1:2 w l title 'data'" | gnuplot -persist

IDL

There is no official support of IDL, recommended software is Matlab, Python

ShotNo=10601;
baseURL='golem.fjfi.cvut.cz/cgi-bin/data/';
diagn='loop_voltage';
;Create a path to data
dataURL=baseURL+STRTRIM(string(ShotNo),1)+'/'+diagn+'.csv';
filename=diagn+'_'+STRTRIM(string(ShotNo),1);
;Write data from GOLEM server to a local file
oUrl = OBJ_NEW('IDLnetUrl')
oUrl->SetProperty, URL_HOST = dataURL  
fn = oUrl->Get(FILENAME=filename)
;Load data
data= read_ascii(filename,delimiter = ';')
;Plot the graph
plot,data.field1(0,*),data.field1(1,*) 
;exit

Excel

Excel is not recommended, only tolerated. You can download Excel data from:

http://golem.fjfi.cvut.cz/utils/data/<shot number>/<identifier>.xls

but be patient, it can take long.

Note

Have you found any problem? Do you have some suggestion? . Thank you in advance. V. Sv.