1 / 17

VisNow – struktury danych

VisNow – struktury danych. Krzysztof S. Nowiński visnow@icm.edu.pl. 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

apu
Download Presentation

VisNow – struktury danych

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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

  3. Dane – geometria i struktura • Geometria: • Współrzędnepunktów w przestrzeni n-wymiarowej (n=1,2,3,4,...) • Zadane w sposóbnaturalnylubobliczone ne podstawiestrukturyczywartości • Podaneexplicitelubłatwe do wyliczenia w miarępotrzeby • Struktura • Określalogicznepowiązaniamiędzypunktami • Zazwyczajokreślazakresmożliwejinterpolacji • Zależna od problemu: • Miasta w Polsce – • Punkty (demografia) • Węzły grafu (komunikacja) • Wierzchołki triangulacji (obserwacje meteo)

  4. Dane -Struktura • Logikapowiązań • Przykłady: • Wiązaniawyznaczającestrukturęcząsteczki • Połączenialotnicze • Połączeniatelekomunikacyjne • PołączenialogiczneodsyłaczyWWW • Interpolacja • Jeżeliskończonyzbiórdanych jest wynikiemeksperymentalnegolubnumerycznegopróbkowania continuum • Możemyinterpolowaćwedługregułwyznaczonychprzezstrukturę • Struktura regularna – tablica 1- 2- lub 3-wymiarowa • Struktura nieregularna – powiązania opisywane explicite

  5. Struktura • Opisformalny - komórki • Zerowymiarowa • punkt • Jednowymiarowa • odcinek • Dwuwymiarowe • trójkąt, czworokąt • Trójwymiarowe • czworościan, piramida, pryzmat (graniastosłuptrójkątny), sześciościan • Zadanelistąwierzchołków 0 1 2 3 4 7 6 5

  6. Siatka - struktura+geometria • Siatkaregularnarównoległościenna • Strukturatablicy 1- 2- lub 3-wymiarowej (komórkisąodpowiednioodcinkami, czworokątamilubsześciościanami) • Opisstruktury: • {intndim; int dims[ndim]} • Geometria: siatkazłożona z odcinków, równoległoboków lub równoległościanów • Opisgeometrii: • {intnspace; float affine[4][nspace]} • affine[3] – początek układu • affine[0], affine[1],… - wektory krawędzi komórki • Współrzędneilistakomórekniemusząbyćpamiętane

  7. Siatka - struktura+geometria • Siatkaregularnaze współrzędnymi • Strukturatablicy 1- 2- lub 3-wymiarowej (komórkisąodpowiednioodcinkami, czworokątamilubsześciościanami) • Opisstruktury: • {intndim; int dims[ndim]} • Geometria: punktyumieszczonedowolnie w przestrzeni • Opisgeometrii: • {intnspace; float coords[N * nspace]} • (nspace≥ndims, N – liczbapunktów (iloczynwymiarówsiatki) • Listakomórekniemusibyćpamiętana

  8. Struktura • Siatkanieregularna • 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][] • Listykomórekmusząbyćpamiętane • Geometria: punktyumieszczonedowolnie w przestrzeni • Opisgeometrii: • {intnspace; float coords[N * nspace]} • (nspace≥ndims, N – liczbapunktów (iloczynwymiarówsiatki) 0 1 2 3 4 7 6 5

  9. Pole:siatka + wartości • Wartości są przechowywane w strukturach (klasach) pochodnych odDataArray • DataArray: • name – nazwa używana przy wyborze komponenty • type – typ danych w tablicy - od DataArray.BOOLEAN do DataArray.DOUBLEi 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 booleanwskazują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 falsedla punktów wewnątrz lądu. • Wszystkie tablice danych, współrzędne i maska mogą zależeć od czasu: • Timestep(krok czasowy) to para {floattime, <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

  11. Klasy danych i ich API • Field – klasa abstrakcyjna • Nazwa (String name) • Liczba punktów (intnNodes) • Wymiar przestrzeni (intnSpace) – 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

  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

  13. Podklasy Field • IrregularField– siatka nieregularna • Współrzędne (float[] coords) - obowiązkowe • Zbiory komórek (ArrayList<CellSets> cellSets) • CellSet • Liczba komórek (intnCells) – generowana automatycznie • Liczba wartości danych (intnDataValues) 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)

  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 (intveclen) – rozmiar pojedynczego elementu danych – domyślnie 1 (dane skalarne) • Minimumdanych (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 (intnData) • Podklasy <Type>DataArray • Tablica danych (<type>[] data)

  15. Field API 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<DataArray> data) clearData() getData(String s) getData(int i) addData(DataArraydataArray)

  16. RegularField API 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ę! • visnow@icm.edu.pl

More Related