Revision 60123f4131ecf1d57fe1c51d9cc4f9e0ad74b2ab (click the page title to view the current version)
Changes from 60123f4131ecf1d57fe1c51d9cc4f9e0ad74b2ab to d23a2937769daab3ea3b4dc31b6518c39e350878
---
format:markdown
...
# Hackathon ML/AI 2024 - soutěžní téma na tokamaku GOLEM
<center>
<img src="http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/figs/ChatGPT.jpg" width=50%/>
*Tady je obrázek kombinující tokamak GOLEM s atmosférou hackathonu! Tokamak je centrálním bodem, zatímco kolem něj pracují programátoři a inženýři na svých laptopech. Příjemná kombinace výzkumné laboratoře a moderního pracovního prostoru s hackathonovou energií.* (ChatGPT na otázku "Ahoj, udělal bys mi obrázek kombinující tokamak GOLEM a hackathon?")
</center>
# Výroba energie
<center>
<img src=http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/figs/Steam.jpg width=50%/>
Co takhle jako zdroj tepla "malá hvězda"?
<img src=http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/figs/SunSteam.jpg width=50%/>
</center>
# Termonukleární fúze
Zdrojem energie hvězd a samozřejmě i Slunce je [Termonukleární fúze](https://cs.wikipedia.org/wiki/Termonukle%C3%A1rn%C3%AD_f%C3%BAze).
<center>
<figure>
<img src="http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/figs/Deuterium-tritium_fusion.svg.png" width="30%" alt="" />
<figcaption>Schematické znázornění fúze jádra. Credit: <a href="https://cs.wikipedia.org/wiki/Termonukle%C3%A1rn%C3%AD_f%C3%BAze">Wiki</a></figcaption>
</figure>
</center>
# Vize budoucího fúzního reaktoru
[Vize budoucího fúzního reaktoru @ Wiki](https://cs.wikipedia.org/wiki/Jadern%C3%BD_f%C3%BAzn%C3%AD_reaktor)
<center>
<figure>
<img src="http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/figs/Electrical-energy-produced-from-fusion.png" width="50%" alt="" />
<figcaption>Schéma budoucího fúzního reaktoru. Credit: <a href="https://www.researchgate.net/figure/Electrical-energy-produced-from-fusion_fig1_352873186">ResearchGate</a></figcaption>
</figure>
</center>
# Tokamaky
[Tokamak @ Wiki](https://cs.wikipedia.org/wiki/Tokamak)
<center>
<figure>
<img src="http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/figs/387px-Schematic-of-a-tokamak-chamber-and-magnetic-profile.jpg" width="50%" alt="" />
<figcaption>Tokamak. Credit: <a href="https://cs.wikipedia.org/wiki/Tokamak">Wikipedia</a></figcaption>
</figure>
</center>
# Tokamak GOLEM
[Tokamak GOLEM](https://cs.wikipedia.org/wiki/Tokamak_TM-1_MH) je malé studijní zařízení na Jaderné fakultě ČVUT.
<center>
<img src="http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/figs/Title_small.jpg" width=50%/>
</center>
# Elektrické pole $E_t$ je důležitá komponenta tokamakové technologie GOLEMa
<center>
<img src="http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/figs/tGconcept.jpg" width=50%/>
</center>
# Nějak to musíme diagnostifikovat. $U_{loop}$ reflektuje Elektrické pole $E_t$
<center>
<img src="http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/figs/tGdiag.jpg" width=50%/>
</center>
# Basic diagnostics @ Shot homepage
<center>
<img src="http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/figs/ShotHmpg.jpg" width=50%/>
</center>
# Hackathon ML/AI 2024 - soutěžní téma na tokamaku GOLEM
# Cesta k $U_{loop}$ datům
Obecně je přístup k csv formátovaným datům (čas [ms], napětí [V]) přes adresu
**http://golem.fjfi.cvut.cz/discharges/*ShotNumber*/Diagnostics/BasicDiagnostics/U_Loop.csv**
kde *ShotNumber* je číslo výboje.
Třeba pro výboj číslo #39187:
<table>
<tr><td>
~~~
mport numpy as np
import matplotlib.pyplot as plt
import requests
shot_no = 39187
shot_no=39187
data = np.loadtxt("http://golem.fjfi.cvut.cz/discharges/" + str(shot_no) + "/Diagnostics/BasicDiagnostics/U_Loop.csv",delimiter=",")
plasma_start=np.float64(requests.get("https://golem.fjfi.cvut.cz/getData.php?schema=diagnostics&table=plasmadetection&column=t_Plasma__start&ShotNo="+ str(shot_no)).text.strip())
plasma_end=np.float64(requests.get("https://golem.fjfi.cvut.cz/getData.php?schema=diagnostics&table=plasmadetection&column=t_Plasma__end&ShotNo="+ str(shot_no)).text.strip())
plt.plot(data[:,0], data[:,1]) #1. column vs 2. column
plt.title('#'+str(shot_no))
plt.xlabel('Time [ms]');plt.ylabel('$U_{loop}$ [V]');
plt.axvline(x=plasma_start, color='black', linestyle='--');
plt.axvline(x=plasma_end, color='black', linestyle='--');
plt.savefig('U_loop-'+str(shot_no)+'.jpg')
plt.show()
~~~
</td><td><img src="http://golem.fjfi.cvut.cz/wiki/Handling/CompAlgSystems4Golem/python/v3/Jupyter/Demos/39187/Ul/code/graph.jpg" width="500"></img></td></tr>
</td><td><img src="http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/python/U_loop-39187.jpg" width="500"></img></td></tr>
</table>
# Databáze výbojů na tokamaku GOLEM
V historii tokamaku GOLEM od 8.7.2009 do řijna 2024 bylo provedeno více než 46500 výbojů. Standardní cesta k záznamu o nastavení a vysledcích jednotlivého výboje je přes adresu **http://golem.fjfi.cvut.cz/shots/*ShotNumber***. Třeba [http://golem.fjfi.cvut.cz/shots/39187](http://golem.fjfi.cvut.cz/shots/39187) . Uložení dat a cesta k nim se však s vývojem značně měnila, tak pro požadavky Hackathonu jsme sjednotili přístup pro $U_loop$ csv file přes adresu **http://golem.fjfi.cvut.cz/discharges/*ShotNumber*/Diagnostics/BasicDiagnostics/U_Loop.csv**
K dispozici jsou dvě vlny rozumně zpracovatelných výbojů
* (10600 < ShotNumber < 31150 ), kde by mělo být více než 15000 úspěšných výbojů
* (36247 < ShotNumber < 45206 ), kde by mělo být více než 5500 úspěšných výbojů
K dispozici máte tyto údaje
* Naše vyhodnocení, zda došlo k úspěšnému provedení plazmatického výboje ve formátu https://golem.fjfi.cvut.cz/getData.php?schema=diagnostics&table=plasmadetection&column=b_Plasma&ShotNo=*ShotNumber*. Třeba pro výboj [#39187](https://golem.fjfi.cvut.cz/getData.php?schema=diagnostics&table=plasmadetection&column=b_Plasma&ShotNo=39187) . Možné hodnoty 1: šlo o výboj, 0: výboj se nezapálil.
* Začátek výboje v milisekundách ve formátu https://golem.fjfi.cvut.cz/getData.php?schema=diagnostics&table=plasmadetection&column=t_Plasma__start&ShotNo=*ShotNumber*. Třeba pro výboj [#39187](https://golem.fjfi.cvut.cz/getData.php?schema=diagnostics&table=plasmadetection&column=t_Plasma__start&ShotNo=39187).
* Konec výboje v milisekundách ve formátu https://golem.fjfi.cvut.cz/getData.php?schema=diagnostics&table=plasmadetection&column=t_Plasma__end&ShotNo=*ShotNumber*. Třeba pro výboj [#39187](https://golem.fjfi.cvut.cz/getData.php?schema=diagnostics&table=plasmadetection&column=t_Plasma__end&ShotNo=39187).
* Dobu výboje v milisekundách ve formátu https://golem.fjfi.cvut.cz/getData.php?schema=diagnostics&table=plasmadetection&column=t_Plasma__duration&ShotNo=*ShotNumber*. Třeba pro výboj [#39187](https://golem.fjfi.cvut.cz/getData.php?schema=diagnostics&table=plasmadetection&column=t_Plasma__duration&ShotNo=39187).
* Již zmíněná cesta k časovému vývoji $U_l$: http://golem.fjfi.cvut.cz/discharges/*ShotNumber*/Diagnostics/BasicDiagnostics/U_Loop.csv**. Třeba pro výboj [#39187](https://golem.fjfi.cvut.cz/discharges/39187/Diagnostics/BasicDiagnostics/U_Loop.csv).
# Různé režimy výboje
V historii tokamaku GOLEM jsme zaznamenali různé režimy. V následující tabulce jsou uvedeny příklady:
(prosím pozor, v případě, že nevidíte ikony, zaměňte v adrese https za http)
<table border=1>
<tr><th>Režim</th><th>Číslo výboje</th><th>Graf</th><th>Cesta k datům</th><th>Další příklady</th></tr>
<tr><td>Výboj se vůbec nezapálil (nedošlo k průrazu)<br></br>Tento typ výbojů vás vůbec nezajímá. <br></br>Tag b_Plasma=0</td><td><a href=http://golem.fjfi.cvut.cz/shots/39160>#39160</a></td>
<td><img src="http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/figs/U_loop-39160.jpg" width="500"></img></td><td>[$U_{loop}$](https://golem.fjfi.cvut.cz/discharges/39160/Diagnostics/BasicDiagnostics/U_Loop.csv)</td><td></td></tr>
<td><img src="http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/python/U_loop-39160.jpg" width="500"></img></td><td>[$U_{loop}$](https://golem.fjfi.cvut.cz/discharges/39160/Diagnostics/BasicDiagnostics/U_Loop.csv)</td><td></td></tr>
<tr><td>Standardní (jednoduchý průraz)<br></br>Tag b_Plasma=1</td><td><a href=http://golem.fjfi.cvut.cz/shots/39187>#39187</a></td>
<td><img src="http://golem.fjfi.cvut.cz/wiki/Handling/CompAlgSystems4Golem/python/v3/Jupyter/Demos/39187/Ul/code/graph.jpg" width="500"></img></td><td>[$U_{loop}$](https://golem.fjfi.cvut.cz/discharges/39187/Diagnostics/BasicDiagnostics/U_Loop.csv)</td><td>[Standard discharges](http://golem.fjfi.cvut.cz/DataBase/Tools/SelectDischarges.php?order=shot_no&direction=DESC&howmany=20&width=20&where=shot_no=45505%20OR%20shot_no=45499)</td></tr>
<tr><td>Standardní (jednoduchý průraz)<br></br>Tag b_Plasma=1</td><td><a href=http://golem.fjfi.cvut.cz/shots/39187>#39187</a></td><img src="http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/python/U_loop-39187.jpg" width="500"></img>
<td></td><td>[$U_{loop}$](https://golem.fjfi.cvut.cz/discharges/39187/Diagnostics/BasicDiagnostics/U_Loop.csv)</td><td>[Standard discharges](http://golem.fjfi.cvut.cz/DataBase/Tools/SelectDischarges.php?order=shot_no&direction=DESC&howmany=20&width=20&where=shot_no=45505%20OR%20shot_no=45499)</td></tr>
<tr><td>Nestandardní (dvojitý průraz)<br></br>Tag b_Plasma=1</td><td><a href=http://golem.fjfi.cvut.cz/shots/44914>#44914</a></td>
<td><img src="http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/figs/U_loop-44914.jpg" width="500"></img></td><td>[$U_{loop}$](https://golem.fjfi.cvut.cz/discharges/44914/Diagnostics/BasicDiagnostics/U_Loop.csv)</td><td>[Double breakdown examples](http://golem.fjfi.cvut.cz/DataBase/Tools/SelectDischarges.php?order=shot_no&direction=DESC&howmany=20&width=20&where=tag_dbl_bd%20=%20true) + [z dávné historie](http://golem.fjfi.cvut.cz/wiki/ShowRooms/PlasmaPerformance/DoubleBreakdown/index)</td></tr>
<tr><td>Nestandardní (trojitý průraz)<br></br>Tag b_Plasma=1</td><td><a href=http://golem.fjfi.cvut.cz/shots/41642>#41642</a></td>
<td><img src="http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/figs/U_loop-41642.jpg" width="500"></img></td><td>[$U_{loop}$](https://golem.fjfi.cvut.cz/discharges/41642/Diagnostics/BasicDiagnostics/U_Loop.csv)</td><td>[Tripple breakdown examples](http://golem.fjfi.cvut.cz/DataBase/Tools/SelectDischarges.php?order=shot_no&direction=DESC&howmany=20&width=20&where=tag_trp_bd%20=%20true) + [z dávné historie](http://golem.fjfi.cvut.cz/wiki/ShowRooms/PlasmaPerformance/TripleBreakdown/index)</td></tr>
<tr><td>Nestandardní (několikanásobný průraz)<br></br>Tag b_Plasma=1</td><td><a href=http://golem.fjfi.cvut.cz/shots/44625>#44625</a></td>
<td><img src="http://golem.fjfi.cvut.cz/wiki/Events/Hackathon/24Decin/figs/U_loop-44625.jpg" width="500"></img></td><td>[$U_{loop}$](https://golem.fjfi.cvut.cz/discharges/44625/Diagnostics/BasicDiagnostics/U_Loop.csv)</td><td>[Multiple breakdown examples](http://golem.fjfi.cvut.cz/DataBase/Tools/SelectDischarges.php?order=shot_no&direction=DESC&howmany=20&width=20&where=tag_mlt_bd%20=%20true)</td></tr>
</table>
[python/PureUloop.html](Použit tento kód)
# Úkol: připravit otagování dostupných výbojů
* Sestavit csv tabulku se dvěma sloupci: ShotNumber, Tag . Tag bude nabývat hodnot
* dbl pro dvojitý průraz
* trp pro trojitý průraz
* mlt pro vícenásobný průraz
* Připravit web stránku s výsledky, která bude obsahovat
* Popis použité metody
* Výsledky ve formě znázornění po 20 grafech pro jednotlivé režimy vybraných výbojů podle náhodného generátoru.