Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

VisNow – struktury danych Krzysztof S. Nowiński

Podobne prezentacje


Prezentacja na temat: "VisNow – struktury danych Krzysztof S. Nowiński"— Zapis prezentacji:

1 VisNow – struktury danych Krzysztof S. Nowiński

2 Dane 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 2

3 Dane – geometria i struktura Geometria: –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)

4 Dane - Struktura Logika powiązań – 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 lub 3-wymiarowa Struktura nieregularna – powiązania opisywane explicite

5 Struktura 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

6 Siatka - struktura+geometria Siatka regularna równoległościenna –Struktura tablicy 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

7 Siatka - struktura+geometria Siatka regularna ze współrzędnymi –Struktura tablicy 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

8 Struktura Siatka nieregularna 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)

9 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

10 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, [] 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

11 Klasy danych i ich API 11 Field – klasa abstrakcyjna –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 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

12 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 12

13 Podklasy Field IrregularField – siatka nieregularna –Współrzędne(float[] coords) - obowiązkowe –Zbiory komórek (ArrayList 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 data) 13

14 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 DataArray –Tablica danych( [] data) 14

15 Field API 15 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 setNNodes) Akcesory do tablic danych: getData() setData(ArrayList data) clearData() getData(String s) getData(int i) addData(DataArray dataArray)

16 RegularField API 16 Konstruktory: 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

17 Dziękuję za uwagę!


Pobierz ppt "VisNow – struktury danych Krzysztof S. Nowiński"

Podobne prezentacje


Reklamy Google