Revision 82dd582045b2ec890b46e78d5419389be4916146 (click the page title to view the current version)
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.