VisNow – struktury danych

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Minimalizacja formuł Boolowskich
Czwartek demo 6.
C++ wykład 2 ( ) Klasy i obiekty.
Egzamin.
Modele oświetlenia Punktowe źródła światła Inne
Standardowa biblioteka języka C++
Klasy i obiekty.
Kinematyka punktu materialnego
Krzysztof Skabek, Przemysław Kowalski
Zadanie z dekompozycji
Metoda elementów skończonych cd.
Cyfrowy model powierzchni terenu
Temat: WIELOŚCIANY KLASA III P r.
Wykład no 11.
Elementarne struktury danych Piotr Prokopowicz
Reguła pojedynczej nieregularności siatki: Element skończony może zostać złamany tylko raz bez konieczności złamania sąsiadującego dużego elementu. REGUŁY.
PROPOZYCJA PROJEKTÓW hp1d, hp2d, hp3d
MATEMATYKA KRÓLOWA NAUK
Pola Figur Płaskich.
Podstawy programowania PP – WYK5 Wojciech Pieprzyca.
Wykład 2 struktura programu elementy języka typy zmienne
Matematyka Geometria Wykonanie :Iza Cedro.
Wielkości skalarne i wektorowe
GrAnIaStOsŁuPy PrOsTe.
Wycieczka w n-ty wymiar
Paweł Stasiak Radosław Sobieraj Michał Wronko
Temat: Opis prostopadłościanu.
Modele (graficznej reprezentacji) danych przestrzennych
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
Wykonała: mgr Renata Ściga
Definicje matematyczne - geometria
GEOMETRIA PROJEKT WYKONALI: Wojciech Szmyd Tomasz Mucha.
Współrzędne jednorodne
Podstawy programowania
Graniastosłupy proste i nie tylko
MECHANIKA NIEBA WYKŁAD r.
Wektory SW Department of Physics, Opole University of Technology.
Wykład 5 – typy – stałe – tablice – elementy grafiki.
ANNA BANIEWSKA SYLWIA FILUŚ
FIGURY GEOMETRYCZNE.
Podstawy programowania w języku C i C++
Przygotowała Patrycja Strzałka.
Jerzy Kotowski Politechnika Wrocławska
VisNow – czytanie danych regularnych
VisNow – struktury danych Krzysztof S. Nowiński
Analiza wizualna – co to jest i czym to się je
Figury przestrzenne.
Analiza wizualna – co to jest i czym to się je Krzysztof S. Nowiński
Metoda elementów skończonych cd.
Bryły.
Fizyka z astronomią technikum
Grafika i komunikacja człowieka z komputerem
Materiały pochodzą z Platformy Edukacyjnej Portalu
BRYŁY.
Hipersześciany i przestrzenie wielowymiarowe
Trochę algebry liniowej.
WYKŁAD 5 OPTYKA FALOWA OSCYLACJE I FALE
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
Geometria na płaszczyźnie kartezjańskiej
PODSTAWY STEREOMETRII
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Figury płaskie Układ współrzędnych.
PODSTAWY PRACY W PROGRAMIE AUTOCAD OPISYWANIE RYSUNKÓW: ‒style tekstu; ‒wprowadzanie tekstu tekst wielowierszowy tekst jednowierszowy ‒edycja tekstu. WYMIAROWANIE.
1.problem próbkowania (sampling problem) dobór charakterystycznych punktów powierzchni w celu uzyskania najlepszego efektu przy minimalizacji ilości danych.
Prezentacja : Karoliny Kos, Weroniki Grzelki, Karoliny Kijas.
Programowanie Obiektowe – Wykład 2
Wiktoria Dobrowolska. Grafika komputerowa - dział informatyki zajmujący się wykorzystaniem komputerów do generowania obrazów oraz wizualizacją rzeczywistych.
Obliczenia w Matlabie Tablice
Pola figur płaskich.
Zapis prezentacji:

VisNow – struktury danych Krzysztof S. Nowiński visnow@icm.edu.pl

Wizualizacja danych a wizualizacja informacji Dane: Struktura zadana a priori Geometria zwykle w przestrzeni fizykalnej Wartości głównie liczbowe Informacja Strukturę dopiero tworzymy Geometria dopiero do ustalenia Wartości często tekstowe lub obiektowe

Dane – geometria i struktura Współrzędne punktów w przestrzeni n-wymiarowej (n=1,2,3,4,...) Zadane w sposób naturalny lub obliczone ne podstawie struktury czy wartości Podane explicite lub łatwe do wyliczenia w miarę potrzeby Struktura Określa logiczne powiązania między punktami Zazwyczaj określa zakres możliwej interpolacji Zależna od problemu: Miasta w Polsce – Punkty (demografia) Węzły grafu (komunikacja) Wierzchołki triangulacji (obserwacje meteo)

Dane -Struktura Logika powiązań Interpolacja Przykłady: Wiązania wyznaczające strukturę cząsteczki Połączenia lotnicze Połączenia telekomunikacyjne Połączenia logiczne odsyłaczy WWW Interpolacja Jeżeli skończony zbiór danych jest wynikiem eksperymentalnego lub numerycznego próbkowania continuum Możemy interpolować według reguł wyznaczonych przez strukturę Struktura regularna – tablica 1- 2- lub 3-wymiarowa Struktura nieregularna – powiązania opisywane explicite

Struktura 1 2 3 4 7 6 5 Opis formalny - komórki Zerowymiarowa punkt Jednowymiarowa odcinek Dwuwymiarowe trójkąt, czworokąt Trójwymiarowe czworościan, piramida, pryzmat (graniastosłup trójkątny), sześciościan Zadane listą wierzchołków 1 2 3 4 7 6 5

Siatka - struktura+geometria Siatka regularna równoległościenna Struktura tablicy 1- 2- lub 3-wymiarowej (komórki są odpowiednio odcinkami, czworokątami lub sześciościanami) Opis struktury: {int ndim; int dims[ndim]} Geometria: siatka złożona z odcinków, równoległoboków lub równoległościanów Opis geometrii: {int nspace; float affine[4][nspace]} affine[3] – początek układu affine[0], affine[1],… - wektory krawędzi komórki Współrzędne i lista komórek nie muszą być pamiętane

Siatka - struktura+geometria Siatka regularna ze współrzędnymi Struktura tablicy 1- 2- lub 3-wymiarowej (komórki są odpowiednio odcinkami, czworokątami lub sześciościanami) Opis struktury: {int ndim; int dims[ndim]} Geometria: punkty umieszczone dowolnie w przestrzeni Opis geometrii: {int nspace; float coords[N * nspace]} (nspace ≥ndims, N – liczba punktów (iloczyn wymiarów siatki) Lista komórek nie musi być pamiętana

Struktura Siatka nieregularna 1 2 3 4 7 6 5 Wektor zbiorów komórek (CellSet) CellSet: Tablica cellArrays[8][] cellArrays[i] – tablica węzłów komórek typu i, np. cellArrays[2] ma długość 3*nTriangles Automatycznie tworzone boundaryCellArrays[4][] Listy komórek muszą być pamiętane Geometria: punkty umieszczone dowolnie w przestrzeni Opis geometrii: {int nspace; float coords[N * nspace]} (nspace ≥ndims, N – liczba punktów (iloczyn wymiarów siatki) 3 1 2 4 5 6 7

Pole: siatka + wartości Wartości są przechowywane w strukturach (klasach) pochodnych od DataArray DataArray: name – nazwa używana przy wyborze komponenty type – typ danych w tablicy - od DataArray.BOOLEAN do DataArray.DOUBLE i DataArray.STRING veclen – 1 gdy dane skalarne, >1 gdy wektorowe nData – liczba elementów danych Dane w tablicy o długości veclen * nData Mogą być określone (typowo) dla punktów (node data) lub dla komórek w przypadku siatek nieregularnych (cell data) – każdy CellSet może mieć własny zestaw danych

Pole: siatka + wartości Pole może zawierać dowolną liczbę danych dowolnych typów, skalarnych lub wektorowych Dodatkowo, pole może zawierać maskę – tablicę danych typu boolean wskazującą, które punkty zawierają dane istotne – przykładowo, model falowania Bałtyku jest liczony na siatce prostokątnej, należy więc użyć maski równej false dla punktów wewnątrz lądu. Wszystkie tablice danych, współrzędne i maska mogą zależeć od czasu: Timestep (krok czasowy) to para {float time, <type>[] data} Dla zadanego momentu t dostępna jest interpolacja kawałkami liniowa na chwilę t Różne tablice danych mogą mieć różne szeregi chwil i odpowiadających im danych

Klasy danych i ich API Field – klasa abstrakcyjna Podklasy Nazwa (String name) Liczba punktów (int nNodes) Wymiar przestrzeni (int nSpace) – zwykle 3 Współrzędne (float[] coords) Płaska tablica {(x,y,z)0, (x,y,z)1,…} – może być null dla pola regularnego Opcjonalna maska (boolean[] mask) Wektor obiektów wartości (Vector<DataArray> data) Rozmiary (float[][] extents) Zakres i-tej współrzędnej od extents[0][i] do extents[1][i] ustalany automatycznie (z możliwością nadpisania) Podklasy RegularField IrregularField

Podklasy Field RegularField – siatka regularna Wymiary (int[] dims) nNodes = dims[0]*dims[1]… ustawiane automatycznie nSpace ≥dims.length Punkt początkowy i wektory komórki elementarnej (float[][] affine): affine[3] – punkt początkowy odp. Indeksom 0 affine[0], affine[1], affine[2] – wektory komórki Opcjonalnie współrzędne (float[] coords) Kolejność punktów jak pikseli w obrazie MxN (N wierszy po M znaków zapisywanych wierszami Reguła obowiązuje we wszystkich obiektach danych

Podklasy Field IrregularField – siatka nieregularna CellSet Współrzędne (float[] coords) - obowiązkowe Zbiory komórek (ArrayList<CellSets> cellSets) CellSet Liczba komórek (int nCells) – generowana automatycznie Liczba wartości danych (int nDataValues) liczba elementów tablic CellData – może być różna od nCells Tablice komórek (CellArray[] cellArrays) – 8 tablic opisujących komórki różnych typów (point, segment, triangle, quad, tetra, pyramid, prism, hex) Tablice komórek brzegowych (CellArray[] boundaryCellArrays) – generowane półautomatycznie tablice ścian komórek trójwymiarowych Wektor obiektów wartości (ArrayList<DataArray> data)

Tablice wartości Abstrakcyjna klasa DataArray Nazwa (String name) Jednostka fizyczna (String unit) – używana w opisie osi, legendy barw etc. Typ danych (int type) – jedna ze stałych DataArray.FIELD_DATA_BYTE … _DOUBLE Długość wektora (int veclen) – rozmiar pojedynczego elementu danych – domyślnie 1 (dane skalarne) Minimum danych (float minv) używane do ustalenia zakresu suwaków, mapy kolorów etc., zwykle ustawiane na rzeczywiste minimum.; dla danych wektorowych ustawiane na 0 Maksimum danych (float maxv) – jak wyżej Liczba danych (int nData) Podklasy <Type>DataArray Tablica danych (<type>[] data)

Field API Klonowanie: Standardowe akcesory do pól (nie ma setNNodes) cloneBase() – tylko wymiary, geometria i maska – przez referencje clone() – jw. + DataArrays cloneDeep() – jak clone, ale poszczególne pola są klonowane Standardowe akcesory do pól (nie ma setNNodes) Akcesory do tablic danych: getData() setData(ArrayList<DataArray> data) clearData() getData(String s) getData(int i) addData(DataArray dataArray)

RegularField API Konstruktory: Klonowanie: RegularField(int[] dims) RegularField(int[] dims, float[][] pts) Klonowanie: cloneBase() – tylko wymiary, geometria i maska – przez referencje clone() – jw. + DataArrays CloneDeep() – jak clone, ale poszczególne pola są klonowane Standardowe akcesory do pól (nie ma setDims) Dodatkowo: getInvAffine() getCoordsFromAffine() - niezalecane

Dziękuję za uwagę! visnow@icm.edu.pl