Source code :: data
[Return]
[Download]##!/usr/bin/python2
## -*- coding: utf-8 -*-
<%page args="shot, page"/>
<% base = 'http://golem.fjfi.cvut.cz/operation/shots/'
from pygolem import Shot, set_backend, change_data_root
from pygolem.config import TororoidalMagneticFieldTrigger, TororoidalMagneticFieldCapacitorValue, CurrentDriveElectricFieldCapacitorValue, StabilizationCapacitorValue, BreakDownElectricFieldCapacitorValue
from pygolem.modules import loadconst, get , emph, cat, Data
import datetime, cStringIO
from pygolem.modules import cat, emph, get_page_paths
page_path, base_path, page = get_page_paths(shot, page)
%>
<h3>Basic parameters (Shot: ${shot}):</h3><ul>
<li>Chamber pressure before gas filling (vacuum pressure): p<sub>ch<sub>init</sub></sub> = ${emph(get('pressure_initial', '%.2f mPa'))} <br/>
<a href="${base}${shot}/Initial_PfeifferMerkaVakua">${base}${shot}/Initial_PfeifferMerkaVakua </a>
<li>Chamber pressure just before the triggering: p<sub>ch<sub>trig</sub></sub>=${emph(get('pressure', '%.2f mPa'))}<br/>
<a href="${base}${shot}/Aktual_PfeifferMerkaVakua">${base}${shot}/Aktual_PfeifferMerkaVakua </a>
<li>Working gas pressure request: p<sub>H2<sub>req</sub></sub>=${get('pressure_request', '%.2f')} mPa<br/>
<a href="${base}${shot}/pressure_setting_mPa">${base}${shot}/pressure_setting_mPa</a>
<li>Chamber temperature: T<sub>ch</sub>=\
${get('chamber_temperature', '%.2f')} \
°C over the room temperature (thermocouple)</li>
<a href="${base}${shot}/Aktual_TermoclanekNaKomore">${base}${shot}/Aktual_TermoclanekNaKomore</a>
<li>C<sub>B<sub>t</sub></sub> capacitors ( ${TororoidalMagneticFieldCapacitorValue} mF) charged to: ${emph('%i V'%get('Ub'))}, \
triggered ${emph('%.1f ms'% (TororoidalMagneticFieldTrigger*1e3))}</li>
<a href="${base}${shot}/nabijeni/Ub_limit">${base}${shot}/nabijeni/Ub_limit</a>
<li>C<sub>BD</sub> capacitors (${BreakDownElectricFieldCapacitorValue} mF) charged to: ${emph(get('Ubd', '%i V'))}, triggered \
${emph('%.1f ms'% ((get('Tbd'))/1e3+TororoidalMagneticFieldTrigger*1e3))}\
</li>
<a href="${base}${shot}/nabijeni/Ubd_limit">${base}${shot}/nabijeni/Ubd_limit</a><br/>
<a href="${base}${shot}/Tbd_aktual">${base}${shot}/Tbd_aktual</a> ![μs]
<li>C<sub>CD</sub> capacitors (${CurrentDriveElectricFieldCapacitorValue} mF) charged to: ${emph(get('Ucd', '%i V'))}, triggered \
${emph('%.1f ms'% ((get('Tcd'))/1e3+TororoidalMagneticFieldTrigger*1e3))}\
</li>
<a href="${base}${shot}/nabijeni/Ucd_limit">${base}${shot}/nabijeni/Ucd_limit</a><br/>
<a href="${base}${shot}/Tcd_aktual">${base}${shot}/Tcd_aktual</a> ![μs]
<li>C<sub>ST</sub> capacitors (${StabilizationCapacitorValue} mF) charged to: ${emph(get('Ust', '%i V'))}, triggered \
${ emph('%.1f ms'% ((get('Tst'))/1e3+TororoidalMagneticFieldTrigger*1e3))}\
</li>
<a href="${base}${shot}/nabijeni/Ust_limit">${base}${shot}/nabijeni/Ust_limit</a><br/>
<a href="${base}${shot}/Tst_aktual">${base}${shot}/Tst_aktual</a> ![μs]
<li>charging log: t, U<sub>B</sub>, U<sub>BD</sub>, U<sub>CD</sub>, U<sub>DS</sub>, p<sub>chamber</sub></a></li>
<a href="${base}${shot}nabijeni/Time_AD4ETHb">${base}${shot}nabijeni/Time_AD4ETHb</a>
<li>Time since <a href="${cat(base_path + '/SessionName')}">session</a> beginning: ${str(datetime.timedelta(seconds=int(get('time'))))} h</li>
</ul>
<h3>Diagnostics:</h3><ul>
<li>Raw data (U<sub>loop</sub>,B<sub>t</sub>,I<sub>p+ch</sub>,U<sub>PhotoC</sub>)<br/>
<a href="${base}${shot}/basicdiagn/usbscopes">${base}${shot}/basicdiagn/usbscopes</a> (tabs & decimal point format)<br/>
<a href="${base}${shot}/basicdiagn/usbscopes_dc">${base}${shot}/basicdiagn/usbscopes_dc</a> (tabs & decimal comma format ... available from No:3553)</li>
<li>Figures:<br/>
raw data: <a href='${base}${shot}/basicdiagn/graphpresb.png'>${base}${shot}/basicdiagn/graphpresb.png</a><br/>
integrated data (I<sub>ch+p</sub>): <a href='${base}${shot}/basicdiagn/graphpresi.png'>${base}${shot}/basicdiagn/graphpresi.png</a><br/>
integrated data (I<sub>p</sub>): <a href='${base}${shot}/basicdiagn/graphpresfull.png'>${base}${shot}/basicdiagn/graphpresb.png</a><br/>
zoomed data: <a href='${base}${shot}/basicdiagn/graphpres.png'>${base}${shot}/basicdiagn/graphpresb.png</a></li>
<li>Extracts (decimal point/comma point format): <br/>
Loop voltage: <t,U<sub>loop</sub>>:${base}${shot}/basicdiagn/(<a href='${base}${shot}/basicdiagn/Uloop_dp.csv'>Uloop_dp.csv</a>/<a href='${base}${shot}/basicdiagn/Uloop_cp.csv'>Uloop_cp.csv</a>)
<br/>
B coil: <t,B<sub>t</sub>>:${base}${shot}/basicdiagn/(<a href='${base}${shot}/basicdiagn/Btoroidal_dp.csv'>Btoroidal_dp.csv</a>/<a href='${base}${shot}/basicdiagn/Btoroidal_cp.csv'>Btoroidal_cp.csv</a>)
<br/>
Rogowski coil: <t,I<sub>ch+p</sub>>:${base}${shot}/basicdiagn/(<a href='${base}${shot}/basicdiagn/Irogowski_dp.csv'>Irogowski_dp.csv</a>/<a href='${base}${shot}/basicdiagn/Irogowski_cp.csv'>Irogowski_cp.csv</a>)
<br/>
Rogowski coil: <t,I<sub>p</sub>>:${base}${shot}/basicdiagn/(<a href='${base}${shot}/basicdiagn/Iplasma_dp.csv'>Iplasma_dp.csv</a>/<a href='${base}${shot}/basicdiagn/Iplasma_cp.csv'>Iplasma_cp.csv</a>)
<br/>
Photocell: <t,I<sub>rad</sub>>:${base}${shot}/basicdiagn/(<a href='${base}${shot}/basicdiagn/Photod_dp.csv'>Photod_dp.csv</a>/<a href='${base}${shot}/basicdiagn/Photod_cp.csv'>Photod_cp.csv</a>)
</li></ul>
% if get('plasma', '%.2f'):
<h3>Plasma created!</h3><ul>
<li>Plasma start τ<sub>pl_start</sub>=${get('plasma_start', '%.2f')} ms <br/>
<a href="${base}${shot}/basicdiagn/PlasmaStart">${base}${shot}/basicdiagn/PlasmaStart</a>
<li>Plasma end τ<sub>pl_start</sub>=${get('plasma_end', '%.2f')} ms <br/>
<a href="${base}${shot}/basicdiagn/PlasmaEnd">${base}${shot}/basicdiagn/PlasmaEnd</a>
<li>to be continued ..</li>
% endif
</ul>
<h4> Comments </h4>
<ul><li>How to access such data? Try e.g. <a href="http://en.wikipedia.org/wiki/Wget">Wget</a> or <a href="http://sourceforge.net/p/pygolem/home/Home/"> ${emph('pygolem')} </a> </li>
<li>Any comments, suggestions? Do you miss something? <a href="mailto:svoboda@fjfi.cvut.cz">Send an e-mail</a></li></ul>
<%
from pygolem.modules import cat, Data
def get_max_width(table, index):
"""Get the maximum width of the given column index"""
return max([len(str(row[index])) for row in table])
def pprint_table(out, table):
"""Prints out a table of data, padded for alignment
@param out: Output stream (file-like object)
@param table: The table to print. A list of lists.
Each row must have the same number of columns. """
col_paddings = []
for i in range(len(table[0])):
col_paddings.append(get_max_width(table, i))
for row in table:
# left col
print >> out, "<td>", row[0].ljust(col_paddings[0] + 1),"</td>"
# rest of the cols
for i in range(1, len(row)):
col = str(row[i]).ljust(col_paddings[i] + 2)
print >> out,"<td>", col,"</td>"
print >> out,'</tr><tr>'
def get_pygolem_list():
Data.data_types
table = []
for i in Data.data_types:
try:
table.append( [Data.data_types[i]['identifier'], Data.data_types[i]['name']])
except:
pass
#out = sys.stdout
out = cStringIO.StringIO()
pprint_table(out, (table))
return out.getvalue()
%>
<h2> List of available data in <a href="http://sourceforge.net/p/pygolem/home/Home/">${emph('Pygolem')}</a> <a href="${base_path}/data_configuration.cfg">[data_configuration.cfg]</a> </h2>
<table>
<tr><td><h4>Identifier</h4></td><td><h4>Description</h4></td></tr>
<tr>
${get_pygolem_list()}
</tr>
</table>[Return]