Anotace

Cílem předmětu je seznámit posluchače s problematikou vizualizace a interpretace nejrůznějších typů vědeckotechnických a abstraktních dat. Popisovány jsou základní principy a postupy zobrazování mezioborových dat a získané znalosti jsou využity při realizaci praktických úloh z oblasti vizualizace. Důraz je kladen na vhodnost a výstižnost zvolených vizualizačních prostředků a na využití získaných znalostí při realizaci vlastních grafických výstupů podávajících co možná nejucelenější a nezkreslený obraz o zpracovávaných datech. Teoretické poznatky získané během rozboru dílčích úloh slouží jako základ pro následnou implementaci konkrétních příkladů na cvičeních. Cvičení úzce korespondují s přednáškami a realizace zmíněných témat probíhá zejména v jazycích C++, Python a JavaScript.

Plán výuky

Den Čas Přednáška
25. 9. 2024 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 1
2. 10. 2024 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 2
9. 10. 2024 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 3
16. 10. 2024 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 4
23. 10. 2024 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 5
30. 10. 2024 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 6
6. 11. 2024 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 7
13. 11. 2024 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 8
20. 11. 2024 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 9
27. 11. 2024 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 10
4. 12. 2024 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 11
11. 12. 2024 12:30 – 15:45 odevzdání řešení zadaných úloh
Maximální bodový zisk za vypracování (tj. provedení implementace a ověření funkčnosti) jednotlivých úloh naleznete zde. U všech odevzdávaných úloh se předpokládá perfektní orientace ve zdrojovém kódu a porozumění použitým metodám a postupům. Nejzazším termínem pro udělení zápočtu je 13. 12. 2024.

Zkouška

Zkouška je ústní s písemnou přípravou (3 otázky, celkem 55 bodů). Zkušební otázky korespondují s tématy na přednáškách, seznam okruhů zkušebních otázek naleznete ZDE. Primárním zdrojem informací pro přípravu ke zkoušce jsou prezentace a poznámky z přednášek. Další doporučená literatura je uvedena na slidech první přednášky.

Přednáška 1

Historický úvod, vykreslování základních grafů, porovnání regrese a interpolace. Slidy naleznete ZDE.

Přednáška 2

Typy grafů a jejich význam pro vizualizaci množství, vztahů, korelace. Estetika a rozložení grafu, tzv. lie factor, data-ink poměr, rámec trifecta, koncept chartjunk a další kognitivní aspekty grafu. Slidy naleznete ZDE.

Přednáška 3

Datová sada, dimenze, vzorkování, rekonstrukce. Slidy naleznete ZDE.

Přednáška 4

Rekonstrukce z mračna bodů. Slidy naleznete ZDE.

Přednáška 5

Vizualizace vektorových polí. Slidy naleznete ZDE.

Přednáška 6

Vizualizace tenzorových polí. Slidy naleznete ZDE.

Přednáška 7

Vizualizace objemových dat. Slidy naleznete ZDE.

Přednáška 8

SPH a rekonstrukce izoploch. Slidy naleznete ZDE.

Přednáška 9

Vizualizace abstraktních dat. Slidy naleznete ZDE.

Přednáška 10 a 11

Vizualizace grafů, hierarchických dat a redukce dimenze. Slidy naleznete ZDE.

Cvičení 1

Hlavním cílem prvního cvičení je seznámení se s nástrojem Gnuplot. Pro začátek můžete použít tuto ukázku. Dalším bodem cvičení je vyhledání libovolné teplotní časové řady (min. 50 let), její vhodná vizualizace a následná analýza.

Cvičení 2

Druhé cvičení navazuje na analýzu časové řady z předchozího cvičení hledáním vhodné aproximace pomocí kvadratické regrese (zvažte vhodnost takovéto aproximace pro případ periodických dat). Pro aproximaci využijte postup diskutovaný na přednášce, který je rovněž uvedený např. ZDE nebo ZDE.

Cvičení 3

Třetí cvičení se věnuje rekonstrukci funkce navzorkované na nepravidelné čtyřúhelníkové mřížce. Pro implementaci svého řešení můžete využít předpřipravený skrip v jazyce Python, který rozdělí obdélníkovou oblast zadané velikosti na požadovaný počet buněk tvaru obecného čtyřúhelníka. Značení vrcholů buňky odpovídá značení použitém v prezentaci.

Cvičení 4

Čtvrté cvičení se věnuje rekonstrukci funkce z mračna vygenerovaných bodů pomocí Shepardovy metody. Jako ukázkový příklad můžete využít body p_i z domény D=<-500, 500>^2 generované náhodně s normálním rozložením kolem počátku a s vhodným rozptylem, přidružené hodnoty f_i budou v tomto případě odpovídat funkční hodnotě 2D Gaussiánu. Ukázka rekonstrukce obdobné funkce je na slidu 15. Pro vizualizaci výsledků interpolace můžete využít předpřipravený skrip v jazyce Python využívající knihovnu matplotlib, případně tento novější příklad. Pro rychlé získání vzorku k-sousedů z okolí daného bodu můžete využít tento ukázkový skript.

Cvičení 5

Páte cvičení se věnuje vizualizaci vektorových polí. Pokuste se o animaci vizualizace časoprostorových vzorků vektorového pole ze simulace proudění tekutin. Vstupní data naleznete ZDE. Výsledná animace by měla obsahovat vhodné znázornění rotace a rychlosti vektorového pole, trajektorie částic (proudnice) a mohla by vypadat třeba takto. Příklad na načítání YAML souborů v jazyce Python naleznete ZDE.

Cvičení 6

Šesté cvičení se věnuje získání odhadu hustoty rozložení náhodné veličiny pomocí vážených vzorků. Příklad použití metody probírané na přednášce naleznete ZDE.

Cvičení 7

Sedmé cvičení se věnuje vizualizaci objemových dat. S využitím předpřipravené šablony se pokuste o vizualizaci izoplochy vybraného druhu tkáně pomocí libovolného osvětlovacího modelu.

Cvičení 8

Osmé cvičení se věnuje vizualizaci objemových dat pomocí nepřímé metody (Marching Cubes). S využitím OpenCV 4.5.0 s modulem viz a knihovny VTK 9.0.1 pro Visual Studio 2019 (funkční i ve verzi 2022) se pokuste o vizualizaci izoplochy z tohoto záznamu SPH simulace diskutované na přednášce. Ukázka výsledku simulace pomocí SPH je zde. Ukázka výsledku rekonstrukce izoplochy z výstupních dat SPH pomocí algoritmu Marching Cubes je zde. Izoplocha je odvozena z hustoty tekutiny a je dána prahovou hodnotou hustoty částic (800 kg/m3). Krok pravidelné vzorkovací mřížky je 0,0125 m, tj. 81x81x81 ohodnocených vrcholů pravidelně rozmístěných v simulační doméně o velikosti (-0,5; -0,5; 0)x(0,5; 0,5; 1) m a tvořících celkem 80x80x80 krychlí. Hustota tekutiny je v každém vrcholu vypočtena podle základního vzorce SPH ze slidů (sl. 7 první vzorec a sl. 10). Triangulace každé krychle je vytvořena pomocí Marching Cubes algoritmu. Hustota v místech (resp. středech) jednotlivých částic je uložena ve výše odkazovaných binárních datech. Hmotnost jedné částice mi je rovna 0,00625 kg. Projekt pro Visual Studio 2022 integrující vše potřebné včetně ukázky načtení dat, zobrazení trojúhelníků a vyhledávání bodů v r-okolí naleznete zde.

Cvičení 9

Deváté cvičení se věnuje vizualizaci grafových struktur.

Cvičení 10

Desáté cvičení se věnuje vizualizaci multidimenzionálních dat a redukci dimenze pomocí FastMap algoritmu. Cvičení se věnuje vizualizaci abstraktních dat. S využitím knihovny D3.js, chartjs nebo obdobné knihovny pro interaktivní vizualizaci grafů ve webovém prostředí. Pokuste o vizualizaci (např. pomocí scatter plotu) libovolných vstupních dat o dimenzi nejméně 5, u kterých provedete redukci do dimenze 2 nebo 3. K redukci dimenze využijte ukázku implementace algoritmu FastMap, kterou naleznete zde.

Cvičení 11

Jedenácté cvičení se věnuje vizualizaci multidimenzionálních dat a redukci dimenze pomocí LAMP algoritmu. Pokuste o vizualizaci (např. pomocí scatter plotu) libovolných vstupních dat o dimenzi nejméně 5, u kterých provedete redukci do dimenze 2 nebo 3. K redukci dimenze využijte ukázku implementace algoritmu LAMP, kterou naleznete zde.