Revision 82dd582045b2ec890b46e78d5419389be4916146 (click the page title to view the current version)

Handling/DataAccess/DataProcessing

Changes from beginning to 82dd582045b2ec890b46e78d5419389be4916146

---
format: markdown
title: Data Processing (GOLEM like)
categories: Analysis, SW
...

Simple web interface
--------------------------------
**Try our simple web interface   [[link]](http://golem.fjfi.cvut.cz/utils/). 
It allows plotting and data downloading  [[examples]](http://golem.fjfi.cvut.cz/wiki/SW/ShowRoom/index)**

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

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

To download only one diagnostic use 

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

**List of all available signals [Data](http://golem.fjfi.cvut.cz/operation/currentshot/Data.php#all_data). 
More details about web interface are [here](/SW/pygolem#use-pygolem-web-interface)**



PyGolem - python, matlab interface 
-------------
**See more details in [Pygolem section](/SW/pygolem)**. PyGolem supports python/matlab/html access. 

Matlab - standalone

~~~ { .matlab }
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]](/SW/pygolem/golem_data.m)** . A simple example of use:

*Download script on a linux computer*

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

**Simple example:** <br>
*Plot one signal:*

~~~ { .matlab }
[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](http://golem.fjfi.cvut.cz/shots/0/Data.php#all_data)

**Advanced example:**

*Plot signals with labels and errorbars:*

~~~ { .matlab }
[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
--------------------
~~~ { .python }
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]](/SW/pygolem/golem_data.py)**. A simple example of use:

*Download script on a linux computer*

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

**Simple example:** <br>
*Plot one signal:*

~~~ { .python }
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](http://golem.fjfi.cvut.cz/shots/0/Data.php#all_data)


*Plot evolution over a group of shots:* 

~~~ { .python }
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:*

~~~ { .python }
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](/SW/pygolem/download.py) - script for fast downloading of raw data without calling pygolem web interface

[data_mining](/SW/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
-------

~~~ { .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*

~~~ { .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? [We really appreciate your feedback, comments and suggestions](mailto:svoboda@fjfi.cvut.cz). Thank you in advance. V. Sv.