ParaView

ParaView
Deweloperzy

Sandia National Laboratories , Kitware Inc , Los Alamos National Laboratory
Wersja stabilna
5.11 / 15 listopada 2022 ; 3 miesiące temu ( 2022-11-15 )
Wersja podglądu
5.11.0-RC2 / 17 listopada 2022 r . ; 3 miesiące temu ( 2022-11-17 )
Magazyn Repozytorium Paraview
Napisane w C , C++ , Fortran , Python
Silnik
  • Zestaw narzędzi do wizualizacji
Edit this at Wikidata
System operacyjny Unix / Linux , macOS , Microsoft Windows
Typ Wizualizacja naukowa , Wizualizacja interaktywna
Licencja 3-klauzulowe BSD
Strona internetowa www.paraview.org

ParaView to wieloplatformowa aplikacja typu open source do interaktywnej , naukowej wizualizacji . Ma klient-serwer , która ułatwia zdalną wizualizację zbiorów danych i generuje modele poziomu szczegółowości (LOD) w celu utrzymania interaktywnych częstotliwości odświeżania dużych zbiorów danych. Jest to aplikacja zbudowana na bazie Visualization Toolkit (VTK) . ParaView to aplikacja przeznaczona do równoległości danych w pamięci współdzielonej lub multikomputery i klastry z pamięcią rozproszoną. Może być również uruchamiany jako aplikacja na jednym komputerze.

Streszczenie

ParaView to wieloplatformowa aplikacja do analizy i wizualizacji danych typu open source . ParaView jest znany i używany w wielu różnych społecznościach do analizy i wizualizacji zbiorów danych naukowych. Może służyć do budowania wizualizacji do analizy danych przy użyciu technik jakościowych i ilościowych. Eksploracja danych może odbywać się interaktywnie w 3D lub programowo przy użyciu możliwości przetwarzania wsadowego ParaView.

ParaView został opracowany do analizowania bardzo dużych zbiorów danych przy użyciu rozproszonych zasobów obliczeniowych pamięci. Można go uruchomić na superkomputerach w celu analizy zbiorów danych o teraskali , a także na laptopach w celu uzyskania mniejszych danych.

ParaView to platforma aplikacji, a także aplikacja pod klucz. Baza kodu ParaView została zaprojektowana w taki sposób, że wszystkie jej komponenty mogą być ponownie wykorzystane do szybkiego tworzenia aplikacji wertykalnych. Ta elastyczność umożliwia programistom ParaView szybkie tworzenie aplikacji, które mają określoną funkcjonalność dla określonej dziedziny problemu.

ParaView działa w systemach równoległych i jednoprocesorowych z pamięcią rozproszoną i współdzieloną. Został pomyślnie przetestowany na systemach Windows , macOS , Linux , IBM Blue Gene, Cray Xt3 i różnych stacjach roboczych Unix , klastrach i superkomputerach. Pod maską ParaView używa Visualization Toolkit (VTK) jako silnika przetwarzania i renderowania danych oraz ma interfejs użytkownika napisany przy użyciu Qt.

Cele zespołu ParaView obejmują:

  • Opracuj wieloplatformową aplikację do wizualizacji typu open source.
  • Obsługuj rozproszone modele obliczeniowe do przetwarzania dużych zestawów danych.
  • Stwórz otwarty, elastyczny i intuicyjny interfejs użytkownika.
  • Opracuj rozszerzalną architekturę opartą na otwartych standardach.

Historia

Projekt ParaView rozpoczął się w 2000 roku jako wspólny wysiłek pomiędzy Kitware, Inc. i Los Alamos National Laboratory dzięki finansowaniu z programu ASCI Views Departamentu Energii Stanów Zjednoczonych. Pierwsze publiczne wydanie zostało ogłoszone w październiku 2002 roku.

Niezależnie od ParaView, Kitware opracował internetowy system wizualizacji w grudniu 2001 roku. Projekt ten był finansowany przez SBIR fazy I i II z Laboratorium Badawczego Armii Stanów Zjednoczonych i ostatecznie stał się wersją ParaView Enterprise Edition. PVEE znacząco przyczynił się do rozwoju architektury klient/serwer firmy ParaView.

We wrześniu 2005 roku Kitware, Sandia National Labs i CSimSoft (obecnie Coreform LLC) rozpoczęły prace nad ParaView 3.0. ParaView 3.0 został wydany w maju 2007. W czerwcu 2013 został wydany ParaView 4.0, ta wersja była oparta na VTK 6.0. Wersja 5.0 została wydana w styczniu 2016 roku i zawierała nowy back-end renderujący.

Cechy

Możliwości wizualizacji

  • Obsługuje ustrukturyzowane (jednorodne siatki prostoliniowe, niejednorodne prostoliniowe i krzywoliniowe), nieustrukturyzowane, wielokątne, obrazowe, wieloblokowe i AMR.
  • Wszystkie operacje przetwarzania (filtry) tworzą zbiory danych. Pozwala to użytkownikowi na dalsze przetwarzanie wyniku każdej operacji lub wyników w postaci pliku danych. Na przykład użytkownik może wyodrębnić powierzchnię cięcia, zmniejszyć liczbę punktów na tej powierzchni poprzez maskowanie i zastosować glify (tj. strzałki wektorowe) do wyniku.
  • Pola wektorów można sprawdzać, stosując glify (strzałki, stożki, linie, kule i różne glify 2D) do punktów w zbiorze danych. Glify mogą być skalowane za pomocą skalarów, składowej wektora lub wielkości wektora i mogą być zorientowane za pomocą pola wektorowego.
  • Kontury i izopowierzchnie można wyodrębnić ze wszystkich typów danych za pomocą skalarów lub komponentów wektorowych. Wyniki można pokolorować dowolną inną zmienną lub poddać dalszej obróbce. Jeśli to możliwe, ustrukturyzowane kontury/izopowierzchnie danych są wyodrębniane za pomocą szybkich i wydajnych algorytmów, które wykorzystują wydajny układ danych.
  • Podregion zbioru danych można wyodrębnić, wycinając lub przycinając dowolną płaszczyzną (wszystkie typy danych), określając kryteria progowe do wykluczenia komórek (wszystkie typy danych) i/lub określając VOI (objętość zainteresowania - ustrukturyzowane typy danych) tylko).
  • Strumienie można generować za pomocą integratorów o stałym kroku lub adaptacyjnych. Wyniki mogą być wyświetlane jako punkty, linie, rury, wstęgi itp. i mogą być przetwarzane przez wiele filtrów. Ścieżki cząstek można wyodrębnić z czasowych zbiorów danych.
  • Punkty w zbiorze danych mogą być wypaczane (przemieszczane) za pomocą skalarów (biorąc pod uwagę wektor przemieszczenia zdefiniowany przez użytkownika) lub wektorów (niedostępne dla nieliniowych siatek prostoliniowych).
  • Za pomocą kalkulatora tablic nowe zmienne mogą być obliczane przy użyciu istniejących tablic pól punktowych lub komórkowych. Obsługiwanych jest wiele operacji skalarnych i wektorowych.
  • Zaawansowane przetwarzanie danych można wykonać za pomocą Python Programmable filter z VTK, NumPy, SciPy i innymi modułami Pythona.
  • Dane mogą być sondowane w punkcie lub wzdłuż linii. Wyniki są wyświetlane w formie graficznej lub tekstowej i mogą być eksportowane do dalszej analizy. Dane można również wyodrębniać w czasie (w tym informacje statystyczne, takie jak minimum, maksimum i odchylenie standardowe).
  • Dane mogą być sprawdzane ilościowo za pomocą potężnego mechanizmu selekcji i widoku arkusza kalkulacyjnego: Mechanizm selekcji pozwala użytkownikowi skupić się na ważnym podzbiorze zbioru danych za pomocą interaktywnej selekcji poprzez wskazanie punktu lub zaznaczenie prostokątnego obszaru, a także ilościowych mechanizmów selekcji.
  • Widok arkusza kalkulacyjnego umożliwia użytkownikowi sprawdzenie całego zestawu danych lub wybranego podzbioru jako liczb nieprzetworzonych.
  • ParaView domyślnie zapewnia wiele innych źródeł danych i filtrów. Dowolne VTK można dodać, podając prosty opis XML .

Wejście/wyjście i format pliku

  • Obsługuje różne formaty plików, w tym: VTK (nowy i starszy, wszystkie typy, w tym równoległy, ASCII i binarny, można odczytywać i zapisywać).
  • EnSight 6 i EnSight Gold (wszystkie typy, w tym równoległe, ASCII i binarne; obsługiwanych jest wiele części — każda część jest ładowana oddzielnie i może być przetwarzana indywidualnie) (tylko do odczytu).
  • CGNS (obsługa wielu bloków, rozwiązań niestabilnych i deformacji siatki, w oparciu o format niskiego poziomu HDF5 ) (tylko do odczytu).
  • Różne wielokątne formaty plików, w tym STL i BYU (domyślnie tylko do odczytu, inne programy piszące VTK można dodać, pisząc opis XML).
  • Obsługiwanych jest wiele innych formatów plików.
  • Dowolne źródło lub filtr VTK można dodać, podając prosty opis XML (VTK zapewnia wiele czytników).
  • Ponieważ ParaView jest open source, użytkownik może zapewnić własnych czytelników i pisarzy.

Interakcja z użytkownikiem

  • Intuicyjny i elastyczny interfejs oparty na frameworku aplikacji Qt.
  • Umożliwia zmianę parametrów wielu filtrów poprzez bezpośrednią interakcję z widokiem 3D za pomocą widżetów (manipulatorów) 3D. Na przykład użytkownik może manipulować linią początkową filtra usprawniającego, klikając punkt kontrolny i przeciągając linię do nowej lokalizacji.
  • Kompaktowy projekt interfejsu użytkownika. Domyślnie wszystkie ważne narzędzia znajdują się w oknie głównym. Eliminuje to potrzebę posiadania dużej liczby okien, które często trudno jest zlokalizować na zagraconym pulpicie. Możliwe jest również odcięcie inspektorów z głównego okna.
  • Utrzymuje interaktywną liczbę klatek na sekundę nawet podczas pracy z dużymi danymi dzięki wykorzystaniu modeli poziomu szczegółowości (LOD). Użytkownik określa próg (ilość punktów), po przekroczeniu którego w trakcie interakcji wyświetlana jest pomniejszona wersja modelu (można również dostosować rozmiar modelu). Po zakończeniu interakcji duży model jest renderowany.

Duże zbiory danych i przetwarzanie rozproszone

  • Działa równolegle w rozproszonych i współdzielonych systemach pamięci wykorzystujących MPI. Należą do nich klastry stacji roboczych, systemy wizualizacji, duże serwery, superkomputery itp.
  • Interfejs użytkownika jest uruchamiany na osobnym komputerze w trybie klient/serwer.
  • ParaView wykorzystuje równoległy model danych, w którym dane są dzielone na części, które mają być przetwarzane przez różne procesy. Większość algorytmów wizualizacji działa bez żadnych zmian podczas pracy równoległej. ParaView obsługuje również poziomy duchów używane do uzyskiwania niezmiennych wyników fragmentów. Poziomy duchów to punkty/komórki wspólne dla procesów i są używane przez algorytmy, które wymagają informacji o sąsiedztwie.
  • Obsługuje zarówno renderowanie rozproszone (gdzie wyniki są renderowane w każdym węźle, a później łączone przy użyciu bufora głębi), renderowanie lokalne (gdzie wynikowe wielokąty są gromadzone w jednym węźle i renderowane lokalnie) oraz kombinację obu (na przykład szczegółowe modele mogą być renderowane lokalnie, podczas gdy pełny model jest renderowany w sposób rozproszony). Zapewnia to skalowalne renderowanie dużych danych bez utraty wydajności podczas pracy z mniejszymi danymi.
  • Rozproszone renderowanie i wyświetlanie kafelków odbywa się przy użyciu biblioteki Sandia Ice-T.

Skrypty i rozszerzalność

  • ParaView jest w pełni skryptowalny przy użyciu prostego, ale potężnego języka Python. Silnik danych ParaView, zwany menedżerem serwera, jest w pełni dostępny przez interfejs Pythona. Wszystkie zmiany wprowadzone w silniku za pomocą Pythona są automatycznie odzwierciedlane w interfejsie użytkownika.
  • ParaView może być uruchamiany jako aplikacja wsadowa przy użyciu interfejsu Pythona. Został pomyślnie uruchomiony na superkomputerach, w tym IBM Blue Gene i Cray Xt3, w trybie wsadowym.
  • Przetwarzanie danych rozproszonych można wykonać w języku Python przy użyciu programowalnego filtru języka Python. Ten filtr działa bezproblemowo z NumPy i SciPy.
  • Dodatkowe moduły można dodać, pisząc opis XML interfejsu lub pisząc klasy C++ . Interfejs XML umożliwia użytkownikom/programistom dodawanie własnych filtrów VTK do ParaView bez pisania specjalnego kodu i/lub ponownej kompilacji.

ParaView w użyciu

Zobacz też

Linki zewnętrzne