Skip to content

Commit

Permalink
updates to paper
Browse files Browse the repository at this point in the history
  • Loading branch information
ERDC\RDITLSCW committed May 30, 2024
1 parent a104d45 commit a3972ba
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 37 deletions.
Binary file added papers/theia/assets/colormap.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added papers/theia/assets/save_and_export.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
82 changes: 45 additions & 37 deletions papers/theia/main.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,57 +56,65 @@ sedan provides both the best price and the best potential range.
THEIA’s primary function is to provide a means of visualizing intricate tradespace
data, thereby facilitating a more thorough understanding of the various design
configurations and their corresponding performance metrics. It's a robust
tool built upon several Python libraries, including [Panel](https://panel.holoviz.org/),
tool built upon several Python libraries, including [Panel](https://panel.holoviz.org/), [Bokeh](https://bokeh.org/),
[Param](https://param.holoviz.org/), [HoloViews](https://holoviews.org/),
[Bokeh](https://bokeh.org/) and [Plotly](https://plotly.com/). The integration
and [Plotly](https://plotly.com/). The integration
of these libraries equips THEIA with a diverse array of widgets and plots, enabling
users to visualize their data in various ways simultaneously. Panel, Param, and
HoloViews are all a part of the HoloViz suite of Python packages, which allows for
excellent synchronization between them.

:::{figure} ./assets/layout.png
:label: fig:layout
View of the Graphical User Interface (GUI) leveraged by users for interracting with plots.
:::
#### THEIA - Panel
Panel @panel is a library for easily building tools, dashboards, and complex applications,
all within Python. It’s role in THEIA is to define the layout of the application,
as seen above.
#### Panel
Panel @panel is an open-source library for easily building tools, dashboards, and complex applications,
all within Python. Its role in THEIA is to define the layout of the application, in an easy, extensible way.
This is done by utilizing Panel's built-in visual components. Components are the building blocks of apps built
on Panel. The primary components utilized by THEIA are Widgets, Panes, Layouts, and Templates.
- Widgets are generally small components like sliders, text fields, or checkboxes.
- Panes are data wrappers that enable rendering of that data in multiple ways.
- Layouts allow for the coupling of various components like widgets or panes so that they can be rendered together using the Bokeh library.
- Templates are components that allow the rendering of Panel objects in an HTML document.

:::{figure} ./assets/user_inputs.png
:label: fig:user_inputs
View of THEIA's plot type options.
:::
#### THEIA - Param
Param @param is a library built for handling user-modifiable parameters, arguments, and attributes
#### Param
Param @param is an open-source library built for handling user-modifiable parameters, arguments, and attributes
that control your code. These capabilities are used in THEIA to monitor for user
inputs and changes. This library is responsible for handling user inputs such as
the plot type and color map options shown above.
inputs and changes while maintaining a far simpler codebase. This is done by leveraging Parameters
in special Parameterized classes, which provide features like type-checking and default values. THEIA leverages these
classes to define acceptable input types and values as well as handle errors without large amounts of boilerplate code.

:::{figure} ./assets/plots.png
:label: fig:plots
View of various plots generated by THEIA and rendered in the browser.
:::
#### THEIA - HoloViews/Bokeh
HoloViews @holoviews is a library built for data analysis and visualization with small amounts of code. This library is the backend that provides many of the plots in THEIA. Bokeh @bokeh is a library for creating visualizations in modern web browsers. Both the Panel and HoloViews libraries leverage Bokeh. Panel utilizes Bokeh for rendering the layout, while HoloViews uses Bokeh to render some of the plots.
#### Holoviews
HoloViews @holoviews is an open-source library built for data analysis and visualization with small amounts of code. This library is the
backend that provides many of the plots in THEIA. HoloViews takes a different approach to plotting than many other popular libraries.
Instead of focusing purely on visualization, HoloViews plots are defined in a way that supports analysis in addition to visualization.
This is done by coupling raw data with metadata in a way that allows for immediate visualization rendering as data changes. HoloViews
also leverages some of Bokeh's capabilities when rendering specific plots.

:::{figure} ./assets/plotly.png
:label: fig:plotly
Detailed view of customization options for parallel plots generated by THEIA.
:::
#### THEIA - Plotly Parallel Plot
Plotly @plotly is a high-level API for creating figures. Plotly is utilized by HoloViews
for rendering supplementary plots, such as the parallel plot seen above.
#### Plotly Express
Plotly Express @plotly is a high-level interface to Plotly. It's built to produce easily styleable figures with minimal code.
HoloViews leverages this library within THEIA to render supplementary plots like the parallel plot. Plotly Express is an
optimal choice because it often provides highly interractive plots by default.

### Results
Together, these scientific Python libraries allowed the Rapid Application Development team at ERDC to develop a
robust visualization tool capable of running in the browser without being reliant
on an internet connection. THEIA allows users to tailor the types of plots
displayed, as well as adjust color themes. This is an important feature when
working with tradespace data because it allows the user to choose the theme which
best distinguishes the complex data. THEIA allows users to easily save plots for
future reference, export findings for further analysis, and utilize multiple data
files simultaneously. Another key feature THEIA provides is the ability to import
on an internet connection. THEIA allows user to select from various plot types and color themes.
:::{figure} ./assets/user_inputs.png
:label: fig:user_inputs
View of THEIA's plot type options.
:::
This is a vital feature when working with tradespace data because it allows the
user to choose the theme which best distinguishes the complex data.
:::{figure} ./assets/colormap.png
:label: fig:colormap
View of THEIA's colormap options.
:::
THEIA also allows users to easily save plots for future reference, export findings
for further analysis, and utilize multiple data files simultaneously.
:::{figure} ./assets/save_and_export.png
:label: fig:save_and_export
A view of the 'download configuration' and 'export plot' options.
:::

Another key feature THEIA provides is the ability to import
tabular data. Ultimately, through the utilization of these scientific Python
libraries, the USACE ERDC was able to develop a robust solution to the tradespace
visualization problem.

0 comments on commit a3972ba

Please sign in to comment.