https://www.vistrails.org//api.php?action=feedcontributions&user=Eranders&feedformat=atomVistrailsWiki - User contributions [en]2024-03-19T09:44:53ZUser contributionsMediaWiki 1.36.2https://www.vistrails.org//index.php?title=SCI_Open_House&diff=3626SCI Open House2010-10-22T19:29:32Z<p>Eranders: Moved relevant parts to VGC wiki</p>
<hr />
<div># VisTrails & CrowdLabs Introduction (Nivan, Daniel?)<br />
## Basics<br />
## Diff, Query, Analogy<br />
## CrowdLabs<br />
# Wildfire Demo (Bigyan)<br />
## Workflow<br />
## Cluster<br />
## Mashups<br />
# VisTrails Plugin (Douglas, Jonathas)<br />
## ParaView<br />
## VisIt<br />
## Maya<br />
# DisplayWall (Wendel, Jorge)</div>Erandershttps://www.vistrails.org//index.php?title=SCI_Open_House&diff=3625SCI Open House2010-10-22T19:27:17Z<p>Eranders: Added all demos to this page (it seems like a good place for it) with indexible contents.</p>
<hr />
<div>= VisTrails Demo =<br />
# VisTrails & CrowdLabs Introduction (Nivan, Daniel?)<br />
## Basics<br />
## Diff, Query, Analogy<br />
## CrowdLabs<br />
# Wildfire Demo (Bigyan)<br />
## Workflow<br />
## Cluster<br />
## Mashups<br />
# VisTrails Plugin (Douglas, Jonathas)<br />
## ParaView<br />
## VisIt<br />
## Maya<br />
# DisplayWall (Wendel, Jorge)<br />
<br />
= HyperFlow Demo =<br />
<br />
= PedVis Demo = <br />
<br />
= HPR Demo =<br />
<br />
= Rangescanning Demo =</div>Erandershttps://www.vistrails.org//index.php?title=Development&diff=3617Development2010-10-19T20:20:43Z<p>Eranders: /* Meeting Notes */</p>
<hr />
<div>== Roadmap ==<br />
<br />
<br />
== Weekly Meetings ==<br />
<br />
=== Oct 19, 2010 ===<br />
<br />
* Update on Trac and Roadmap (Emanuele and David)<br />
** Trac is now linked to git repository<br />
** Roadmap on Trac has been cleaned up so we can hide completed milestones<br />
** Tickets are being reassigned/revisited. Many tickets (24) are not associated with a milestone yet https://vistrails.sci.utah.edu/report/3<br />
* Synchronizing VisTrails and ALPS releases<br />
* Web services support (Tommy)<br />
** discuss the interaction between the Web Services package and upgrades<br />
* Subworkflows update (Daniel)<br />
* Testing of new module drawing (Erik)<br />
* Aliases<br />
** Currently, an alias is stored on a parameter. We need aliases to be stored at a higher level so that changing an alias is not a change to a parameter. The one issue is that there is a link between parmaeters and aliases in that an alias can only exist for versions that have the specified parameter. We might also have two versions where the alias points to different parameters. We could just store aliases as a root-level workflow element so that the set of aliases is versioned corrected.<br />
** In the current implementation, the aliases parsed from the parameters are stored in a dictionary in the workflow, so storing aliases as a root-level workflows element might be the way to go --[[User:Emanuele|Emanuele]] 19:50, 15 October 2010 (MDT)<br />
* Error logging<br />
** Suggest that we have a single point for all error messages to pass through that is linked to both core.debug and GUI elements that display error messages. This should improve our error handling significantly<br />
* PyQt dependencies in core<br />
** Can we get rid of PyQt dependencies in core (and db)? This would probably require moving the signals/slots that we currently use to a similar Python implementation which shouldn't be too difficult. This would also require the specification of configuration widgets not as classes but rather some text that can be used to import the GUI elements only when using the GUI code. However, what would happen with workflows that run in command-line mode but require some graphical output?<br />
* Ports<br />
** One annoying part of the current VisTrails model is that users are not given any visual indication that a port value is already set by a function or vice versa by a connection. In addition, we have no way to specify or enforce cardinality on ports at design time. It seems like we could allow developers to specify when a port should not be connected to more than one value (via a function or a connection), and give some visual feedback when a port has already been specified in one manner.<br />
<br />
== Meeting Notes ==<br />
* Bug regarding userpackages at initial vistrails startup causing startup to fail.<br />
** Still an issue, ticket still open as a 1.6 milestone<br />
* Copy-paste bug<br />
** Shortcut not working on Mac. Focus makes shortcut try to copy pipeline.<br />
** Current fix appends to clipboard as users type - this is not a good fix.<br />
* Synchronizing ALPS and VisTrails releases<br />
** 1.6 scheduled for Dec. 1<br />
* Webservices<br />
** New library being used, but it's very low level.<br />
** Simple types may cause problems with some web-services using complex or XML-based types.<br />
** Need to make sure that this library can handle at least MOST of the web-services out there.<br />
* Sub-workflows<br />
** Daniel's changes seem functional and very slick.<br />
** A little more work on it seems necessary.<br />
** Need some easy GUI mechanism to delete a subworkflow.<br />
** Is the exclamation point in the module draw the best way to handle this? Make a tool-tip to explain it.<br />
* VTK Wrapping<br />
** Changes to VTK Python wrapping is causing headaches - particularly in backwards compatibility.<br />
** Method typing has changed to expect things like "List" or "Vector" - makes things hard on the user when defining these inputs.<br />
** Removing List and Vector types and replacing them with dynamically generated versions from Tuples.<br />
* Aliases - Agenda pushed until after Vis.<br />
* Error Logging - Unify some error handling to improve how exceptions are dealt with. More on this after Vis.<br />
* Refactoring out PyQt dependencies from Core/Db/etc - Need to move all the signals/slots into GUI elements. Questions come when a workflow uses GUI elements as inputs. - More after vis.<br />
* Ports - We need a way of showing how a port is specified - function vs. input port. Cardinality must be established in these cases. Ordering on multiple connections should be handled in some way - whether it's just a documentation issue or a more fundamental one.<br />
** Should we have a tutorial mode that bring up tooltips when someone does something new as if it were a live tutorial.<br />
<br />
<br />
=== Oct 12, 2010 ===<br />
<br />
* Trac and Roadmap (Emanuele): Emanuele suggested we should create a development roadmap and make it a permanent item on the agenda. The idea is to go through the Trac tickets and use them to build the roadmap that would be made ''public''.<br />
** go through trac and sort by priority<br />
** add other suggestions to roadmap as well<br />
** admins can add milestones via the admin tab<br />
** ''David will assign tasks on list; those assigned need to follow up and check and fix them''<br />
<br />
* Update on [[PythonSource error reporting and logging]] (Tommy)<br />
** ''Need to make sure that all messages are printed through debug.X, so that the debug level (verboseness in preferences) is correctly used''<br />
** Can cut/copy/paste now<br />
** Can we prevent the delete from happening?<br />
** Phillip noted the spyder project has an interactive python console: http://packages.python.org/spyder/<br />
** Can press enter to get to the end<br />
** Need to check if this works or if we need to change<br />
** Now have ability to see stack trace from the GUI (triangle menu)<br />
** ''Suggest using a dialog to display trace when this item is selected instead of printing to console''<br />
** Also saving stack trace to the execution log<br />
** Also printing debug information to vistrails log<br />
** ''Add trac item to fix prints to use debug''<br />
** ''Try to fix core.debug to have gui.debug to eliminate Qt dependency''<br />
<br />
* Update on subworkflow (Daniel)<br />
** Notification when subworkflow is outdated triggered<br />
** new_abstraction signal from registry in addition to new_module signal so that we can check if we need subworkflows to update<br />
** How to display the possible upgrades (can be upgraded, can be upgraded but may break, etc.)<br />
<br />
* New utility added by Carlos (currently at scripts/module_appearance) to draw fringes visually, which generates output that can be pasted directly into the add_module call. <br />
** ''Erik will test this on Mac and Windows.''<br />
<br />
* Preparing a "Get Started" tutorial for SIGMOD repeatability <br />
** Do we have instructions on how to use the latex package without crowdlabs?<br />
*** links to actual workflows in latex<br />
*** have README and example for latex in the source<br />
** Metadata associated with VisTrails: should we have the ability to add vistrail-level metadata? e.g., who created the vistrail, its purpose, etc.<br />
*** have pointers to paper to workflow and vistrails<br />
*** add pointers to papers<br />
*** allow access to add/edit annotations at the vistrail level<br />
*** ''add GUI element to allow people to edit/add annotations''<br />
<br />
* Maintaining VTK package<br />
** have four classes that don't wrap, have error even in python level<br />
** works well with VisTrails otherwise<br />
** haven't checked the new changes from the wrapping<br />
** ''Wendel will check on the new version''<br />
<br />
* [[Web services package]] (Tommy)<br />
<br />
=== Oct 5, 2010 ===<br />
<br />
* Welcome Tommy!<br />
<br />
* Update on subworkflow (Daniel)<br />
<br />
* Issues raised by Matthias:<br />
<br />
- need to automatically upgrade subworkflows. Currently it is necessary to manually upgrade a subworkflow whenever the version of one of the modules inside them changes.<br />
<br />
- explorations do not detect an MplFigureCell embedded in a subworkflow.</div>Erandershttps://www.vistrails.org//index.php?title=Development&diff=3616Development2010-10-19T19:41:08Z<p>Eranders: /* Meeting Notes */</p>
<hr />
<div>== Roadmap ==<br />
<br />
<br />
== Weekly Meetings ==<br />
<br />
=== Oct 19, 2010 ===<br />
<br />
* Update on Trac and Roadmap (Emanuele and David)<br />
** Trac is now linked to git repository<br />
** Roadmap on Trac has been cleaned up so we can hide completed milestones<br />
** Tickets are being reassigned/revisited. Many tickets (24) are not associated with a milestone yet https://vistrails.sci.utah.edu/report/3<br />
* Synchronizing VisTrails and ALPS releases<br />
* Web services support (Tommy)<br />
** discuss the interaction between the Web Services package and upgrades<br />
* Subworkflows update (Daniel)<br />
* Testing of new module drawing (Erik)<br />
* Aliases<br />
** Currently, an alias is stored on a parameter. We need aliases to be stored at a higher level so that changing an alias is not a change to a parameter. The one issue is that there is a link between parmaeters and aliases in that an alias can only exist for versions that have the specified parameter. We might also have two versions where the alias points to different parameters. We could just store aliases as a root-level workflow element so that the set of aliases is versioned corrected.<br />
** In the current implementation, the aliases parsed from the parameters are stored in a dictionary in the workflow, so storing aliases as a root-level workflows element might be the way to go --[[User:Emanuele|Emanuele]] 19:50, 15 October 2010 (MDT)<br />
* Error logging<br />
** Suggest that we have a single point for all error messages to pass through that is linked to both core.debug and GUI elements that display error messages. This should improve our error handling significantly<br />
* PyQt dependencies in core<br />
** Can we get rid of PyQt dependencies in core (and db)? This would probably require moving the signals/slots that we currently use to a similar Python implementation which shouldn't be too difficult. This would also require the specification of configuration widgets not as classes but rather some text that can be used to import the GUI elements only when using the GUI code. However, what would happen with workflows that run in command-line mode but require some graphical output?<br />
* Ports<br />
** One annoying part of the current VisTrails model is that users are not given any visual indication that a port value is already set by a function or vice versa by a connection. In addition, we have no way to specify or enforce cardinality on ports at design time. It seems like we could allow developers to specify when a port should not be connected to more than one value (via a function or a connection), and give some visual feedback when a port has already been specified in one manner.<br />
<br />
== Meeting Notes ==<br />
* Bug regarding userpackages at initial vistrails startup causing startup to fail.<br />
** Still an issue, ticket still open as a 1.6 milestone<br />
* Copy-paste bug<br />
** Shortcut not working on Mac. Focus makes shortcut try to copy pipeline.<br />
** Current fix appends to clipboard as users type - this is not a good fix.<br />
* Synchronizing ALPS and VisTrails releases<br />
** 1.6 scheduled for Dec. 1<br />
* Webservices<br />
** New library being used, but it's very low level.<br />
** Simple types may cause problems with some web-services using complex or XML-based types.<br />
** Need to make sure that this library can handle at least MOST of the web-services out there.<br />
<br />
<br />
=== Oct 12, 2010 ===<br />
<br />
* Trac and Roadmap (Emanuele): Emanuele suggested we should create a development roadmap and make it a permanent item on the agenda. The idea is to go through the Trac tickets and use them to build the roadmap that would be made ''public''.<br />
** go through trac and sort by priority<br />
** add other suggestions to roadmap as well<br />
** admins can add milestones via the admin tab<br />
** ''David will assign tasks on list; those assigned need to follow up and check and fix them''<br />
<br />
* Update on [[PythonSource error reporting and logging]] (Tommy)<br />
** ''Need to make sure that all messages are printed through debug.X, so that the debug level (verboseness in preferences) is correctly used''<br />
** Can cut/copy/paste now<br />
** Can we prevent the delete from happening?<br />
** Phillip noted the spyder project has an interactive python console: http://packages.python.org/spyder/<br />
** Can press enter to get to the end<br />
** Need to check if this works or if we need to change<br />
** Now have ability to see stack trace from the GUI (triangle menu)<br />
** ''Suggest using a dialog to display trace when this item is selected instead of printing to console''<br />
** Also saving stack trace to the execution log<br />
** Also printing debug information to vistrails log<br />
** ''Add trac item to fix prints to use debug''<br />
** ''Try to fix core.debug to have gui.debug to eliminate Qt dependency''<br />
<br />
* Update on subworkflow (Daniel)<br />
** Notification when subworkflow is outdated triggered<br />
** new_abstraction signal from registry in addition to new_module signal so that we can check if we need subworkflows to update<br />
** How to display the possible upgrades (can be upgraded, can be upgraded but may break, etc.)<br />
<br />
* New utility added by Carlos (currently at scripts/module_appearance) to draw fringes visually, which generates output that can be pasted directly into the add_module call. <br />
** ''Erik will test this on Mac and Windows.''<br />
<br />
* Preparing a "Get Started" tutorial for SIGMOD repeatability <br />
** Do we have instructions on how to use the latex package without crowdlabs?<br />
*** links to actual workflows in latex<br />
*** have README and example for latex in the source<br />
** Metadata associated with VisTrails: should we have the ability to add vistrail-level metadata? e.g., who created the vistrail, its purpose, etc.<br />
*** have pointers to paper to workflow and vistrails<br />
*** add pointers to papers<br />
*** allow access to add/edit annotations at the vistrail level<br />
*** ''add GUI element to allow people to edit/add annotations''<br />
<br />
* Maintaining VTK package<br />
** have four classes that don't wrap, have error even in python level<br />
** works well with VisTrails otherwise<br />
** haven't checked the new changes from the wrapping<br />
** ''Wendel will check on the new version''<br />
<br />
* [[Web services package]] (Tommy)<br />
<br />
=== Oct 5, 2010 ===<br />
<br />
* Welcome Tommy!<br />
<br />
* Update on subworkflow (Daniel)<br />
<br />
* Issues raised by Matthias:<br />
<br />
- need to automatically upgrade subworkflows. Currently it is necessary to manually upgrade a subworkflow whenever the version of one of the modules inside them changes.<br />
<br />
- explorations do not detect an MplFigureCell embedded in a subworkflow.</div>Erandershttps://www.vistrails.org//index.php?title=Development&diff=3615Development2010-10-19T19:18:41Z<p>Eranders: /* Oct 19, 2010 */</p>
<hr />
<div>== Roadmap ==<br />
<br />
<br />
== Weekly Meetings ==<br />
<br />
=== Oct 19, 2010 ===<br />
<br />
* Update on Trac and Roadmap (Emanuele and David)<br />
** Trac is now linked to git repository<br />
** Roadmap on Trac has been cleaned up so we can hide completed milestones<br />
** Tickets are being reassigned/revisited. Many tickets (24) are not associated with a milestone yet https://vistrails.sci.utah.edu/report/3<br />
* Synchronizing VisTrails and ALPS releases<br />
* Web services support (Tommy)<br />
** discuss the interaction between the Web Services package and upgrades<br />
* Subworkflows update (Daniel)<br />
* Testing of new module drawing (Erik)<br />
* Aliases<br />
** Currently, an alias is stored on a parameter. We need aliases to be stored at a higher level so that changing an alias is not a change to a parameter. The one issue is that there is a link between parmaeters and aliases in that an alias can only exist for versions that have the specified parameter. We might also have two versions where the alias points to different parameters. We could just store aliases as a root-level workflow element so that the set of aliases is versioned corrected.<br />
** In the current implementation, the aliases parsed from the parameters are stored in a dictionary in the workflow, so storing aliases as a root-level workflows element might be the way to go --[[User:Emanuele|Emanuele]] 19:50, 15 October 2010 (MDT)<br />
* Error logging<br />
** Suggest that we have a single point for all error messages to pass through that is linked to both core.debug and GUI elements that display error messages. This should improve our error handling significantly<br />
* PyQt dependencies in core<br />
** Can we get rid of PyQt dependencies in core (and db)? This would probably require moving the signals/slots that we currently use to a similar Python implementation which shouldn't be too difficult. This would also require the specification of configuration widgets not as classes but rather some text that can be used to import the GUI elements only when using the GUI code. However, what would happen with workflows that run in command-line mode but require some graphical output?<br />
* Ports<br />
** One annoying part of the current VisTrails model is that users are not given any visual indication that a port value is already set by a function or vice versa by a connection. In addition, we have no way to specify or enforce cardinality on ports at design time. It seems like we could allow developers to specify when a port should not be connected to more than one value (via a function or a connection), and give some visual feedback when a port has already been specified in one manner.<br />
<br />
== Meeting Notes ==<br />
* Bug regarding userpackages at initial vistrails startup causing startup to fail.<br />
** Still an issue, ticket still open as a 1.6 milestone<br />
* Copy-paste bug<br />
** Shortcut not working on Mac. Focus makes shortcut try to copy pipeline.<br />
** Current fix appends to clipboard as users type - this is not a good fix.<br />
<br />
=== Oct 12, 2010 ===<br />
<br />
* Trac and Roadmap (Emanuele): Emanuele suggested we should create a development roadmap and make it a permanent item on the agenda. The idea is to go through the Trac tickets and use them to build the roadmap that would be made ''public''.<br />
** go through trac and sort by priority<br />
** add other suggestions to roadmap as well<br />
** admins can add milestones via the admin tab<br />
** ''David will assign tasks on list; those assigned need to follow up and check and fix them''<br />
<br />
* Update on [[PythonSource error reporting and logging]] (Tommy)<br />
** ''Need to make sure that all messages are printed through debug.X, so that the debug level (verboseness in preferences) is correctly used''<br />
** Can cut/copy/paste now<br />
** Can we prevent the delete from happening?<br />
** Phillip noted the spyder project has an interactive python console: http://packages.python.org/spyder/<br />
** Can press enter to get to the end<br />
** Need to check if this works or if we need to change<br />
** Now have ability to see stack trace from the GUI (triangle menu)<br />
** ''Suggest using a dialog to display trace when this item is selected instead of printing to console''<br />
** Also saving stack trace to the execution log<br />
** Also printing debug information to vistrails log<br />
** ''Add trac item to fix prints to use debug''<br />
** ''Try to fix core.debug to have gui.debug to eliminate Qt dependency''<br />
<br />
* Update on subworkflow (Daniel)<br />
** Notification when subworkflow is outdated triggered<br />
** new_abstraction signal from registry in addition to new_module signal so that we can check if we need subworkflows to update<br />
** How to display the possible upgrades (can be upgraded, can be upgraded but may break, etc.)<br />
<br />
* New utility added by Carlos (currently at scripts/module_appearance) to draw fringes visually, which generates output that can be pasted directly into the add_module call. <br />
** ''Erik will test this on Mac and Windows.''<br />
<br />
* Preparing a "Get Started" tutorial for SIGMOD repeatability <br />
** Do we have instructions on how to use the latex package without crowdlabs?<br />
*** links to actual workflows in latex<br />
*** have README and example for latex in the source<br />
** Metadata associated with VisTrails: should we have the ability to add vistrail-level metadata? e.g., who created the vistrail, its purpose, etc.<br />
*** have pointers to paper to workflow and vistrails<br />
*** add pointers to papers<br />
*** allow access to add/edit annotations at the vistrail level<br />
*** ''add GUI element to allow people to edit/add annotations''<br />
<br />
* Maintaining VTK package<br />
** have four classes that don't wrap, have error even in python level<br />
** works well with VisTrails otherwise<br />
** haven't checked the new changes from the wrapping<br />
** ''Wendel will check on the new version''<br />
<br />
* [[Web services package]] (Tommy)<br />
<br />
=== Oct 5, 2010 ===<br />
<br />
* Welcome Tommy!<br />
<br />
* Update on subworkflow (Daniel)<br />
<br />
* Issues raised by Matthias:<br />
<br />
- need to automatically upgrade subworkflows. Currently it is necessary to manually upgrade a subworkflow whenever the version of one of the modules inside them changes.<br />
<br />
- explorations do not detect an MplFigureCell embedded in a subworkflow.</div>Erandershttps://www.vistrails.org//index.php?title=Wrffire&diff=2175Wrffire2009-10-31T00:59:33Z<p>Eranders: /* Multiple Visualization Windows */</p>
<hr />
<div>= [http://www.openwfm.org/ WRF-Fire Project] =<br />
This page introduces the possibilities VisTrails provides in relation to the WRF-Fire Simulation project. <br />
<br />
== 3D Visualizations via VisTrails ==<br />
<br />
<div align=center><br />
{|<br />
|[[Image:wrfFire_streamlines1.png|463px|"3D fire visualization (example1)"]] <br />
|[[Image:wrfFire_streamlines2.png|450px|"3D fire visualization (example2)"]] <br />
|}<br />
<div align=left><br />
<br />
Above are screen shots from different view angles of a VisTrails visualization of wrf-fire simulation results. Specifically these visualizations illustrate the fire area, as well as the wind vectors on the surface and throughout the volume. The use of stream rakes improves the visualization of the wind's volumetric flow, highlighting the updraft and vortex features in the vector field.<br />
<br />
<br />
The VisTrail that produces these images reads in the wrfout NetCDF file produced by the simulation. It extracts the specified variables at a single time step, and displays an interactive 3D visualization within a single cell of the VisTrails' spreadsheet. The images shown are screen shots of this cell.<br />
<br />
== Downloads and Setup ==<br />
<br />
In order to run the above visualizations on your machines, [[www.vistrails.org/index.php/Downloads/|download Vistrails]] from our website. We can make the additional userpackages and VisTrail files available upon request.<br />
<br />
= Super Computing Demo 2009 =<br />
<br />
The above discussions highlight the currently available visualization results for the wrf-fire simulations. Below we further address possibilities that can be achieved via VisTrails. This section is intended to inspire conversation concerning what it is you would like to show during your demo's. In particular, discussing interesting visualizations of the data produced on your cluster, as well as the performance information of the cluster during the computation of this data.<br />
<br />
== Possibilities ==<br />
<br />
<div align=center><br />
[[Image:wrfFire_streamlines3.png|top|350px|"side-by-side comparisons with multiple cells"]] <br />
<div align=left><br />
<br />
=== Multiple Visualization Windows ===<br />
<br />
{|{{Prettytable}}<br />
|[[Image:Iso_plots.png|top|450px|"performance analysis with multiple cells"]] <br />
|<br />
In addition to the single cell visualization, it is possible to do multiple cell displays for side-by-side comparisons of different data sets. This may be useful if comparing visualizations from multiple data sets, i.e. two different simulation runs at similar time-steps but with different initial conditions, or the same simulation run at two different time steps (shown at left).<br />
|}<br />
<br />
=== Performance Visualization ===<br />
<br />
For the SC2009 demo purposes, we envision using the multiple cell display to simultaneously display the 3D visualizations of the simulation outputs with performance graphs that track the computations performed by the nodes on the cluster. An example of the multiple cell visualizations is shown above. Furthermore, it is possible to open multiple sheets within the VisTrails spreadsheet, such that performance graphs can be hidden while viewing the simulation visualizations, and vice-versa.<br />
<br />
=== Scheduling Remote Executions ===<br />
<br />
We have support for the execution of the wrf-fire simulation code on a remote server, in addition to the visualization. Our wrf-fire server code would need to be slightly modified in order to correctly communicate with your scheduler. The remote execution model supports the querying of new simulation result files and handles the transfer of new files to the local machine. With this added functionality, the entire simulation code can be managed through VisTrails.<br />
<br />
== Key Questions ==<br />
<br />
* Would it be useful to visualize performance data measured on your cluster during the simulation computation?<br />
* Would you like us to handle the running of the wrf-fire simulation?<br />
** If so, how does one schedule a process on your cluster?</div>Erandershttps://www.vistrails.org//index.php?title=File:Iso_plots.png&diff=2174File:Iso plots.png2009-10-31T00:59:11Z<p>Eranders: </p>
<hr />
<div></div>Erandershttps://www.vistrails.org//index.php?title=Wrffire&diff=2173Wrffire2009-10-31T00:58:00Z<p>Eranders: /* Possibilities */</p>
<hr />
<div>= [http://www.openwfm.org/ WRF-Fire Project] =<br />
This page introduces the possibilities VisTrails provides in relation to the WRF-Fire Simulation project. <br />
<br />
== 3D Visualizations via VisTrails ==<br />
<br />
<div align=center><br />
{|<br />
|[[Image:wrfFire_streamlines1.png|463px|"3D fire visualization (example1)"]] <br />
|[[Image:wrfFire_streamlines2.png|450px|"3D fire visualization (example2)"]] <br />
|}<br />
<div align=left><br />
<br />
Above are screen shots from different view angles of a VisTrails visualization of wrf-fire simulation results. Specifically these visualizations illustrate the fire area, as well as the wind vectors on the surface and throughout the volume. The use of stream rakes improves the visualization of the wind's volumetric flow, highlighting the updraft and vortex features in the vector field.<br />
<br />
<br />
The VisTrail that produces these images reads in the wrfout NetCDF file produced by the simulation. It extracts the specified variables at a single time step, and displays an interactive 3D visualization within a single cell of the VisTrails' spreadsheet. The images shown are screen shots of this cell.<br />
<br />
== Downloads and Setup ==<br />
<br />
In order to run the above visualizations on your machines, [[www.vistrails.org/index.php/Downloads/|download Vistrails]] from our website. We can make the additional userpackages and VisTrail files available upon request.<br />
<br />
= Super Computing Demo 2009 =<br />
<br />
The above discussions highlight the currently available visualization results for the wrf-fire simulations. Below we further address possibilities that can be achieved via VisTrails. This section is intended to inspire conversation concerning what it is you would like to show during your demo's. In particular, discussing interesting visualizations of the data produced on your cluster, as well as the performance information of the cluster during the computation of this data.<br />
<br />
== Possibilities ==<br />
<br />
<div align=center><br />
[[Image:wrfFire_streamlines3.png|top|350px|"side-by-side comparisons with multiple cells"]] <br />
<div align=left><br />
<br />
=== Multiple Visualization Windows ===<br />
<br />
{|{{Prettytable}}<br />
|[[Image:wrfFire_performanceGraph.png|top|450px|"performance analysis with multiple cells"]] <br />
|<br />
In addition to the single cell visualization, it is possible to do multiple cell displays for side-by-side comparisons of different data sets. This may be useful if comparing visualizations from multiple data sets, i.e. two different simulation runs at similar time-steps but with different initial conditions, or the same simulation run at two different time steps (shown at left).<br />
|}<br />
<br />
=== Performance Visualization ===<br />
<br />
For the SC2009 demo purposes, we envision using the multiple cell display to simultaneously display the 3D visualizations of the simulation outputs with performance graphs that track the computations performed by the nodes on the cluster. An example of the multiple cell visualizations is shown above. Furthermore, it is possible to open multiple sheets within the VisTrails spreadsheet, such that performance graphs can be hidden while viewing the simulation visualizations, and vice-versa.<br />
<br />
=== Scheduling Remote Executions ===<br />
<br />
We have support for the execution of the wrf-fire simulation code on a remote server, in addition to the visualization. Our wrf-fire server code would need to be slightly modified in order to correctly communicate with your scheduler. The remote execution model supports the querying of new simulation result files and handles the transfer of new files to the local machine. With this added functionality, the entire simulation code can be managed through VisTrails.<br />
<br />
== Key Questions ==<br />
<br />
* Would it be useful to visualize performance data measured on your cluster during the simulation computation?<br />
* Would you like us to handle the running of the wrf-fire simulation?<br />
** If so, how does one schedule a process on your cluster?</div>Erandershttps://www.vistrails.org//index.php?title=Wrffire&diff=2172Wrffire2009-10-31T00:55:24Z<p>Eranders: /* Multiple Visualization Windows */</p>
<hr />
<div>= [http://www.openwfm.org/ WRF-Fire Project] =<br />
This page introduces the possibilities VisTrails provides in relation to the WRF-Fire Simulation project. <br />
<br />
== 3D Visualizations via VisTrails ==<br />
<br />
<div align=center><br />
{|<br />
|[[Image:wrfFire_streamlines1.png|463px|"3D fire visualization (example1)"]] <br />
|[[Image:wrfFire_streamlines2.png|450px|"3D fire visualization (example2)"]] <br />
|}<br />
<div align=left><br />
<br />
Above are screen shots from different view angles of a VisTrails visualization of wrf-fire simulation results. Specifically these visualizations illustrate the fire area, as well as the wind vectors on the surface and throughout the volume. The use of stream rakes improves the visualization of the wind's volumetric flow, highlighting the updraft and vortex features in the vector field.<br />
<br />
<br />
The VisTrail that produces these images reads in the wrfout NetCDF file produced by the simulation. It extracts the specified variables at a single time step, and displays an interactive 3D visualization within a single cell of the VisTrails' spreadsheet. The images shown are screen shots of this cell.<br />
<br />
== Downloads and Setup ==<br />
<br />
In order to run the above visualizations on your machines, [[www.vistrails.org/index.php/Downloads/|download Vistrails]] from our website. We can make the additional userpackages and VisTrail files available upon request.<br />
<br />
= Super Computing Demo 2009 =<br />
<br />
The above discussions highlight the currently available visualization results for the wrf-fire simulations. Below we further address possibilities that can be achieved via VisTrails. This section is intended to inspire conversation concerning what it is you would like to show during your demo's. In particular, discussing interesting visualizations of the data produced on your cluster, as well as the performance information of the cluster during the computation of this data.<br />
<br />
== Possibilities ==<br />
<br />
<div align=center><br />
[[Image:wrfFire_streamlines3.png|top|350px|"side-by-side comparisons with multiple cells"]] <br />
<div align=left><br />
<br />
=== Multiple Visualization Windows ===<br />
<br />
In addition to the single cell visualization, it is possible to do multiple cell displays for side-by-side comparisons of different data sets. This may be useful if comparing visualizations from multiple data sets, i.e. two different simulation runs at similar time-steps but with different initial conditions, or the same simulation run at two different time steps (shown above).<br />
<br />
<br />
<br />
<div align=center><br />
[[Image:wrfFire_performanceGraph.png|top|450px|"performance analysis with multiple cells"]] <br />
<div align=left><br />
<br />
=== Performance Visualization ===<br />
<br />
For the SC2009 demo purposes, we envision using the multiple cell display to simultaneously display the 3D visualizations of the simulation outputs with performance graphs that track the computations performed by the nodes on the cluster. An example of the multiple cell visualizations is shown above. Furthermore, it is possible to open multiple sheets within the VisTrails spreadsheet, such that performance graphs can be hidden while viewing the simulation visualizations, and vice-versa.<br />
<br />
=== Scheduling Remote Executions ===<br />
<br />
We have support for the execution of the wrf-fire simulation code on a remote server, in addition to the visualization. Our wrf-fire server code would need to be slightly modified in order to correctly communicate with your scheduler. The remote execution model supports the querying of new simulation result files and handles the transfer of new files to the local machine. With this added functionality, the entire simulation code can be managed through VisTrails.<br />
<br />
== Key Questions ==<br />
<br />
* Would it be useful to visualize performance data measured on your cluster during the simulation computation?<br />
* Would you like us to handle the running of the wrf-fire simulation?<br />
** If so, how does one schedule a process on your cluster?</div>Erandershttps://www.vistrails.org//index.php?title=File:WrfFire_performanceGraph.png&diff=2171File:WrfFire performanceGraph.png2009-10-31T00:55:00Z<p>Eranders: </p>
<hr />
<div></div>Erandershttps://www.vistrails.org//index.php?title=Book/Datasets&diff=2150Book/Datasets2009-10-27T21:13:17Z<p>Eranders: </p>
<hr />
<div>= Datasets and Descriptions =<br />
<br />
This page is dedicated to datasets that are acceptable for use in the Book. As many of these data are extremely large, I have not posted them here, instead, I have included links to the download locations. Additionally, this [http://www.sci.utah.edu/~eranders/data/book_data.vt .vt file] contains versions that will download the appropriate dataset and reproduce the images on this page. All datasets are included in this .vt except for the .off files.<br />
<br />
== Synthetic Datasets ==<br />
<br />
{|{{Prettytable}}<br />
|[[Image:Spheres.png|256px]]<br />
|<br />
==Three Spheres==<br />
* Regular Grid in .raw/.nrrd format. [http://www.sci.utah.edu/~eranders/data/3big.zip Spheres.zip]<br />
** Datatype = Float<br />
** Dimensions = 256 256 256<br />
** File Size = 50 MB<br />
|-<br />
|[[Image:Noisy_spheres.png|256px]]<br />
|<br />
== Three Spheres with Gaussian Noise ==<br />
* Regular Grid in .raw/.nrrd format. [http://www.sci.utah.edu/~eranders/data/3big_noise.zip Noisy_spheres.zip]<br />
** Datatype = Float<br />
** Dimensions = 256 256 256<br />
** File Size = 58 MB<br />
|}<br />
<br />
== Standard Datasets ==<br />
{|{{Prettytable}}<br />
|[[Image:Fighter.png|256px]]<br />
|<br />
== Fighter ==<br />
* Unstructured Tet-Mesh in .off format. [http://www.sci.utah.edu/~eranders/data/fighter.off Fighter.off]<br />
** Datatype = Float<br />
** Num Vertex = 256,614<br />
** Num Tets = 1,403,504<br />
** File Size = 48 MB<br />
|-<br />
|[[Image:Spx.png|256px]]<br />
|<br />
== SPX ==<br />
* Unstructured Tet-Mesh in .off format. [http://www.sci.utah.edu/~eranders/data/spx.off Spx.off]<br />
** Datatype = Float<br />
** Num Vertex = 20,108<br />
** Num Tets = 12,936<br />
** File Size = 993 KB<br />
|-<br />
|[[Image:Blunt.png|256px]]<br />
|<br />
== Blunt Fin ==<br />
* Unstructured Tet-Mesh in .off format. [http://www.sci.utah.edu/~eranders/data/blunt.off Blunt.off]<br />
** Datatype = Float<br />
** Num Vertex = 40,960<br />
** Num Tets = 187,395<br />
** File Size = 5.8 MB<br />
|-<br />
|[[Image:Tooth.png|256px]]<br />
|<br />
== CT-Tooth ==<br />
* Regular Grid in .raw/.nrrd format. [http://www.sci.utah.edu/~eranders/data/tooth_float.zip Tooth.zip]<br />
** Datatype = Float<br />
** Dimensions = 103, 94, 161<br />
** File Size = 2.0 MB<br />
|}<br />
<br />
== Collaborator-generated Data ==<br />
{|{{Prettytable}}<br />
|[[Image:Cmop.png|256px]]<br />
|<br />
== Columbia River Simulation: Thanks to Antonio Baptista (STCCMOP) ==<br />
* Unstructured Prism Mesh converted to .vtk format. [http://www.sci.utah.edu/~eranders/data/columbia_river_002.vtk Inlet.vtk]<br />
** Num Vertex = 33,410<br />
** Num Prisms = 57,825<br />
** File Size = 4.4 MB<br />
** Scalar Fields<br />
*** salt - salinity field<br />
*** vpos - vertical position<br />
*** h - bathymetry<br />
*** saltflux - salinity flux<br />
** Vector Fields<br />
*** uv - horizontal current velocities<br />
|-<br />
|[[Image:Coastal.png|256px]]<br />
|<br />
== Coastal Ocean Simulation: Thanks to Yvette Spitz (STCCMOP) ==<br />
* Curvilinear Grid converted to .vtk format. [http://www.sci.utah.edu/~eranders/data/0007009.vtk Coastal.vtk]<br />
** Dimensions = 384, 128, 44<br />
** File Size = 25 MB<br />
** Scalar Fields<br />
*** phytoplankton - Phytoplankton Concentration<br />
*** zooplankton - Zooplankton Concentration<br />
*** NO3 - Nitrate Level<br />
*** temperature - Temperature (Degrees Celsius)<br />
** Vector Fields<br />
*** velocity - 3D Water Velocity<br />
|-<br />
|[[Image:Tokamak.png|256px]]<br />
|<br />
== Tokamak Fusion: Thanks to Allen Sanderson (SDM) ==<br />
* Unstructured Hex Mesh converted to .vtk format. [http://www.sci.utah.edu/~eranders/data/fusion_0067_bin.vtk Tokamak.vtk]<br />
** Num Vertex = 622,261<br />
** Num Hexes = 600,000<br />
** File Size = 59 MB<br />
** Scalar Field<br />
*** scalars - Temperature (Degrees Kelvin)<br />
** Vector Field<br />
*** vectors - Magnetic Field<br />
|-<br />
|[[Image:Cosmo.png|256px]]<br />
|<br />
== Cosmology Simulation: Thanks to Katrin Heitmann (LANL) ==<br />
* Point cloud converted to .vtk format. [http://www.sci.utah.edu/~eranders/data/enzo_parts_16.vtk Cosmology.vtk]<br />
** Num Points = 1,048,576<br />
** File Size = 45 MB<br />
** Scalar Field<br />
*** mass - Mass (Solar Masses)<br />
*** tag - Id<br />
** Vector Field<br />
*** velocity - 3D velocity<br />
|-<br />
|[[Image:Mri.png|256px]]<br />
|<br />
== Magnetic Resonance Image: Thanks to John Schreiner ==<br />
* Regular Grid converted to .vtk format. [http://www.sci.utah.edu/~eranders/data/mri.vtk Mri.vtk]<br />
** Dimensions = 256, 256, 208<br />
** Datatype = Unsigned Short<br />
** File Size = 27 MB<br />
|}</div>Erandershttps://www.vistrails.org//index.php?title=File:Mri.png&diff=2149File:Mri.png2009-10-27T21:08:39Z<p>Eranders: </p>
<hr />
<div></div>Erandershttps://www.vistrails.org//index.php?title=File:Cosmo.png&diff=2148File:Cosmo.png2009-10-27T21:04:08Z<p>Eranders: </p>
<hr />
<div></div>Erandershttps://www.vistrails.org//index.php?title=File:Tokamak.png&diff=2147File:Tokamak.png2009-10-27T20:59:58Z<p>Eranders: </p>
<hr />
<div></div>Erandershttps://www.vistrails.org//index.php?title=File:Coastal.png&diff=2146File:Coastal.png2009-10-27T20:59:19Z<p>Eranders: </p>
<hr />
<div></div>Erandershttps://www.vistrails.org//index.php?title=File:Cmop.png&diff=2145File:Cmop.png2009-10-27T20:46:02Z<p>Eranders: </p>
<hr />
<div></div>Erandershttps://www.vistrails.org//index.php?title=File:Tooth.png&diff=2144File:Tooth.png2009-10-27T20:38:04Z<p>Eranders: </p>
<hr />
<div></div>Erandershttps://www.vistrails.org//index.php?title=File:Blunt.png&diff=2143File:Blunt.png2009-10-27T20:37:44Z<p>Eranders: </p>
<hr />
<div></div>Erandershttps://www.vistrails.org//index.php?title=File:Spx.png&diff=2142File:Spx.png2009-10-27T20:32:10Z<p>Eranders: </p>
<hr />
<div></div>Erandershttps://www.vistrails.org//index.php?title=File:Sf1.png&diff=2141File:Sf1.png2009-10-27T20:28:52Z<p>Eranders: </p>
<hr />
<div></div>Erandershttps://www.vistrails.org//index.php?title=File:Fighter.png&diff=2140File:Fighter.png2009-10-27T20:27:08Z<p>Eranders: </p>
<hr />
<div></div>Erandershttps://www.vistrails.org//index.php?title=Book/Datasets&diff=2139Book/Datasets2009-10-27T20:23:25Z<p>Eranders: </p>
<hr />
<div>= Datasets and Descriptions =<br />
<br />
This page is dedicated to datasets that are acceptable for use in the Book. As many of these data are extremely large, I have not posted them here, instead, I will make sure to go through and put some images next to each description to give an idea of the overall structure of each dataset.<br />
<br />
== Synthetic Datasets ==<br />
<br />
{|{{Prettytable}}<br />
|[[Image:Spheres.png|256px]]<br />
|<br />
==Three Spheres==<br />
* Regular Grid in .raw/.nrrd format. [http://www.sci.utah.edu/~eranders/data/3big.zip]<br />
** Datatype = Float<br />
** Dimensions = 256 256 256<br />
** File Size = 50 MB<br />
|-<br />
|[[Image:Noisy_spheres.png|256px]]<br />
|<br />
== Three Spheres with Gaussian Noise ==<br />
* Regular Grid in .raw/.nrrd format. [http://www.sci.utah.edu/~eranders/data/3big_noise.zip]<br />
** Datatype = Float<br />
** Dimensions = 256 256 256<br />
** File Size = 58 MB<br />
|}<br />
<br />
== Standard Datasets ==<br />
<br />
=== Fighter ===<br />
<br />
* Unstructured Tet-Mesh in .off format.<br />
<br />
=== Earthquake ===<br />
<br />
* Unstructured Tet-Mesh in .off format.<br />
<br />
=== SPX ===<br />
<br />
* Unstructured Tet-Mesh in .off format.<br />
<br />
=== CT-Tooth ===<br />
<br />
* Regular Grid in .raw/.nrrd format.<br />
<br />
=== CT-Head ===<br />
<br />
* Regular Grid in .raw/.nrrd format.<br />
<br />
== Collaborator-generated Data ==<br />
<br />
=== Columbia River ===<br />
<br />
* Unstructured Prism Mesh converted to .vtk format.<br />
<br />
=== Tokamak Fusion ===<br />
<br />
* Unstructured Hex Mesh converted to .vtk format.<br />
<br />
=== Cosmology Simulation ===<br />
<br />
* Point cloud converted to .vtk format</div>Erandershttps://www.vistrails.org//index.php?title=Book/Datasets&diff=2138Book/Datasets2009-10-27T20:22:07Z<p>Eranders: /* Synthetic Datasets */</p>
<hr />
<div>= Datasets and Descriptions =<br />
<br />
This page is dedicated to datasets that are acceptable for use in the Book. As many of these data are extremely large, I have not posted them here, instead, I will make sure to go through and put some images next to each description to give an idea of the overall structure of each dataset.<br />
<br />
== Synthetic Datasets ==<br />
<br />
{|{{Prettytable}}<br />
|<br />
==Three Spheres==<br />
* Regular Grid in .raw/.nrrd format. [http://www.sci.utah.edu/~eranders/data/3big.zip]<br />
** Datatype = Float<br />
** Dimensions = 256 256 256<br />
** File Size = 50 MB<br />
|[[Image:Spheres.png|256px]]<br />
|-<br />
|<br />
== Three Spheres with Gaussian Noise ==<br />
* Regular Grid in .raw/.nrrd format. [http://www.sci.utah.edu/~eranders/data/3big_noise.zip]<br />
** Datatype = Float<br />
** Dimensions = 256 256 256<br />
** File Size = 58 MB<br />
|[[Image:Noisy_spheres.png|256px]]<br />
|}<br />
<br />
== Standard Datasets ==<br />
<br />
=== Fighter ===<br />
<br />
* Unstructured Tet-Mesh in .off format.<br />
<br />
=== Earthquake ===<br />
<br />
* Unstructured Tet-Mesh in .off format.<br />
<br />
=== SPX ===<br />
<br />
* Unstructured Tet-Mesh in .off format.<br />
<br />
=== CT-Tooth ===<br />
<br />
* Regular Grid in .raw/.nrrd format.<br />
<br />
=== CT-Head ===<br />
<br />
* Regular Grid in .raw/.nrrd format.<br />
<br />
== Collaborator-generated Data ==<br />
<br />
=== Columbia River ===<br />
<br />
* Unstructured Prism Mesh converted to .vtk format.<br />
<br />
=== Tokamak Fusion ===<br />
<br />
* Unstructured Hex Mesh converted to .vtk format.<br />
<br />
=== Cosmology Simulation ===<br />
<br />
* Point cloud converted to .vtk format</div>Erandershttps://www.vistrails.org//index.php?title=File:Noisy_spheres.png&diff=2137File:Noisy spheres.png2009-10-27T20:21:46Z<p>Eranders: </p>
<hr />
<div></div>Erandershttps://www.vistrails.org//index.php?title=File:Spheres.png&diff=2136File:Spheres.png2009-10-27T20:20:58Z<p>Eranders: </p>
<hr />
<div></div>Erandershttps://www.vistrails.org//index.php?title=Book/Datasets&diff=2117Book/Datasets2009-09-16T21:27:50Z<p>Eranders: </p>
<hr />
<div>= Datasets and Descriptions =<br />
<br />
This page is dedicated to datasets that are acceptable for use in the Book. As many of these data are extremely large, I have not posted them here, instead, I will make sure to go through and put some images next to each description to give an idea of the overall structure of each dataset.<br />
<br />
== Synthetic Datasets ==<br />
<br />
=== Three Spheres ===<br />
<br />
* Regular Grid in .raw/.nrrd format.<br />
<br />
=== Three Spheres with Gaussian Noise ===<br />
<br />
* Regular Grid in .raw/.nrrd format.<br />
<br />
== Standard Datasets ==<br />
<br />
=== Fighter ===<br />
<br />
* Unstructured Tet-Mesh in .off format.<br />
<br />
=== Earthquake ===<br />
<br />
* Unstructured Tet-Mesh in .off format.<br />
<br />
=== SPX ===<br />
<br />
* Unstructured Tet-Mesh in .off format.<br />
<br />
=== CT-Tooth ===<br />
<br />
* Regular Grid in .raw/.nrrd format.<br />
<br />
=== CT-Head ===<br />
<br />
* Regular Grid in .raw/.nrrd format.<br />
<br />
== Collaborator-generated Data ==<br />
<br />
=== Columbia River ===<br />
<br />
* Unstructured Prism Mesh converted to .vtk format.<br />
<br />
=== Tokamak Fusion ===<br />
<br />
* Unstructured Hex Mesh converted to .vtk format.<br />
<br />
=== Cosmology Simulation ===<br />
<br />
* Point cloud converted to .vtk format</div>Erandershttps://www.vistrails.org//index.php?title=Book/Datasets&diff=2116Book/Datasets2009-09-16T21:23:04Z<p>Eranders: New page: = Datasets and Descriptions = This page is dedicated to datasets that are acceptable for use in the Book. As many of these data are extremely large, I have not posted them here, instead,...</p>
<hr />
<div>= Datasets and Descriptions =<br />
<br />
This page is dedicated to datasets that are acceptable for use in the Book. As many of these data are extremely large, I have not posted them here, instead, I will make sure to go through and put some images next to each description to give an idea of the overall structure of each dataset.<br />
<br />
== Standard Datasets ==<br />
<br />
=== Fighter ===<br />
<br />
* Unstructured Tet-Mesh in .off format.<br />
<br />
=== Earthquake ===<br />
<br />
* Unstructured Tet-Mesh in .off format.<br />
<br />
=== SPX ===<br />
<br />
* Unstructured Tet-Mesh in .off format.<br />
<br />
=== CT-Tooth ===<br />
<br />
* Regular Grid in .raw/.nrrd format.<br />
<br />
=== CT-Head ===<br />
<br />
* Regular Grid in .raw/.nrrd format.<br />
<br />
== Collaborator-generated Data ==<br />
<br />
=== Columbia River ===<br />
<br />
* Unstructured Prism Mesh converted to .vtk format.<br />
<br />
=== Tokamak Fusion ===<br />
<br />
* Unstructured Hex Mesh converted to .vtk format.<br />
<br />
=== Cosmology Simulation ===<br />
<br />
* Point cloud converted to .vtk format</div>Erandershttps://www.vistrails.org//index.php?title=Cmop_rdfs2&diff=2102Cmop rdfs22009-09-11T21:55:19Z<p>Eranders: New page: == Task List == In order to streamline the task management associated with re-creating the CMOP RDFS system, the sections below will be updated to provide instant glimpses of the current ...</p>
<hr />
<div>== Task List ==<br />
<br />
In order to streamline the task management associated with re-creating the CMOP RDFS system, the sections below will be updated to provide instant glimpses of the current task lists for each of the various decoupled components.<br />
<br />
=== Simulation and Forcings === <br />
<br />
Brad Grimm<br />
<br />
=== Visualization and Analysis ===<br />
<br />
* Grid Construction from hgrid and vgrid<br />
** Selfe from netCDF completed - working on other output types now<br />
<br />
* 2D plots from surface, bottom, and various depths<br />
** Incorporating surface wind, etc<br />
<br />
* Transect Plots<br />
<br />
* Station Plots<br />
<br />
=== Presentation and Access ===<br />
<br />
Phillip Mates</div>Erandershttps://www.vistrails.org//index.php?title=Tutorials/Vis2009&diff=2056Tutorials/Vis20092009-07-23T21:10:01Z<p>Eranders: /* Advanced hands-on usage of VisTrails (1h 30m) - Presenter: Erik */</p>
<hr />
<div>I organized this first part to contain the information required for the program.<br />
<br />
The webpage for last year's tutorials is here: http://vis.computer.org/VisWeek2008/session/tutorials.html<br />
<br />
= Provenance-Enabled Data Exploration and Visualization =<br />
<br />
== Level == <br />
Beginning to advandced.<br />
<br />
== Presenters ==<br />
Cláudio Silva, University of Utah<br><br />
Juliana Freire, University of Utah<br><br />
Emanuele Santos, University of Utah<br><br />
Erik Anderson, University of Utah<br><br />
<br />
== Abstract ==<br />
Scientists are now faced with an incredible volume of data to analyze. To explore and understand the data, they need to assemble complex workflows (pipelines) to manipulate the data and create insightful visual representations. Provenance is essential in this process. The provenance of a digital artifact contains information about the process and data used to derive the artifact. This information is essential for preserving the data, for determining the data's quality and authorship, for both reproducing and validating results -- all important elements of the scientific process. Provenance has shown to be particularly useful for enabling comparative visualization and data analysis. This tutorial will inform computational and visualization scientists, users and developers about different approaches to provenance and the trade-offs among them. Using the VisTrails project as a basis, we will cover different approaches to acquiring and reusing provenance, including techniques that attendees can use for provenance-enabling their own tools. The tutorial will also discuss uses of provenance that go beyond the ability to reproduce and share results.<br />
<br />
== Working Outline ==<br />
<br />
After discussion, it seems that the tutorial is best broken into two distinct pieces: A user-centric portion focused on using VisTrails, and a power-user or developer-centric portion focusing on plug-ins, mashups, etc.<br />
<br />
=== Introduction to Provenance and VisTrails (1h 30m) - Presenter: Claudio/Erik/Juliana/Manu (?) ===<br />
* Brief view of plugins and released features of VisTrails<br />
* Define provenance, explain why it is important for data analysis and visualization<br />
* Introduce VisTrails, explain the differences and similarities between VisTrails and other vis and scientific workflow systems<br />
** Say it is open source<br />
** Multi-platform: written in Python+QT<br />
** Downloaded 1000's of times<br />
** Shipped with packages: XXXYYYZZZ<br />
** User-contributed packages: XXXXXXX -- you can add your own! (more later)<br />
* Explain the version tree and the action-based provenance model<br />
* Show features that are enabled by the action-based provenance, and how they can help in the process of analyzing and visualizing data<br />
** Going back and forth on the tree<br />
** Automatic capture of changes<br />
** Compare different workflows and their results<br />
** Exploring parameter spaces <br />
** Querying workflows by example<br />
** Refining workflows by analogy<br />
* Discuss how the action-based provenance model can be combined with interactive tools<br />
** Give a brief overview of the plugins<br />
** Show videos for a couple of them and point to the detailed tutorial of how to build a plugin later.<br />
<br />
<br />
=== Basic hands-on usage of VisTrails (1h 30m) - Presenter: Manu ===<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/basic_handson.pdf<br />
* Building Simple Pipelines<br />
** VisTrails Builder overview<br />
** Adding and connecting modules<br />
** Setting parameters<br />
** Setting module labels<br />
** Accessing module documentation<br />
** Using modules for displaying results in the spreadsheet<br />
* Using the Spreadsheet<br />
** Spreadsheet overview<br />
** Syncing cells<br />
** Moving cells<br />
** Saving camera<br />
** Using Edit mode functionality<br />
* Using PythonSource<br />
** Defining and using input ports and output ports<br />
* Connecting to databases<br />
** Defining custom database connections<br />
** Loading a vistrail from the database<br />
** Saving a vistrail to the database<br />
* VisTrails as a Server<br />
** Environment Setup<br />
** Running VisTrails in Server Mode<br />
** Showing Examples to illustrate the types of requests that can be done<br />
*** Querying<br />
*** Executing<br />
*** Getting the result images<br />
<br />
=== Advanced hands-on usage of VisTrails (1h 30m) - Presenter: Erik ===<br />
This will all be in the context of a very specific example - We have recieved permission from Yvette Spitz to use the ROMS simulation for this. This allows us to give concrete examples that participants can follow along on their own as the tutorial progresses.<br />
<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/adv_handson.ppt<br />
<br />
* Organizational principles of the History Tree for Visualization creation and exploration<br />
** Multiple, independent workflows contained in the same version tree. This method of organization makes creating more complex visualization easier. <br />
* QBE, Analogies, Parameter Exploration -> New Version<br />
** First Query for visualizations supporting picking so that we can add this features by analogy to another version created from a parameter exploration over color map ranges. This will highlight data exploration and its interplay with the existing technologies inside of VisTrails<br />
* vtkInteractionHandlers - Slicing and dicing data<br />
** We will investigate, in detail, the specific requirements for adding advanced interaction capabilities to a VTK-based visualization. Specifically, we will create workflows in which we can perform arbitrary culling as well as slicing along all 3 principle axes.<br />
* PythonSource as callback definition - Picking specific elements<br />
** Callbacks allow many systems to fire unique events that can drive interactivity with visualizations. Here we will explore the details of implementing VTK-style picking in the ROMS data to change the scalar field being displayed in visualization.<br />
* The workflow debugger<br />
** The workflow debugger allows stateful inspection of Module input/outputs. These advanced features can be used to provide interactive debugging and exploration of individual Module processes and interim data products.<br />
* Transforming VTK pipelines into VisTrails workflows --- modified version of Dave's script to get all VTK example into a .vt, and show how to query/search that. As a summary, this will be shown and posted allowing people to search for a single VTK module to see how it must be connected and parameterized in order to be properly used.<br />
<br />
=== Developing a plug-in (30-40m) - Presenter: Manu ===<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/plugins.pdf<br />
* Plug-in architecture overview<br />
* Different implementation strategies<br />
** Attaching the host plugin to the main application<br />
***Callback mechanism<br />
*** Undo/Redo Stack<br />
** Communication between Host Plugin and Capture API<br />
*** callbacks<br />
*** Sockets<br />
* ParaView Plug-in Implementation<br />
** Explaining required changes to the source<br />
** Showing the limitations<br />
** Demo<br />
<br />
=== New Extensions to VisTrails (50-60m) - Presenter: Claudio/Erik/Juliana/Manu ===<br />
* Display Wall<br />
* Provenance Rich Publications<br />
* Mashups<br />
* Repository<br />
* Web-based execution (?)<br />
<br />
== Related Papers ==<br />
[http://www.vistrails.org/download/download.php?type=PUB&id=ipaw2006.pdf Managing Rapidly-Evolving Scientific Workflows] (by Juliana Freire, Claudio T. Silva, Steven P. Callahan, Emanuele Santos, Carlos E. Scheidegger and Huy T. Vo) Invited paper, in the proceedings of the International Provenance and Annotation Workshop (IPAW), 2006.<br />
<br />
[http://www.sci.utah.edu/publications/SCITechReports/UUSCI-2006-016.pdf Using Provenance to Streamline Data Exploration through Visualization] (by Steven P. Callahan, Juliana Freire, Emanuele Santos, Carlos E. Scheidegger, Claudio T. Silva and Huy T. Vo) SCI Institute Technical Report, No. UUSCI-2006-016, University of Utah, 2006.<br />
<br />
[http://www.sci.utah.edu/~cscheid/download.html?document=vis_by_analogy.pdf Querying and Creating Visualizations by Analogy] (by Carlos E. Scheidegger, Huy T. Vo, David Koop, Juliana Freire and Claudio T. Silva. IEEE Trans. Vis. Comp. Graph (Proceedings of IEEE Vis 2007) 13(6):1560-1567, 2007. IEEE Vis 2007.<br />
<br />
[http://www.iop.org/EJ/article/1742-6596/125/1/012100/jpconf8_125_012100.pdf Software Infrastructure for Exploratory Visualization and Data Analysis: Past, Present, and Future] (by C.Silva and J. Freire) In Journal of Physics: Conference Series, SciDAC 2008 Conference, 2008.<br />
<br />
[http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions for Visualization Pipelines] (by David Koop, Carlos E. Scheidegger, Steven P. Callahan, Huy T. Vo, Juliana Freire and Claudio T. Silva). In IEEE Transactions on Visualization and Computer Graphics, 14(6), pp. 1691-1698, 2008.<br />
<br />
VisMashup (I will add the link later) --[[User:Emanuele|Emanuele]] 10:55, 23 July 2009 (MDT)</div>Erandershttps://www.vistrails.org//index.php?title=Tutorials/Vis2009&diff=2055Tutorials/Vis20092009-07-23T21:09:51Z<p>Eranders: /* Basic hands-on usage of VisTrails (1h 30m) - Presenter: Manu */</p>
<hr />
<div>I organized this first part to contain the information required for the program.<br />
<br />
The webpage for last year's tutorials is here: http://vis.computer.org/VisWeek2008/session/tutorials.html<br />
<br />
= Provenance-Enabled Data Exploration and Visualization =<br />
<br />
== Level == <br />
Beginning to advandced.<br />
<br />
== Presenters ==<br />
Cláudio Silva, University of Utah<br><br />
Juliana Freire, University of Utah<br><br />
Emanuele Santos, University of Utah<br><br />
Erik Anderson, University of Utah<br><br />
<br />
== Abstract ==<br />
Scientists are now faced with an incredible volume of data to analyze. To explore and understand the data, they need to assemble complex workflows (pipelines) to manipulate the data and create insightful visual representations. Provenance is essential in this process. The provenance of a digital artifact contains information about the process and data used to derive the artifact. This information is essential for preserving the data, for determining the data's quality and authorship, for both reproducing and validating results -- all important elements of the scientific process. Provenance has shown to be particularly useful for enabling comparative visualization and data analysis. This tutorial will inform computational and visualization scientists, users and developers about different approaches to provenance and the trade-offs among them. Using the VisTrails project as a basis, we will cover different approaches to acquiring and reusing provenance, including techniques that attendees can use for provenance-enabling their own tools. The tutorial will also discuss uses of provenance that go beyond the ability to reproduce and share results.<br />
<br />
== Working Outline ==<br />
<br />
After discussion, it seems that the tutorial is best broken into two distinct pieces: A user-centric portion focused on using VisTrails, and a power-user or developer-centric portion focusing on plug-ins, mashups, etc.<br />
<br />
=== Introduction to Provenance and VisTrails (1h 30m) - Presenter: Claudio/Erik/Juliana/Manu (?) ===<br />
* Brief view of plugins and released features of VisTrails<br />
* Define provenance, explain why it is important for data analysis and visualization<br />
* Introduce VisTrails, explain the differences and similarities between VisTrails and other vis and scientific workflow systems<br />
** Say it is open source<br />
** Multi-platform: written in Python+QT<br />
** Downloaded 1000's of times<br />
** Shipped with packages: XXXYYYZZZ<br />
** User-contributed packages: XXXXXXX -- you can add your own! (more later)<br />
* Explain the version tree and the action-based provenance model<br />
* Show features that are enabled by the action-based provenance, and how they can help in the process of analyzing and visualizing data<br />
** Going back and forth on the tree<br />
** Automatic capture of changes<br />
** Compare different workflows and their results<br />
** Exploring parameter spaces <br />
** Querying workflows by example<br />
** Refining workflows by analogy<br />
* Discuss how the action-based provenance model can be combined with interactive tools<br />
** Give a brief overview of the plugins<br />
** Show videos for a couple of them and point to the detailed tutorial of how to build a plugin later.<br />
<br />
<br />
=== Basic hands-on usage of VisTrails (1h 30m) - Presenter: Manu ===<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/basic_handson.pdf<br />
* Building Simple Pipelines<br />
** VisTrails Builder overview<br />
** Adding and connecting modules<br />
** Setting parameters<br />
** Setting module labels<br />
** Accessing module documentation<br />
** Using modules for displaying results in the spreadsheet<br />
* Using the Spreadsheet<br />
** Spreadsheet overview<br />
** Syncing cells<br />
** Moving cells<br />
** Saving camera<br />
** Using Edit mode functionality<br />
* Using PythonSource<br />
** Defining and using input ports and output ports<br />
* Connecting to databases<br />
** Defining custom database connections<br />
** Loading a vistrail from the database<br />
** Saving a vistrail to the database<br />
* VisTrails as a Server<br />
** Environment Setup<br />
** Running VisTrails in Server Mode<br />
** Showing Examples to illustrate the types of requests that can be done<br />
*** Querying<br />
*** Executing<br />
*** Getting the result images<br />
<br />
=== Advanced hands-on usage of VisTrails (1h 30m) - Presenter: Erik ===<br />
This will all be in the context of a very specific example - We have recieved permission from Yvette Spitz to use the ROMS simulation for this. This allows us to give concrete examples that participants can follow along on their own as the tutorial progresses.<br />
<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/adv_handson.pdf<br />
<br />
* Organizational principles of the History Tree for Visualization creation and exploration<br />
** Multiple, independent workflows contained in the same version tree. This method of organization makes creating more complex visualization easier. <br />
* QBE, Analogies, Parameter Exploration -> New Version<br />
** First Query for visualizations supporting picking so that we can add this features by analogy to another version created from a parameter exploration over color map ranges. This will highlight data exploration and its interplay with the existing technologies inside of VisTrails<br />
* vtkInteractionHandlers - Slicing and dicing data<br />
** We will investigate, in detail, the specific requirements for adding advanced interaction capabilities to a VTK-based visualization. Specifically, we will create workflows in which we can perform arbitrary culling as well as slicing along all 3 principle axes.<br />
* PythonSource as callback definition - Picking specific elements<br />
** Callbacks allow many systems to fire unique events that can drive interactivity with visualizations. Here we will explore the details of implementing VTK-style picking in the ROMS data to change the scalar field being displayed in visualization.<br />
* The workflow debugger<br />
** The workflow debugger allows stateful inspection of Module input/outputs. These advanced features can be used to provide interactive debugging and exploration of individual Module processes and interim data products.<br />
* Transforming VTK pipelines into VisTrails workflows --- modified version of Dave's script to get all VTK example into a .vt, and show how to query/search that. As a summary, this will be shown and posted allowing people to search for a single VTK module to see how it must be connected and parameterized in order to be properly used.<br />
<br />
=== Developing a plug-in (30-40m) - Presenter: Manu ===<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/plugins.pdf<br />
* Plug-in architecture overview<br />
* Different implementation strategies<br />
** Attaching the host plugin to the main application<br />
***Callback mechanism<br />
*** Undo/Redo Stack<br />
** Communication between Host Plugin and Capture API<br />
*** callbacks<br />
*** Sockets<br />
* ParaView Plug-in Implementation<br />
** Explaining required changes to the source<br />
** Showing the limitations<br />
** Demo<br />
<br />
=== New Extensions to VisTrails (50-60m) - Presenter: Claudio/Erik/Juliana/Manu ===<br />
* Display Wall<br />
* Provenance Rich Publications<br />
* Mashups<br />
* Repository<br />
* Web-based execution (?)<br />
<br />
== Related Papers ==<br />
[http://www.vistrails.org/download/download.php?type=PUB&id=ipaw2006.pdf Managing Rapidly-Evolving Scientific Workflows] (by Juliana Freire, Claudio T. Silva, Steven P. Callahan, Emanuele Santos, Carlos E. Scheidegger and Huy T. Vo) Invited paper, in the proceedings of the International Provenance and Annotation Workshop (IPAW), 2006.<br />
<br />
[http://www.sci.utah.edu/publications/SCITechReports/UUSCI-2006-016.pdf Using Provenance to Streamline Data Exploration through Visualization] (by Steven P. Callahan, Juliana Freire, Emanuele Santos, Carlos E. Scheidegger, Claudio T. Silva and Huy T. Vo) SCI Institute Technical Report, No. UUSCI-2006-016, University of Utah, 2006.<br />
<br />
[http://www.sci.utah.edu/~cscheid/download.html?document=vis_by_analogy.pdf Querying and Creating Visualizations by Analogy] (by Carlos E. Scheidegger, Huy T. Vo, David Koop, Juliana Freire and Claudio T. Silva. IEEE Trans. Vis. Comp. Graph (Proceedings of IEEE Vis 2007) 13(6):1560-1567, 2007. IEEE Vis 2007.<br />
<br />
[http://www.iop.org/EJ/article/1742-6596/125/1/012100/jpconf8_125_012100.pdf Software Infrastructure for Exploratory Visualization and Data Analysis: Past, Present, and Future] (by C.Silva and J. Freire) In Journal of Physics: Conference Series, SciDAC 2008 Conference, 2008.<br />
<br />
[http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions for Visualization Pipelines] (by David Koop, Carlos E. Scheidegger, Steven P. Callahan, Huy T. Vo, Juliana Freire and Claudio T. Silva). In IEEE Transactions on Visualization and Computer Graphics, 14(6), pp. 1691-1698, 2008.<br />
<br />
VisMashup (I will add the link later) --[[User:Emanuele|Emanuele]] 10:55, 23 July 2009 (MDT)</div>Erandershttps://www.vistrails.org//index.php?title=Tutorials/Vis2009&diff=2054Tutorials/Vis20092009-07-23T21:09:35Z<p>Eranders: /* Advanced hands-on usage of VisTrails (1h 30m) - Presenter: Erik */</p>
<hr />
<div>I organized this first part to contain the information required for the program.<br />
<br />
The webpage for last year's tutorials is here: http://vis.computer.org/VisWeek2008/session/tutorials.html<br />
<br />
= Provenance-Enabled Data Exploration and Visualization =<br />
<br />
== Level == <br />
Beginning to advandced.<br />
<br />
== Presenters ==<br />
Cláudio Silva, University of Utah<br><br />
Juliana Freire, University of Utah<br><br />
Emanuele Santos, University of Utah<br><br />
Erik Anderson, University of Utah<br><br />
<br />
== Abstract ==<br />
Scientists are now faced with an incredible volume of data to analyze. To explore and understand the data, they need to assemble complex workflows (pipelines) to manipulate the data and create insightful visual representations. Provenance is essential in this process. The provenance of a digital artifact contains information about the process and data used to derive the artifact. This information is essential for preserving the data, for determining the data's quality and authorship, for both reproducing and validating results -- all important elements of the scientific process. Provenance has shown to be particularly useful for enabling comparative visualization and data analysis. This tutorial will inform computational and visualization scientists, users and developers about different approaches to provenance and the trade-offs among them. Using the VisTrails project as a basis, we will cover different approaches to acquiring and reusing provenance, including techniques that attendees can use for provenance-enabling their own tools. The tutorial will also discuss uses of provenance that go beyond the ability to reproduce and share results.<br />
<br />
== Working Outline ==<br />
<br />
After discussion, it seems that the tutorial is best broken into two distinct pieces: A user-centric portion focused on using VisTrails, and a power-user or developer-centric portion focusing on plug-ins, mashups, etc.<br />
<br />
=== Introduction to Provenance and VisTrails (1h 30m) - Presenter: Claudio/Erik/Juliana/Manu (?) ===<br />
* Brief view of plugins and released features of VisTrails<br />
* Define provenance, explain why it is important for data analysis and visualization<br />
* Introduce VisTrails, explain the differences and similarities between VisTrails and other vis and scientific workflow systems<br />
** Say it is open source<br />
** Multi-platform: written in Python+QT<br />
** Downloaded 1000's of times<br />
** Shipped with packages: XXXYYYZZZ<br />
** User-contributed packages: XXXXXXX -- you can add your own! (more later)<br />
* Explain the version tree and the action-based provenance model<br />
* Show features that are enabled by the action-based provenance, and how they can help in the process of analyzing and visualizing data<br />
** Going back and forth on the tree<br />
** Automatic capture of changes<br />
** Compare different workflows and their results<br />
** Exploring parameter spaces <br />
** Querying workflows by example<br />
** Refining workflows by analogy<br />
* Discuss how the action-based provenance model can be combined with interactive tools<br />
** Give a brief overview of the plugins<br />
** Show videos for a couple of them and point to the detailed tutorial of how to build a plugin later.<br />
<br />
<br />
=== Basic hands-on usage of VisTrails (1h 30m) - Presenter: Manu ===<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/basic_handson.ppt<br />
* Building Simple Pipelines<br />
** VisTrails Builder overview<br />
** Adding and connecting modules<br />
** Setting parameters<br />
** Setting module labels<br />
** Accessing module documentation<br />
** Using modules for displaying results in the spreadsheet<br />
* Using the Spreadsheet<br />
** Spreadsheet overview<br />
** Syncing cells<br />
** Moving cells<br />
** Saving camera<br />
** Using Edit mode functionality<br />
* Using PythonSource<br />
** Defining and using input ports and output ports<br />
* Connecting to databases<br />
** Defining custom database connections<br />
** Loading a vistrail from the database<br />
** Saving a vistrail to the database<br />
* VisTrails as a Server<br />
** Environment Setup<br />
** Running VisTrails in Server Mode<br />
** Showing Examples to illustrate the types of requests that can be done<br />
*** Querying<br />
*** Executing<br />
*** Getting the result images<br />
<br />
=== Advanced hands-on usage of VisTrails (1h 30m) - Presenter: Erik ===<br />
This will all be in the context of a very specific example - We have recieved permission from Yvette Spitz to use the ROMS simulation for this. This allows us to give concrete examples that participants can follow along on their own as the tutorial progresses.<br />
<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/adv_handson.pdf<br />
<br />
* Organizational principles of the History Tree for Visualization creation and exploration<br />
** Multiple, independent workflows contained in the same version tree. This method of organization makes creating more complex visualization easier. <br />
* QBE, Analogies, Parameter Exploration -> New Version<br />
** First Query for visualizations supporting picking so that we can add this features by analogy to another version created from a parameter exploration over color map ranges. This will highlight data exploration and its interplay with the existing technologies inside of VisTrails<br />
* vtkInteractionHandlers - Slicing and dicing data<br />
** We will investigate, in detail, the specific requirements for adding advanced interaction capabilities to a VTK-based visualization. Specifically, we will create workflows in which we can perform arbitrary culling as well as slicing along all 3 principle axes.<br />
* PythonSource as callback definition - Picking specific elements<br />
** Callbacks allow many systems to fire unique events that can drive interactivity with visualizations. Here we will explore the details of implementing VTK-style picking in the ROMS data to change the scalar field being displayed in visualization.<br />
* The workflow debugger<br />
** The workflow debugger allows stateful inspection of Module input/outputs. These advanced features can be used to provide interactive debugging and exploration of individual Module processes and interim data products.<br />
* Transforming VTK pipelines into VisTrails workflows --- modified version of Dave's script to get all VTK example into a .vt, and show how to query/search that. As a summary, this will be shown and posted allowing people to search for a single VTK module to see how it must be connected and parameterized in order to be properly used.<br />
<br />
=== Developing a plug-in (30-40m) - Presenter: Manu ===<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/plugins.pdf<br />
* Plug-in architecture overview<br />
* Different implementation strategies<br />
** Attaching the host plugin to the main application<br />
***Callback mechanism<br />
*** Undo/Redo Stack<br />
** Communication between Host Plugin and Capture API<br />
*** callbacks<br />
*** Sockets<br />
* ParaView Plug-in Implementation<br />
** Explaining required changes to the source<br />
** Showing the limitations<br />
** Demo<br />
<br />
=== New Extensions to VisTrails (50-60m) - Presenter: Claudio/Erik/Juliana/Manu ===<br />
* Display Wall<br />
* Provenance Rich Publications<br />
* Mashups<br />
* Repository<br />
* Web-based execution (?)<br />
<br />
== Related Papers ==<br />
[http://www.vistrails.org/download/download.php?type=PUB&id=ipaw2006.pdf Managing Rapidly-Evolving Scientific Workflows] (by Juliana Freire, Claudio T. Silva, Steven P. Callahan, Emanuele Santos, Carlos E. Scheidegger and Huy T. Vo) Invited paper, in the proceedings of the International Provenance and Annotation Workshop (IPAW), 2006.<br />
<br />
[http://www.sci.utah.edu/publications/SCITechReports/UUSCI-2006-016.pdf Using Provenance to Streamline Data Exploration through Visualization] (by Steven P. Callahan, Juliana Freire, Emanuele Santos, Carlos E. Scheidegger, Claudio T. Silva and Huy T. Vo) SCI Institute Technical Report, No. UUSCI-2006-016, University of Utah, 2006.<br />
<br />
[http://www.sci.utah.edu/~cscheid/download.html?document=vis_by_analogy.pdf Querying and Creating Visualizations by Analogy] (by Carlos E. Scheidegger, Huy T. Vo, David Koop, Juliana Freire and Claudio T. Silva. IEEE Trans. Vis. Comp. Graph (Proceedings of IEEE Vis 2007) 13(6):1560-1567, 2007. IEEE Vis 2007.<br />
<br />
[http://www.iop.org/EJ/article/1742-6596/125/1/012100/jpconf8_125_012100.pdf Software Infrastructure for Exploratory Visualization and Data Analysis: Past, Present, and Future] (by C.Silva and J. Freire) In Journal of Physics: Conference Series, SciDAC 2008 Conference, 2008.<br />
<br />
[http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions for Visualization Pipelines] (by David Koop, Carlos E. Scheidegger, Steven P. Callahan, Huy T. Vo, Juliana Freire and Claudio T. Silva). In IEEE Transactions on Visualization and Computer Graphics, 14(6), pp. 1691-1698, 2008.<br />
<br />
VisMashup (I will add the link later) --[[User:Emanuele|Emanuele]] 10:55, 23 July 2009 (MDT)</div>Erandershttps://www.vistrails.org//index.php?title=Tutorials/Vis2009&diff=2053Tutorials/Vis20092009-07-23T21:09:27Z<p>Eranders: /* Basic hands-on usage of VisTrails (1h 30m) - Presenter: Manu */</p>
<hr />
<div>I organized this first part to contain the information required for the program.<br />
<br />
The webpage for last year's tutorials is here: http://vis.computer.org/VisWeek2008/session/tutorials.html<br />
<br />
= Provenance-Enabled Data Exploration and Visualization =<br />
<br />
== Level == <br />
Beginning to advandced.<br />
<br />
== Presenters ==<br />
Cláudio Silva, University of Utah<br><br />
Juliana Freire, University of Utah<br><br />
Emanuele Santos, University of Utah<br><br />
Erik Anderson, University of Utah<br><br />
<br />
== Abstract ==<br />
Scientists are now faced with an incredible volume of data to analyze. To explore and understand the data, they need to assemble complex workflows (pipelines) to manipulate the data and create insightful visual representations. Provenance is essential in this process. The provenance of a digital artifact contains information about the process and data used to derive the artifact. This information is essential for preserving the data, for determining the data's quality and authorship, for both reproducing and validating results -- all important elements of the scientific process. Provenance has shown to be particularly useful for enabling comparative visualization and data analysis. This tutorial will inform computational and visualization scientists, users and developers about different approaches to provenance and the trade-offs among them. Using the VisTrails project as a basis, we will cover different approaches to acquiring and reusing provenance, including techniques that attendees can use for provenance-enabling their own tools. The tutorial will also discuss uses of provenance that go beyond the ability to reproduce and share results.<br />
<br />
== Working Outline ==<br />
<br />
After discussion, it seems that the tutorial is best broken into two distinct pieces: A user-centric portion focused on using VisTrails, and a power-user or developer-centric portion focusing on plug-ins, mashups, etc.<br />
<br />
=== Introduction to Provenance and VisTrails (1h 30m) - Presenter: Claudio/Erik/Juliana/Manu (?) ===<br />
* Brief view of plugins and released features of VisTrails<br />
* Define provenance, explain why it is important for data analysis and visualization<br />
* Introduce VisTrails, explain the differences and similarities between VisTrails and other vis and scientific workflow systems<br />
** Say it is open source<br />
** Multi-platform: written in Python+QT<br />
** Downloaded 1000's of times<br />
** Shipped with packages: XXXYYYZZZ<br />
** User-contributed packages: XXXXXXX -- you can add your own! (more later)<br />
* Explain the version tree and the action-based provenance model<br />
* Show features that are enabled by the action-based provenance, and how they can help in the process of analyzing and visualizing data<br />
** Going back and forth on the tree<br />
** Automatic capture of changes<br />
** Compare different workflows and their results<br />
** Exploring parameter spaces <br />
** Querying workflows by example<br />
** Refining workflows by analogy<br />
* Discuss how the action-based provenance model can be combined with interactive tools<br />
** Give a brief overview of the plugins<br />
** Show videos for a couple of them and point to the detailed tutorial of how to build a plugin later.<br />
<br />
<br />
=== Basic hands-on usage of VisTrails (1h 30m) - Presenter: Manu ===<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/basic_handson.ppt<br />
* Building Simple Pipelines<br />
** VisTrails Builder overview<br />
** Adding and connecting modules<br />
** Setting parameters<br />
** Setting module labels<br />
** Accessing module documentation<br />
** Using modules for displaying results in the spreadsheet<br />
* Using the Spreadsheet<br />
** Spreadsheet overview<br />
** Syncing cells<br />
** Moving cells<br />
** Saving camera<br />
** Using Edit mode functionality<br />
* Using PythonSource<br />
** Defining and using input ports and output ports<br />
* Connecting to databases<br />
** Defining custom database connections<br />
** Loading a vistrail from the database<br />
** Saving a vistrail to the database<br />
* VisTrails as a Server<br />
** Environment Setup<br />
** Running VisTrails in Server Mode<br />
** Showing Examples to illustrate the types of requests that can be done<br />
*** Querying<br />
*** Executing<br />
*** Getting the result images<br />
<br />
=== Advanced hands-on usage of VisTrails (1h 30m) - Presenter: Erik ===<br />
This will all be in the context of a very specific example - We have recieved permission from Yvette Spitz to use the ROMS simulation for this. This allows us to give concrete examples that participants can follow along on their own as the tutorial progresses.<br />
<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/basic_handson.pdf<br />
<br />
* Organizational principles of the History Tree for Visualization creation and exploration<br />
** Multiple, independent workflows contained in the same version tree. This method of organization makes creating more complex visualization easier. <br />
* QBE, Analogies, Parameter Exploration -> New Version<br />
** First Query for visualizations supporting picking so that we can add this features by analogy to another version created from a parameter exploration over color map ranges. This will highlight data exploration and its interplay with the existing technologies inside of VisTrails<br />
* vtkInteractionHandlers - Slicing and dicing data<br />
** We will investigate, in detail, the specific requirements for adding advanced interaction capabilities to a VTK-based visualization. Specifically, we will create workflows in which we can perform arbitrary culling as well as slicing along all 3 principle axes.<br />
* PythonSource as callback definition - Picking specific elements<br />
** Callbacks allow many systems to fire unique events that can drive interactivity with visualizations. Here we will explore the details of implementing VTK-style picking in the ROMS data to change the scalar field being displayed in visualization.<br />
* The workflow debugger<br />
** The workflow debugger allows stateful inspection of Module input/outputs. These advanced features can be used to provide interactive debugging and exploration of individual Module processes and interim data products.<br />
* Transforming VTK pipelines into VisTrails workflows --- modified version of Dave's script to get all VTK example into a .vt, and show how to query/search that. As a summary, this will be shown and posted allowing people to search for a single VTK module to see how it must be connected and parameterized in order to be properly used.<br />
<br />
=== Developing a plug-in (30-40m) - Presenter: Manu ===<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/plugins.pdf<br />
* Plug-in architecture overview<br />
* Different implementation strategies<br />
** Attaching the host plugin to the main application<br />
***Callback mechanism<br />
*** Undo/Redo Stack<br />
** Communication between Host Plugin and Capture API<br />
*** callbacks<br />
*** Sockets<br />
* ParaView Plug-in Implementation<br />
** Explaining required changes to the source<br />
** Showing the limitations<br />
** Demo<br />
<br />
=== New Extensions to VisTrails (50-60m) - Presenter: Claudio/Erik/Juliana/Manu ===<br />
* Display Wall<br />
* Provenance Rich Publications<br />
* Mashups<br />
* Repository<br />
* Web-based execution (?)<br />
<br />
== Related Papers ==<br />
[http://www.vistrails.org/download/download.php?type=PUB&id=ipaw2006.pdf Managing Rapidly-Evolving Scientific Workflows] (by Juliana Freire, Claudio T. Silva, Steven P. Callahan, Emanuele Santos, Carlos E. Scheidegger and Huy T. Vo) Invited paper, in the proceedings of the International Provenance and Annotation Workshop (IPAW), 2006.<br />
<br />
[http://www.sci.utah.edu/publications/SCITechReports/UUSCI-2006-016.pdf Using Provenance to Streamline Data Exploration through Visualization] (by Steven P. Callahan, Juliana Freire, Emanuele Santos, Carlos E. Scheidegger, Claudio T. Silva and Huy T. Vo) SCI Institute Technical Report, No. UUSCI-2006-016, University of Utah, 2006.<br />
<br />
[http://www.sci.utah.edu/~cscheid/download.html?document=vis_by_analogy.pdf Querying and Creating Visualizations by Analogy] (by Carlos E. Scheidegger, Huy T. Vo, David Koop, Juliana Freire and Claudio T. Silva. IEEE Trans. Vis. Comp. Graph (Proceedings of IEEE Vis 2007) 13(6):1560-1567, 2007. IEEE Vis 2007.<br />
<br />
[http://www.iop.org/EJ/article/1742-6596/125/1/012100/jpconf8_125_012100.pdf Software Infrastructure for Exploratory Visualization and Data Analysis: Past, Present, and Future] (by C.Silva and J. Freire) In Journal of Physics: Conference Series, SciDAC 2008 Conference, 2008.<br />
<br />
[http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions for Visualization Pipelines] (by David Koop, Carlos E. Scheidegger, Steven P. Callahan, Huy T. Vo, Juliana Freire and Claudio T. Silva). In IEEE Transactions on Visualization and Computer Graphics, 14(6), pp. 1691-1698, 2008.<br />
<br />
VisMashup (I will add the link later) --[[User:Emanuele|Emanuele]] 10:55, 23 July 2009 (MDT)</div>Erandershttps://www.vistrails.org//index.php?title=Tutorials/Vis2009&diff=2052Tutorials/Vis20092009-07-23T21:08:43Z<p>Eranders: /* Basic hands-on usage of VisTrails (1h 30m) - Presenter: Manu */</p>
<hr />
<div>I organized this first part to contain the information required for the program.<br />
<br />
The webpage for last year's tutorials is here: http://vis.computer.org/VisWeek2008/session/tutorials.html<br />
<br />
= Provenance-Enabled Data Exploration and Visualization =<br />
<br />
== Level == <br />
Beginning to advandced.<br />
<br />
== Presenters ==<br />
Cláudio Silva, University of Utah<br><br />
Juliana Freire, University of Utah<br><br />
Emanuele Santos, University of Utah<br><br />
Erik Anderson, University of Utah<br><br />
<br />
== Abstract ==<br />
Scientists are now faced with an incredible volume of data to analyze. To explore and understand the data, they need to assemble complex workflows (pipelines) to manipulate the data and create insightful visual representations. Provenance is essential in this process. The provenance of a digital artifact contains information about the process and data used to derive the artifact. This information is essential for preserving the data, for determining the data's quality and authorship, for both reproducing and validating results -- all important elements of the scientific process. Provenance has shown to be particularly useful for enabling comparative visualization and data analysis. This tutorial will inform computational and visualization scientists, users and developers about different approaches to provenance and the trade-offs among them. Using the VisTrails project as a basis, we will cover different approaches to acquiring and reusing provenance, including techniques that attendees can use for provenance-enabling their own tools. The tutorial will also discuss uses of provenance that go beyond the ability to reproduce and share results.<br />
<br />
== Working Outline ==<br />
<br />
After discussion, it seems that the tutorial is best broken into two distinct pieces: A user-centric portion focused on using VisTrails, and a power-user or developer-centric portion focusing on plug-ins, mashups, etc.<br />
<br />
=== Introduction to Provenance and VisTrails (1h 30m) - Presenter: Claudio/Erik/Juliana/Manu (?) ===<br />
* Brief view of plugins and released features of VisTrails<br />
* Define provenance, explain why it is important for data analysis and visualization<br />
* Introduce VisTrails, explain the differences and similarities between VisTrails and other vis and scientific workflow systems<br />
** Say it is open source<br />
** Multi-platform: written in Python+QT<br />
** Downloaded 1000's of times<br />
** Shipped with packages: XXXYYYZZZ<br />
** User-contributed packages: XXXXXXX -- you can add your own! (more later)<br />
* Explain the version tree and the action-based provenance model<br />
* Show features that are enabled by the action-based provenance, and how they can help in the process of analyzing and visualizing data<br />
** Going back and forth on the tree<br />
** Automatic capture of changes<br />
** Compare different workflows and their results<br />
** Exploring parameter spaces <br />
** Querying workflows by example<br />
** Refining workflows by analogy<br />
* Discuss how the action-based provenance model can be combined with interactive tools<br />
** Give a brief overview of the plugins<br />
** Show videos for a couple of them and point to the detailed tutorial of how to build a plugin later.<br />
<br />
<br />
=== Basic hands-on usage of VisTrails (1h 30m) - Presenter: Manu ===<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/adv_handson.ppt<br />
* Building Simple Pipelines<br />
** VisTrails Builder overview<br />
** Adding and connecting modules<br />
** Setting parameters<br />
** Setting module labels<br />
** Accessing module documentation<br />
** Using modules for displaying results in the spreadsheet<br />
* Using the Spreadsheet<br />
** Spreadsheet overview<br />
** Syncing cells<br />
** Moving cells<br />
** Saving camera<br />
** Using Edit mode functionality<br />
* Using PythonSource<br />
** Defining and using input ports and output ports<br />
* Connecting to databases<br />
** Defining custom database connections<br />
** Loading a vistrail from the database<br />
** Saving a vistrail to the database<br />
* VisTrails as a Server<br />
** Environment Setup<br />
** Running VisTrails in Server Mode<br />
** Showing Examples to illustrate the types of requests that can be done<br />
*** Querying<br />
*** Executing<br />
*** Getting the result images<br />
<br />
=== Advanced hands-on usage of VisTrails (1h 30m) - Presenter: Erik ===<br />
This will all be in the context of a very specific example - We have recieved permission from Yvette Spitz to use the ROMS simulation for this. This allows us to give concrete examples that participants can follow along on their own as the tutorial progresses.<br />
<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/basic_handson.pdf<br />
<br />
* Organizational principles of the History Tree for Visualization creation and exploration<br />
** Multiple, independent workflows contained in the same version tree. This method of organization makes creating more complex visualization easier. <br />
* QBE, Analogies, Parameter Exploration -> New Version<br />
** First Query for visualizations supporting picking so that we can add this features by analogy to another version created from a parameter exploration over color map ranges. This will highlight data exploration and its interplay with the existing technologies inside of VisTrails<br />
* vtkInteractionHandlers - Slicing and dicing data<br />
** We will investigate, in detail, the specific requirements for adding advanced interaction capabilities to a VTK-based visualization. Specifically, we will create workflows in which we can perform arbitrary culling as well as slicing along all 3 principle axes.<br />
* PythonSource as callback definition - Picking specific elements<br />
** Callbacks allow many systems to fire unique events that can drive interactivity with visualizations. Here we will explore the details of implementing VTK-style picking in the ROMS data to change the scalar field being displayed in visualization.<br />
* The workflow debugger<br />
** The workflow debugger allows stateful inspection of Module input/outputs. These advanced features can be used to provide interactive debugging and exploration of individual Module processes and interim data products.<br />
* Transforming VTK pipelines into VisTrails workflows --- modified version of Dave's script to get all VTK example into a .vt, and show how to query/search that. As a summary, this will be shown and posted allowing people to search for a single VTK module to see how it must be connected and parameterized in order to be properly used.<br />
<br />
=== Developing a plug-in (30-40m) - Presenter: Manu ===<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/plugins.pdf<br />
* Plug-in architecture overview<br />
* Different implementation strategies<br />
** Attaching the host plugin to the main application<br />
***Callback mechanism<br />
*** Undo/Redo Stack<br />
** Communication between Host Plugin and Capture API<br />
*** callbacks<br />
*** Sockets<br />
* ParaView Plug-in Implementation<br />
** Explaining required changes to the source<br />
** Showing the limitations<br />
** Demo<br />
<br />
=== New Extensions to VisTrails (50-60m) - Presenter: Claudio/Erik/Juliana/Manu ===<br />
* Display Wall<br />
* Provenance Rich Publications<br />
* Mashups<br />
* Repository<br />
* Web-based execution (?)<br />
<br />
== Related Papers ==<br />
[http://www.vistrails.org/download/download.php?type=PUB&id=ipaw2006.pdf Managing Rapidly-Evolving Scientific Workflows] (by Juliana Freire, Claudio T. Silva, Steven P. Callahan, Emanuele Santos, Carlos E. Scheidegger and Huy T. Vo) Invited paper, in the proceedings of the International Provenance and Annotation Workshop (IPAW), 2006.<br />
<br />
[http://www.sci.utah.edu/publications/SCITechReports/UUSCI-2006-016.pdf Using Provenance to Streamline Data Exploration through Visualization] (by Steven P. Callahan, Juliana Freire, Emanuele Santos, Carlos E. Scheidegger, Claudio T. Silva and Huy T. Vo) SCI Institute Technical Report, No. UUSCI-2006-016, University of Utah, 2006.<br />
<br />
[http://www.sci.utah.edu/~cscheid/download.html?document=vis_by_analogy.pdf Querying and Creating Visualizations by Analogy] (by Carlos E. Scheidegger, Huy T. Vo, David Koop, Juliana Freire and Claudio T. Silva. IEEE Trans. Vis. Comp. Graph (Proceedings of IEEE Vis 2007) 13(6):1560-1567, 2007. IEEE Vis 2007.<br />
<br />
[http://www.iop.org/EJ/article/1742-6596/125/1/012100/jpconf8_125_012100.pdf Software Infrastructure for Exploratory Visualization and Data Analysis: Past, Present, and Future] (by C.Silva and J. Freire) In Journal of Physics: Conference Series, SciDAC 2008 Conference, 2008.<br />
<br />
[http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions for Visualization Pipelines] (by David Koop, Carlos E. Scheidegger, Steven P. Callahan, Huy T. Vo, Juliana Freire and Claudio T. Silva). In IEEE Transactions on Visualization and Computer Graphics, 14(6), pp. 1691-1698, 2008.<br />
<br />
VisMashup (I will add the link later) --[[User:Emanuele|Emanuele]] 10:55, 23 July 2009 (MDT)</div>Erandershttps://www.vistrails.org//index.php?title=Tutorials/Vis2009&diff=2051Tutorials/Vis20092009-07-23T21:06:51Z<p>Eranders: /* Advanced hands-on usage of VisTrails (1h 30m) - Presenter: Erik */</p>
<hr />
<div>I organized this first part to contain the information required for the program.<br />
<br />
The webpage for last year's tutorials is here: http://vis.computer.org/VisWeek2008/session/tutorials.html<br />
<br />
= Provenance-Enabled Data Exploration and Visualization =<br />
<br />
== Level == <br />
Beginning to advandced.<br />
<br />
== Presenters ==<br />
Cláudio Silva, University of Utah<br><br />
Juliana Freire, University of Utah<br><br />
Emanuele Santos, University of Utah<br><br />
Erik Anderson, University of Utah<br><br />
<br />
== Abstract ==<br />
Scientists are now faced with an incredible volume of data to analyze. To explore and understand the data, they need to assemble complex workflows (pipelines) to manipulate the data and create insightful visual representations. Provenance is essential in this process. The provenance of a digital artifact contains information about the process and data used to derive the artifact. This information is essential for preserving the data, for determining the data's quality and authorship, for both reproducing and validating results -- all important elements of the scientific process. Provenance has shown to be particularly useful for enabling comparative visualization and data analysis. This tutorial will inform computational and visualization scientists, users and developers about different approaches to provenance and the trade-offs among them. Using the VisTrails project as a basis, we will cover different approaches to acquiring and reusing provenance, including techniques that attendees can use for provenance-enabling their own tools. The tutorial will also discuss uses of provenance that go beyond the ability to reproduce and share results.<br />
<br />
== Working Outline ==<br />
<br />
After discussion, it seems that the tutorial is best broken into two distinct pieces: A user-centric portion focused on using VisTrails, and a power-user or developer-centric portion focusing on plug-ins, mashups, etc.<br />
<br />
=== Introduction to Provenance and VisTrails (1h 30m) - Presenter: Claudio/Erik/Juliana/Manu (?) ===<br />
* Brief view of plugins and released features of VisTrails<br />
* Define provenance, explain why it is important for data analysis and visualization<br />
* Introduce VisTrails, explain the differences and similarities between VisTrails and other vis and scientific workflow systems<br />
** Say it is open source<br />
** Multi-platform: written in Python+QT<br />
** Downloaded 1000's of times<br />
** Shipped with packages: XXXYYYZZZ<br />
** User-contributed packages: XXXXXXX -- you can add your own! (more later)<br />
* Explain the version tree and the action-based provenance model<br />
* Show features that are enabled by the action-based provenance, and how they can help in the process of analyzing and visualizing data<br />
** Going back and forth on the tree<br />
** Automatic capture of changes<br />
** Compare different workflows and their results<br />
** Exploring parameter spaces <br />
** Querying workflows by example<br />
** Refining workflows by analogy<br />
* Discuss how the action-based provenance model can be combined with interactive tools<br />
** Give a brief overview of the plugins<br />
** Show videos for a couple of them and point to the detailed tutorial of how to build a plugin later.<br />
<br />
<br />
=== Basic hands-on usage of VisTrails (1h 30m) - Presenter: Manu ===<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/basic_handson.pdf<br />
* Building Simple Pipelines<br />
** VisTrails Builder overview<br />
** Adding and connecting modules<br />
** Setting parameters<br />
** Setting module labels<br />
** Accessing module documentation<br />
** Using modules for displaying results in the spreadsheet<br />
* Using the Spreadsheet<br />
** Spreadsheet overview<br />
** Syncing cells<br />
** Moving cells<br />
** Saving camera<br />
** Using Edit mode functionality<br />
* Using PythonSource<br />
** Defining and using input ports and output ports<br />
* Connecting to databases<br />
** Defining custom database connections<br />
** Loading a vistrail from the database<br />
** Saving a vistrail to the database<br />
* VisTrails as a Server<br />
** Environment Setup<br />
** Running VisTrails in Server Mode<br />
** Showing Examples to illustrate the types of requests that can be done<br />
*** Querying<br />
*** Executing<br />
*** Getting the result images<br />
<br />
=== Advanced hands-on usage of VisTrails (1h 30m) - Presenter: Erik ===<br />
This will all be in the context of a very specific example - We have recieved permission from Yvette Spitz to use the ROMS simulation for this. This allows us to give concrete examples that participants can follow along on their own as the tutorial progresses.<br />
<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/basic_handson.pdf<br />
<br />
* Organizational principles of the History Tree for Visualization creation and exploration<br />
** Multiple, independent workflows contained in the same version tree. This method of organization makes creating more complex visualization easier. <br />
* QBE, Analogies, Parameter Exploration -> New Version<br />
** First Query for visualizations supporting picking so that we can add this features by analogy to another version created from a parameter exploration over color map ranges. This will highlight data exploration and its interplay with the existing technologies inside of VisTrails<br />
* vtkInteractionHandlers - Slicing and dicing data<br />
** We will investigate, in detail, the specific requirements for adding advanced interaction capabilities to a VTK-based visualization. Specifically, we will create workflows in which we can perform arbitrary culling as well as slicing along all 3 principle axes.<br />
* PythonSource as callback definition - Picking specific elements<br />
** Callbacks allow many systems to fire unique events that can drive interactivity with visualizations. Here we will explore the details of implementing VTK-style picking in the ROMS data to change the scalar field being displayed in visualization.<br />
* The workflow debugger<br />
** The workflow debugger allows stateful inspection of Module input/outputs. These advanced features can be used to provide interactive debugging and exploration of individual Module processes and interim data products.<br />
* Transforming VTK pipelines into VisTrails workflows --- modified version of Dave's script to get all VTK example into a .vt, and show how to query/search that. As a summary, this will be shown and posted allowing people to search for a single VTK module to see how it must be connected and parameterized in order to be properly used.<br />
<br />
=== Developing a plug-in (30-40m) - Presenter: Manu ===<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/plugins.pdf<br />
* Plug-in architecture overview<br />
* Different implementation strategies<br />
** Attaching the host plugin to the main application<br />
***Callback mechanism<br />
*** Undo/Redo Stack<br />
** Communication between Host Plugin and Capture API<br />
*** callbacks<br />
*** Sockets<br />
* ParaView Plug-in Implementation<br />
** Explaining required changes to the source<br />
** Showing the limitations<br />
** Demo<br />
<br />
=== New Extensions to VisTrails (50-60m) - Presenter: Claudio/Erik/Juliana/Manu ===<br />
* Display Wall<br />
* Provenance Rich Publications<br />
* Mashups<br />
* Repository<br />
* Web-based execution (?)<br />
<br />
== Related Papers ==<br />
[http://www.vistrails.org/download/download.php?type=PUB&id=ipaw2006.pdf Managing Rapidly-Evolving Scientific Workflows] (by Juliana Freire, Claudio T. Silva, Steven P. Callahan, Emanuele Santos, Carlos E. Scheidegger and Huy T. Vo) Invited paper, in the proceedings of the International Provenance and Annotation Workshop (IPAW), 2006.<br />
<br />
[http://www.sci.utah.edu/publications/SCITechReports/UUSCI-2006-016.pdf Using Provenance to Streamline Data Exploration through Visualization] (by Steven P. Callahan, Juliana Freire, Emanuele Santos, Carlos E. Scheidegger, Claudio T. Silva and Huy T. Vo) SCI Institute Technical Report, No. UUSCI-2006-016, University of Utah, 2006.<br />
<br />
[http://www.sci.utah.edu/~cscheid/download.html?document=vis_by_analogy.pdf Querying and Creating Visualizations by Analogy] (by Carlos E. Scheidegger, Huy T. Vo, David Koop, Juliana Freire and Claudio T. Silva. IEEE Trans. Vis. Comp. Graph (Proceedings of IEEE Vis 2007) 13(6):1560-1567, 2007. IEEE Vis 2007.<br />
<br />
[http://www.iop.org/EJ/article/1742-6596/125/1/012100/jpconf8_125_012100.pdf Software Infrastructure for Exploratory Visualization and Data Analysis: Past, Present, and Future] (by C.Silva and J. Freire) In Journal of Physics: Conference Series, SciDAC 2008 Conference, 2008.<br />
<br />
[http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions for Visualization Pipelines] (by David Koop, Carlos E. Scheidegger, Steven P. Callahan, Huy T. Vo, Juliana Freire and Claudio T. Silva). In IEEE Transactions on Visualization and Computer Graphics, 14(6), pp. 1691-1698, 2008.<br />
<br />
VisMashup (I will add the link later) --[[User:Emanuele|Emanuele]] 10:55, 23 July 2009 (MDT)</div>Erandershttps://www.vistrails.org//index.php?title=Tutorials/Vis2009&diff=2046Tutorials/Vis20092009-07-23T15:43:42Z<p>Eranders: /* Advanced hands-on usage of VisTrails (1h 30m) - Presenter: Erik */</p>
<hr />
<div>I organized this first part to contain the information required for the program.<br />
<br />
The webpage for last year's tutorials is here: http://vis.computer.org/VisWeek2008/session/tutorials.html<br />
<br />
= Provenance-Enabled Data Exploration and Visualization =<br />
<br />
== Level == <br />
Beginning to advandced.<br />
<br />
== Presenters ==<br />
Cláudio Silva, University of Utah<br><br />
Juliana Freire, University of Utah<br><br />
Emanuele Santos, University of Utah<br><br />
Erik Anderson, University of Utah<br><br />
<br />
== Abstract ==<br />
Scientists are now faced with an incredible volume of data to analyze. To explore and understand the data, they need to assemble complex workflows (pipelines) to manipulate the data and create insightful visual representations. Provenance is essential in this process. The provenance of a digital artifact contains information about the process and data used to derive the artifact. This information is essential for preserving the data, for determining the data's quality and authorship, for both reproducing and validating results -- all important elements of the scientific process. Provenance has shown to be particularly useful for enabling comparative visualization and data analysis. This tutorial will inform computational and visualization scientists, users and developers about different approaches to provenance and the trade-offs among them. Using the VisTrails project as a basis, we will cover different approaches to acquiring and reusing provenance, including techniques that attendees can use for provenance-enabling their own tools. The tutorial will also discuss uses of provenance that go beyond the ability to reproduce and share results.<br />
<br />
== Working Outline ==<br />
<br />
After discussion, it seems that the tutorial is best broken into two distinct pieces: A user-centric portion focused on using VisTrails, and a power-user or developer-centric portion focusing on plug-ins, mashups, etc.<br />
<br />
=== Introduction to Provenance and VisTrails (1h 30m) - Presenter: Claudio/Erik/Juliana/Manu (?) ===<br />
* Brief view of plugins and released features of VisTrails<br />
* Define provenance, explain why it is important for data analysis and visualization<br />
* Introduce VisTrails, explain the differences and similarities between VisTrails and other vis and scientific workflow systems<br />
** Say it is open source<br />
** Multi-platform: written in Python+QT<br />
** Downloaded 1000's of times<br />
** Shipped with packages: XXXYYYZZZ<br />
** User-contributed packages: XXXXXXX -- you can add your own! (more later)<br />
* Explain the version tree and the action-based provenance model<br />
* Show features that are enabled by the action-based provenance, and how they can help in the process of analyzing and visualizing data<br />
** Going back and forth on the tree<br />
** Automatic capture of changes<br />
** Compare different workflows and their results<br />
** Exploring parameter spaces <br />
** Querying workflows by example<br />
** Refining workflows by analogy<br />
* Discuss how the action-based provenance model can be combined with interactive tools<br />
** Give a brief overview of the plugins<br />
** Show videos for a couple of them and point to the detailed tutorial of how to build a plugin later.<br />
<br />
<br />
=== Basic hands-on usage of VisTrails (1h 30m) - Presenter: Manu ===<br />
Slides: https://vgc.sci.utah.edu/svn/tutorials/Vis2009/slides/basic_handson.pdf<br />
* Building Simple Pipelines<br />
** VisTrails Builder overview<br />
** Adding and connecting modules<br />
** Setting parameters<br />
** Setting module labels<br />
** Accessing module documentation<br />
** Using modules for displaying results in the spreadsheet<br />
* Using the Spreadsheet<br />
** Spreadsheet overview<br />
** Syncing cells<br />
** Moving cells<br />
** Saving camera<br />
** Using Edit mode functionality<br />
* Using PythonSource<br />
** Defining and using input ports and output ports<br />
* Connecting to databases<br />
** Defining custom database connections<br />
** Loading a vistrail from the database<br />
** Saving a vistrail to the database<br />
* VisTrails as a Server<br />
** Environment Setup<br />
** Running VisTrails in Server Mode<br />
** Showing Examples to illustrate the types of requests that can be done<br />
*** Querying<br />
*** Executing<br />
*** Getting the result images<br />
<br />
=== Advanced hands-on usage of VisTrails (1h 30m) - Presenter: Erik ===<br />
This will all be in the context of a very specific example - We have recieved permission from Yvette Spitz to use the ROMS simulation for this. This allows us to give concrete examples that participants can follow along on their own as the tutorial progresses. Slides and .vt files to be distributed will be completed shortly.<br />
* Organizational principles of the History Tree for Visualization creation and exploration<br />
** Multiple, independent workflows contained in the same version tree. This method of organization makes creating more complex visualization easier. <br />
* QBE, Analogies, Parameter Exploration -> New Version<br />
** First Query for visualizations supporting picking so that we can add this features by analogy to another version created from a parameter exploration over color map ranges. This will highlight data exploration and its interplay with the existing technologies inside of VisTrails<br />
* vtkInteractionHandlers - Slicing and dicing data<br />
** We will investigate, in detail, the specific requirements for adding advanced interaction capabilities to a VTK-based visualization. Specifically, we will create workflows in which we can perform arbitrary culling as well as slicing along all 3 principle axes.<br />
* PythonSource as callback definition - Picking specific elements<br />
** Callbacks allow many systems to fire unique events that can drive interactivity with visualizations. Here we will explore the details of implementing VTK-style picking in the ROMS data to change the scalar field being displayed in visualization.<br />
* The workflow debugger<br />
** The workflow debugger allows stateful inspection of Module input/outputs. These advanced features can be used to provide interactive debugging and exploration of individual Module processes and interim data products.<br />
* Transforming VTK pipelines into VisTrails workflows --- modified version of Dave's script to get all VTK example into a .vt, and show how to query/search that. As a summary, this will be shown and posted allowing people to search for a single VTK module to see how it must be connected and parameterized in order to be properly used.<br />
<br />
=== Developing a plug-in (30-40m) - Presenter: Manu ===<br />
* Plug-in architecture overview<br />
* Different implementation strategies<br />
** Attaching the host plugin to the main application<br />
***Callback mechanism<br />
*** Undo/Redo Stack<br />
** Communication between Host Plugin and Capture API<br />
*** callbacks<br />
*** Sockets<br />
* ParaView Plug-in Implementation<br />
** Explaining required changes to the source<br />
** Showing the limitations<br />
** Demo<br />
<br />
=== New Extensions to VisTrails (50-60m) - Presenter: Claudio/Erik/Juliana/Manu ===<br />
* Display Wall<br />
* Provenance Rich Publications<br />
* Mashups<br />
* Repository<br />
* Web-based execution (?)</div>Erandershttps://www.vistrails.org//index.php?title=Tutorials/Vis2009&diff=2033Tutorials/Vis20092009-07-21T19:58:13Z<p>Eranders: New page: == Vis 2009 Tutorial == After discussion, it seems that the tutorial is best broken into two distinct pieces: A user-centric portion focused on using VisTrails, and a power-user or devel...</p>
<hr />
<div>== Vis 2009 Tutorial ==<br />
<br />
After discussion, it seems that the tutorial is best broken into two distinct pieces: A user-centric portion focused on using VisTrails, and a power-user or developer-centric portion focusing on plug-ins, mashups, etc.<br />
<br />
=== Working Outline ===<br />
<br />
* Introduction to Provenance and VisTrails (1h 30m) - Presenter: Claudio/Erik/Juliana/Manu (?)<br />
** Brief view of plugins and released features of VisTrails<br />
<br />
* Basic hands-on usage of VisTrails (1h 30m) - Presenter: Manu (?)<br />
** Building Simple Pipelines<br />
** Using PythonSource<br />
** Connecting to databases<br />
** VisTrails as a Server<br />
<br />
* Advanced hands-on usage of VisTrails (1h 30m) - Presenter: Erik<br />
** This will all be in the context of a very specific example - My first thought was to use Gil's data, as it has many very nice features that build a nice story, but problems with releasing data are pushing me towards a CMOP example.<br />
** Organizational principles of the History Tree - QBE, Analogies, Parameter Exploration -> New Version<br />
** vtkInteractionHandlers - Slicing and dicing data<br />
** PythonSource as callback definition - Picking specific elements<br />
** The workflow debugger<br />
<br />
* Developing a plug-in (30-40m) - Presenter: Manu (?)<br />
** Plug-in architecture overview<br />
** Different implementation strategies<br />
** ParaView Plug-in demo<br />
<br />
* New Extensions to VisTrails (50-60m) - Presenter: Claudio/Erik/Juliana/Manu (?)<br />
** Display Wall<br />
** Provenance Rich Publications<br />
** Mashups<br />
** Repository<br />
** Web-based execution (?)</div>Erandershttps://www.vistrails.org//index.php?title=Cmop&diff=1977Cmop2009-06-12T21:07:39Z<p>Eranders: /* NSF Site Visit */</p>
<hr />
<div>== NSF Site Visit ==<br />
<br />
In order to get everything done for the upcoming NSF site visit, I have created this page to share both temporary and complete results as well as to hold discussions on visualization methods being used, why they are employed, and how to better depict data for the scientists in Oregon. Below are links to images and animations showing the current state of visualization of the curvilinear grid simulation sent to me by Yvette. <br />
<br />
=== Presentation ===<br />
<br />
* [http://www.cs.utah.edu/~juliana/talks/cmop-site-visit2009.ppt '''Draft''' Presentation in PPT] ([http://www.cs.utah.edu/~juliana/talks/cmop-site-visit2009.pdf PDF])<br />
([http://www.cs.utah.edu/~juliana/talks/cmop-site-visit2009.zip ZIP file with movies])<br />
<br />
=== VisTrails Demo ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/nsf_demo.vt nsf_demo.vt]<br />
** The .vt file to be used for the demo - The versions differ only in how the dataset is fetched.<br />
<br />
* [http://www.sci.utah.edu/~eranders/data/0007009.vtk 0007009.vtk]<br />
** The dataset to be used in the demo - If the Remote File version is run, this file need not be downloaded directly; however, it is approx. 85 MB so it could take some time. If the local version is downloaded and used, the SetFileName parameter of the vtkStructuredGridReader module (at the top of the workflow) must be changed to reflect the path to this file.<br />
<br />
=== Images ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_o2.png 1.png] <br />
** This visualization uses a combination of iso-surfaces of phytoplankton concentration and O2 saturation of the domain.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp.png 2.png]<br />
** Same as above only using Temperature instead of O2 saturation<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp_vs_o2.png 3.png]<br />
** Using the same iso-surfaces extracted in the above visualizations, we have loaded the O2 saturation scalar field and determined the values of this field on the phytoplankton concentration surfaces. Additionally, the entire domain is shown using an interactive cutting plane that determines the value of the 2D slice visualization as before.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field2.png 4.png]<br />
** Improving on the previous visualization, I am now providing equally spaced contours of the domain in the 2D slice-based visualization. This provides a much more intuitive visualization of the scalar field. Additionally, while the large 3D domain uses a relatively narrow range of the present scalar values for the colormap, I have increased this range for the 2D case. This provides a more complete visualization of the depth-based components present in the slices while accentuating surface variations in the 3D domain. I have also included the location of each slice in the dataset coordinates in the scalar bar associated with the 2D slice.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/salt_vel_vector_glyphs.png 5.png]<br />
** Initial visualization of the extracted velocity field of the regular grid. I use salt for coloring the domain and velocity magnitude for the vectors. This is just an initial visualization and will be refined. The placement of the velocity glyphs is interactively defined by using a seeding plane (Not shown).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field_vectors.png 6.png]<br />
** Building off of 4.png and 5.png, I've added the vector field as scaled, but uncolored, glyphs representing the velocity of the water in the simulation. The placement of vectors is determined by a user-defined, interactive seeding plane. I've also modified the underlying workflows to help simplify changing timesteps.<br />
<br />
=== Animations ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/test.avi 1.avi] | [http://www.sci.utah.edu/~eranders/screens/test.mov .mov]<br />
** This is a test animation generated in VisTrails depicting two types of planktons with temperatures and the flow field. I still haven't gotten the colormaps exactly correct yet, but that should be fixed shortly.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/2.avi 2.avi] | [http://www.sci.utah.edu/~eranders/screens/2.mov .mov]<br />
** This animation is generated in VisTrails similarly to the first one. Iso-surfaces of planktons are given as level-sets defined as percentages of the valid range of data. Additionally, adaptive colormapping provides a much better coloring scheme given the pretty high dynamic range of the data. The flow field is shown as arrow glyphs colored by the temperature at each point. This allows us to get a feel for the water temperature even after the domain colored by this field is clipped to expose the plankton concentrations. These animations make use of 69 of the available timesteps in the simulation - approximately half. I will be converting the remaining timesteps into a more usable form and will post a video using all of them (barring any feedback for changes for the visualization).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/3.avi 3.avi] | [http://www.sci.utah.edu/~eranders/screens/3.mov .mov]<br />
** This animation was generated in response to several of the comments I got regarding the first 2 attempts. The flow field remains largely unchanged; however, I have set an adaptive colormap in order to render the temperature values as I could. If this is not appropriate, please let me know a static range of scalar values by which I can set the colormap. This is necessary due to the large dynamic range of this particular scalar field in the dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/4.avi 4.avi] | [http://www.sci.utah.edu/~eranders/screens/4.mov .mov]<br />
** This animation was generated from the SELFE simulation using 24 timesteps looping 1 time. The salinity of the domain is being shown in concert with 4 iso-surfaces of salinity in the water to highlight both depth information as well as give an indication of the gradients of this field.<br />
<br />
==== Flow Field Animations ====<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/flow_1.mov flow_1.mov]<br />
** This video is the raw video captured to show visualization of dynamic flow fields. Although it's large now, it will be edited a little to cut unnecessary parts and text-based comments will be added to clarify what is going on.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/flow_2.mov flow_2.mov]<br />
** This video is the raw video captured to show visualization of dynamic flow fields. Although it's large now, it will be edited a little to cut unnecessary parts and text-based comments will be added to clarify what is going on. This video visualizes all 120 timesteps of the flow field I have.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/still.mov still.mov]<br />
** Using all 120 timesteps I have created a visualization of the dynamic flow field. The screen-capture utility was only able to support approx. 4 frames-per-second, but the movie still looks fairly good. I am working to improve the quality of the video, and will hopefully end up with a smoother version.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/interaction.mov interaction.mov]<br />
** Using all 120 timesteps I have created a visualization of the dynamic flow field. The screen-capture utility was only able to support approx. 4 frames-per-second, but the movie still looks fairly good. This video is similar to the previous one (still.mov) but I take the opportunity to interact with the visualization by rotating and zooming. Like the previous one, I am working to improve the quality of the video, and will hopefully end up with a smoother version.<br />
<br />
=== New Horizon Images ===<br />
<br />
Please note that although the cast data does not currently have any good spatial reference, we are currently working on converting bathymetry information from one of the simulations to the lat/long coordinate frame. This will give the 3D renderings a good spatial context with which we can view them.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_001.png scatterPlots.png]<br />
** The scatter plots graph measurements of time, oxygen, temperature, salinity and conductivity against the changes in pressure. This image is an initial visualization of the readings made by the vessel New Horizon at Station and Cast NH-3. The data is now readable, and hopefully these initial plots will inspire more sophisticated visualizations.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_1thru10.png combinePlot.png]<br />
** The scatter plot compares the salinity versus pressure plots for the data sets measured at 10 separate sites, overlaying all of the measurements using semi-transparent points.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_2.png casts_1.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. Each data point is colored by salinity. <br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_1.png casts_2.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the lower portion of the data) of the same dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_3.png casts_3.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the upper portion of the data) of the same dataset.<br />
<br />
=== Software ===<br />
<br />
After installing VisTrails, you must have the following 2 packages installed for VisTrails to use. Simply unzip these into the directory: $HOME\.vistrails\userpackages<br />
<br />
* Required Packages<br />
** NumSciPy [http://www.sci.utah.edu/~eranders/NumSciPy.tar.gz NumSciPy.tar.gz]<br />
** Selfe [http://www.sci.utah.edu/~eranders/CMOP-SELFE.tar.gz CMOP-SELFE.tar.gz]<br />
<br />
* VisTrails<br />
** Mac Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-mac-10.5-intel-1.3-rc2-rev1495.dmg .dmg]<br />
** Windows Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-setup-1.3rc2-rev1494.zip .zip]<br />
<br />
* .vt files<br />
** [http://www.sci.utah.edu/~eranders/data/reg.vt reg.vt]<br />
<br />
* Sample data files<br />
** http://www.sci.utah.edu/~eranders/data/OR_rect_3d_grid_z.nc GridPak Geometry]<br />
** http://www.sci.utah.edu/~eranders/data/OR_2001_nsv3_avg_0006.nc 0006.nc]<br />
<br />
<br />
After installing VisTrails and unpacking the required packages into the proper directory, start VisTrails. At this point, 2 windows will open - the spreadsheet and the builder window. The builder window is where visualizations are specified and the spreadsheet then displays the results of their execution. To enable the required packages, Go to the VisTrails menu and select Preferences. This will bring up a new window with a Module Packages tab. Go to this tab and select NumSciPy from the disabled packages list and enable it. Then do the same for the CMOP-SELFE package. With these module packages enabled you can open the reg.vt file posted above.<br />
<br />
Once this file is open, the builder window will display multiple ovals. Each oval represents a visualization. Select the appropriate visualization and press the Execute button. The results will then be displayed in the appropriate spreadsheet cells. However, before this executes properly, you may need to change filenames. To do this, enter the Pipeline mode by pressing the Pipeline button in the builder window. This will allow you to edit the visualization specification. The first filenames to change are in the Gridpak Reader Modules. These files specify the geometry to use for the visualization (for me it's OR_rect_3d_grid_z.nc) The Selfe Array Reader modules then need to be changed to the appropriate filenames for the timestep you wish to display. It is also here that you specify the appropriate scalar fields to use in the visualization. <br />
<br />
As an example:<br />
* Open reg.vt<br />
* Select the oval titled "3 fields"<br />
* Enter Pipeline mode<br />
* Change the filenames as appropriate on 3 Gridpak Reader and 3 Selfe Array Reader Modules. If you forget one, it will turn red on execution to indicate an error.<br />
* The spreadsheet will now have 2 windows with visualizations present. The left pane is the 3D view and the right is a 2D slice.<br />
** You may notice scalar bars are overlapping. To fix this, press 'a' and click and drag on a scalar bar. This will move it allowing you to resize and position it as you like. To select the other bar, press 'b' and do the same. If you find you are accidentally moving the bars instead of the model, press 'a' and 'b' again to disable the scalar bar interactions<br />
* To rotate, zoom, and pan the model, use your mouse. Left-click and drag controls rotation. Right-click and drag (apple+click) or the mouse wheel controls zooming and middle-click (I'm not sure how to do this on a 1 button mouse) controls panning<br />
* To set the slice and cut away some of the domain, press 'i' This enables the interactive cutting plane. To move it, left-click and drag on the white portion of the plane. You can then click on the white arrow normal to the plane to rotate the plane. The 2D slice will then update with the slice intersecting the small sphere on the cutting plane. The location of the plane (in native (stc?) coordinates will be shown along with the slice). <br />
<br />
* Particle Tracer<br />
** Windows Binary<br />
<br />
* Particle Tracer Files<br />
** Timestep 1<br />
** Timestep 2<br />
<br />
=== Upcoming Visualizations ===<br />
<br />
Particle tracing for dynamic vector field visualizations<br />
<br />
I'm having a small issue generating the appropriate vector field from the netCDF files I have. This is due to the fact that each component of the vector exists in a different coordinate space. From some research I've done, it seems like it's based on an Arakawa C Grid. This is not a game-stopping problem, but will take some time to get things figured out. This will be an important question to be resolved in my conversations with Yvette later today (Thurs. May 28). For now, I am planning on extracting 3 different scalar fields (each with its own coordinate system) and then interpolating these values onto the domain of the scalars (the rho-grid) to coalesce the data.<br />
<br />
I'm not entirely sure how to generate the appropriate vector field, and at first this will be further limited by the data type - the visualization software requires regular grids instead of curvilinear ones as we have. There are several possible fixes to this:<br />
<br />
* Generate a large regular grid by embedding the curvilinear grid in a regularly gridded space. This is computationally expensive, but need only be done once per time-step and can be done with relatively little development effort - this will be the first step.<br />
<br />
* Generate a transformation function to apply to the regular grid as a post-processing step. This is better than the first one, although more time-consuming. <br />
<br />
* Modify the renderer to respect curvilinear grids. This is the preferred option, but takes the most time.</div>Erandershttps://www.vistrails.org//index.php?title=Cmop&diff=1971Cmop2009-06-11T16:35:21Z<p>Eranders: /* Flow Field Animations */</p>
<hr />
<div>== NSF Site Visit ==<br />
<br />
In order to get everything done for the upcoming NSF site visit, I have created this page to share both temporary and complete results as well as to hold discussions on visualization methods being used, why they are employed, and how to better depict data for the scientists in Oregon. Below are links to images and animations showing the current state of visualization of the curvilinear grid simulation sent to me by Yvette. <br />
<br />
=== Presentation ===<br />
<br />
* [http://www.cs.utah.edu/~juliana/talks/cmop-site-visit2009.ppt Presentation in PPT] ([http://www.cs.utah.edu/~juliana/talks/cmop-site-visit2009.pdf PDF])<br />
<br />
=== Images ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_o2.png 1.png] <br />
** This visualization uses a combination of iso-surfaces of phytoplankton concentration and O2 saturation of the domain.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp.png 2.png]<br />
** Same as above only using Temperature instead of O2 saturation<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp_vs_o2.png 3.png]<br />
** Using the same iso-surfaces extracted in the above visualizations, we have loaded the O2 saturation scalar field and determined the values of this field on the phytoplankton concentration surfaces. Additionally, the entire domain is shown using an interactive cutting plane that determines the value of the 2D slice visualization as before.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field2.png 4.png]<br />
** Improving on the previous visualization, I am now providing equally spaced contours of the domain in the 2D slice-based visualization. This provides a much more intuitive visualization of the scalar field. Additionally, while the large 3D domain uses a relatively narrow range of the present scalar values for the colormap, I have increased this range for the 2D case. This provides a more complete visualization of the depth-based components present in the slices while accentuating surface variations in the 3D domain. I have also included the location of each slice in the dataset coordinates in the scalar bar associated with the 2D slice.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/salt_vel_vector_glyphs.png 5.png]<br />
** Initial visualization of the extracted velocity field of the regular grid. I use salt for coloring the domain and velocity magnitude for the vectors. This is just an initial visualization and will be refined. The placement of the velocity glyphs is interactively defined by using a seeding plane (Not shown).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field_vectors.png 6.png]<br />
** Building off of 4.png and 5.png, I've added the vector field as scaled, but uncolored, glyphs representing the velocity of the water in the simulation. The placement of vectors is determined by a user-defined, interactive seeding plane. I've also modified the underlying workflows to help simplify changing timesteps.<br />
<br />
=== Animations ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/test.avi 1.avi] | [http://www.sci.utah.edu/~eranders/screens/test.mov .mov]<br />
** This is a test animation generated in VisTrails depicting two types of planktons with temperatures and the flow field. I still haven't gotten the colormaps exactly correct yet, but that should be fixed shortly.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/2.avi 2.avi] | [http://www.sci.utah.edu/~eranders/screens/2.mov .mov]<br />
** This animation is generated in VisTrails similarly to the first one. Iso-surfaces of planktons are given as level-sets defined as percentages of the valid range of data. Additionally, adaptive colormapping provides a much better coloring scheme given the pretty high dynamic range of the data. The flow field is shown as arrow glyphs colored by the temperature at each point. This allows us to get a feel for the water temperature even after the domain colored by this field is clipped to expose the plankton concentrations. These animations make use of 69 of the available timesteps in the simulation - approximately half. I will be converting the remaining timesteps into a more usable form and will post a video using all of them (barring any feedback for changes for the visualization).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/3.avi 3.avi] | [http://www.sci.utah.edu/~eranders/screens/3.mov .mov]<br />
** This animation was generated in response to several of the comments I got regarding the first 2 attempts. The flow field remains largely unchanged; however, I have set an adaptive colormap in order to render the temperature values as I could. If this is not appropriate, please let me know a static range of scalar values by which I can set the colormap. This is necessary due to the large dynamic range of this particular scalar field in the dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/4.avi 4.avi] | [http://www.sci.utah.edu/~eranders/screens/4.mov .mov]<br />
** This animation was generated from the SELFE simulation using 24 timesteps looping 1 time. The salinity of the domain is being shown in concert with 4 iso-surfaces of salinity in the water to highlight both depth information as well as give an indication of the gradients of this field.<br />
<br />
==== Flow Field Animations ====<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/flow_1.mov flow_1.mov]<br />
** This video is the raw video captured to show visualization of dynamic flow fields. Although it's large now, it will be edited a little to cut unnecessary parts and text-based comments will be added to clarify what is going on.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/flow_2.mov flow_2.mov]<br />
** This video is the raw video captured to show visualization of dynamic flow fields. Although it's large now, it will be edited a little to cut unnecessary parts and text-based comments will be added to clarify what is going on. This video visualizes all 120 timesteps of the flow field I have.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/still.mov still.mov]<br />
** Using all 120 timesteps I have created a visualization of the dynamic flow field. The screen-capture utility was only able to support approx. 4 frames-per-second, but the movie still looks fairly good. I am working to improve the quality of the video, and will hopefully end up with a smoother version.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/interaction.mov interaction.mov]<br />
** Using all 120 timesteps I have created a visualization of the dynamic flow field. The screen-capture utility was only able to support approx. 4 frames-per-second, but the movie still looks fairly good. This video is similar to the previous one (still.mov) but I take the opportunity to interact with the visualization by rotating and zooming. Like the previous one, I am working to improve the quality of the video, and will hopefully end up with a smoother version.<br />
<br />
=== New Horizon Images ===<br />
<br />
Please note that although the cast data does not currently have any good spatial reference, we are currently working on converting bathymetry information from one of the simulations to the lat/long coordinate frame. This will give the 3D renderings a good spatial context with which we can view them.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_001.png scatterPlots.png]<br />
** The scatter plots graph measurements of time, oxygen, temperature, salinity and conductivity against the changes in pressure. This image is an initial visualization of the readings made by the vessel New Horizon at Station and Cast NH-3. The data is now readable, and hopefully these initial plots will inspire more sophisticated visualizations.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_1thru10.png combinePlot.png]<br />
** The scatter plot compares the salinity versus pressure plots for the data sets measured at 10 separate sites, overlaying all of the measurements using semi-transparent points.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_2.png casts_1.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. Each data point is colored by salinity. <br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_1.png casts_2.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the lower portion of the data) of the same dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_3.png casts_3.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the upper portion of the data) of the same dataset.<br />
<br />
=== Software ===<br />
<br />
After installing VisTrails, you must have the following 2 packages installed for VisTrails to use. Simply unzip these into the directory: $HOME\.vistrails\userpackages<br />
<br />
* Required Packages<br />
** NumSciPy [http://www.sci.utah.edu/~eranders/NumSciPy.tar.gz NumSciPy.tar.gz]<br />
** Selfe [http://www.sci.utah.edu/~eranders/CMOP-SELFE.tar.gz CMOP-SELFE.tar.gz]<br />
<br />
* VisTrails<br />
** Mac Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-mac-10.5-intel-1.3-rc2-rev1495.dmg .dmg]<br />
** Windows Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-setup-1.3rc2-rev1494.zip .zip]<br />
<br />
* .vt files<br />
** [http://www.sci.utah.edu/~eranders/data/reg.vt reg.vt]<br />
<br />
* Sample data files<br />
** http://www.sci.utah.edu/~eranders/data/OR_rect_3d_grid_z.nc GridPak Geometry]<br />
** http://www.sci.utah.edu/~eranders/data/OR_2001_nsv3_avg_0006.nc 0006.nc]<br />
<br />
<br />
After installing VisTrails and unpacking the required packages into the proper directory, start VisTrails. At this point, 2 windows will open - the spreadsheet and the builder window. The builder window is where visualizations are specified and the spreadsheet then displays the results of their execution. To enable the required packages, Go to the VisTrails menu and select Preferences. This will bring up a new window with a Module Packages tab. Go to this tab and select NumSciPy from the disabled packages list and enable it. Then do the same for the CMOP-SELFE package. With these module packages enabled you can open the reg.vt file posted above.<br />
<br />
Once this file is open, the builder window will display multiple ovals. Each oval represents a visualization. Select the appropriate visualization and press the Execute button. The results will then be displayed in the appropriate spreadsheet cells. However, before this executes properly, you may need to change filenames. To do this, enter the Pipeline mode by pressing the Pipeline button in the builder window. This will allow you to edit the visualization specification. The first filenames to change are in the Gridpak Reader Modules. These files specify the geometry to use for the visualization (for me it's OR_rect_3d_grid_z.nc) The Selfe Array Reader modules then need to be changed to the appropriate filenames for the timestep you wish to display. It is also here that you specify the appropriate scalar fields to use in the visualization. <br />
<br />
As an example:<br />
* Open reg.vt<br />
* Select the oval titled "3 fields"<br />
* Enter Pipeline mode<br />
* Change the filenames as appropriate on 3 Gridpak Reader and 3 Selfe Array Reader Modules. If you forget one, it will turn red on execution to indicate an error.<br />
* The spreadsheet will now have 2 windows with visualizations present. The left pane is the 3D view and the right is a 2D slice.<br />
** You may notice scalar bars are overlapping. To fix this, press 'a' and click and drag on a scalar bar. This will move it allowing you to resize and position it as you like. To select the other bar, press 'b' and do the same. If you find you are accidentally moving the bars instead of the model, press 'a' and 'b' again to disable the scalar bar interactions<br />
* To rotate, zoom, and pan the model, use your mouse. Left-click and drag controls rotation. Right-click and drag (apple+click) or the mouse wheel controls zooming and middle-click (I'm not sure how to do this on a 1 button mouse) controls panning<br />
* To set the slice and cut away some of the domain, press 'i' This enables the interactive cutting plane. To move it, left-click and drag on the white portion of the plane. You can then click on the white arrow normal to the plane to rotate the plane. The 2D slice will then update with the slice intersecting the small sphere on the cutting plane. The location of the plane (in native (stc?) coordinates will be shown along with the slice). <br />
<br />
* Particle Tracer<br />
** Windows Binary<br />
<br />
* Particle Tracer Files<br />
** Timestep 1<br />
** Timestep 2<br />
<br />
=== Upcoming Visualizations ===<br />
<br />
Particle tracing for dynamic vector field visualizations<br />
<br />
I'm having a small issue generating the appropriate vector field from the netCDF files I have. This is due to the fact that each component of the vector exists in a different coordinate space. From some research I've done, it seems like it's based on an Arakawa C Grid. This is not a game-stopping problem, but will take some time to get things figured out. This will be an important question to be resolved in my conversations with Yvette later today (Thurs. May 28). For now, I am planning on extracting 3 different scalar fields (each with its own coordinate system) and then interpolating these values onto the domain of the scalars (the rho-grid) to coalesce the data.<br />
<br />
I'm not entirely sure how to generate the appropriate vector field, and at first this will be further limited by the data type - the visualization software requires regular grids instead of curvilinear ones as we have. There are several possible fixes to this:<br />
<br />
* Generate a large regular grid by embedding the curvilinear grid in a regularly gridded space. This is computationally expensive, but need only be done once per time-step and can be done with relatively little development effort - this will be the first step.<br />
<br />
* Generate a transformation function to apply to the regular grid as a post-processing step. This is better than the first one, although more time-consuming. <br />
<br />
* Modify the renderer to respect curvilinear grids. This is the preferred option, but takes the most time.</div>Erandershttps://www.vistrails.org//index.php?title=Cmop&diff=1970Cmop2009-06-11T16:34:24Z<p>Eranders: /* Flow Field Animations */</p>
<hr />
<div>== NSF Site Visit ==<br />
<br />
In order to get everything done for the upcoming NSF site visit, I have created this page to share both temporary and complete results as well as to hold discussions on visualization methods being used, why they are employed, and how to better depict data for the scientists in Oregon. Below are links to images and animations showing the current state of visualization of the curvilinear grid simulation sent to me by Yvette. <br />
<br />
=== Presentation ===<br />
<br />
* [http://www.cs.utah.edu/~juliana/talks/cmop-site-visit2009.ppt Presentation in PPT] ([http://www.cs.utah.edu/~juliana/talks/cmop-site-visit2009.pdf PDF])<br />
<br />
=== Images ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_o2.png 1.png] <br />
** This visualization uses a combination of iso-surfaces of phytoplankton concentration and O2 saturation of the domain.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp.png 2.png]<br />
** Same as above only using Temperature instead of O2 saturation<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp_vs_o2.png 3.png]<br />
** Using the same iso-surfaces extracted in the above visualizations, we have loaded the O2 saturation scalar field and determined the values of this field on the phytoplankton concentration surfaces. Additionally, the entire domain is shown using an interactive cutting plane that determines the value of the 2D slice visualization as before.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field2.png 4.png]<br />
** Improving on the previous visualization, I am now providing equally spaced contours of the domain in the 2D slice-based visualization. This provides a much more intuitive visualization of the scalar field. Additionally, while the large 3D domain uses a relatively narrow range of the present scalar values for the colormap, I have increased this range for the 2D case. This provides a more complete visualization of the depth-based components present in the slices while accentuating surface variations in the 3D domain. I have also included the location of each slice in the dataset coordinates in the scalar bar associated with the 2D slice.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/salt_vel_vector_glyphs.png 5.png]<br />
** Initial visualization of the extracted velocity field of the regular grid. I use salt for coloring the domain and velocity magnitude for the vectors. This is just an initial visualization and will be refined. The placement of the velocity glyphs is interactively defined by using a seeding plane (Not shown).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field_vectors.png 6.png]<br />
** Building off of 4.png and 5.png, I've added the vector field as scaled, but uncolored, glyphs representing the velocity of the water in the simulation. The placement of vectors is determined by a user-defined, interactive seeding plane. I've also modified the underlying workflows to help simplify changing timesteps.<br />
<br />
=== Animations ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/test.avi 1.avi] | [http://www.sci.utah.edu/~eranders/screens/test.mov .mov]<br />
** This is a test animation generated in VisTrails depicting two types of planktons with temperatures and the flow field. I still haven't gotten the colormaps exactly correct yet, but that should be fixed shortly.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/2.avi 2.avi] | [http://www.sci.utah.edu/~eranders/screens/2.mov .mov]<br />
** This animation is generated in VisTrails similarly to the first one. Iso-surfaces of planktons are given as level-sets defined as percentages of the valid range of data. Additionally, adaptive colormapping provides a much better coloring scheme given the pretty high dynamic range of the data. The flow field is shown as arrow glyphs colored by the temperature at each point. This allows us to get a feel for the water temperature even after the domain colored by this field is clipped to expose the plankton concentrations. These animations make use of 69 of the available timesteps in the simulation - approximately half. I will be converting the remaining timesteps into a more usable form and will post a video using all of them (barring any feedback for changes for the visualization).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/3.avi 3.avi] | [http://www.sci.utah.edu/~eranders/screens/3.mov .mov]<br />
** This animation was generated in response to several of the comments I got regarding the first 2 attempts. The flow field remains largely unchanged; however, I have set an adaptive colormap in order to render the temperature values as I could. If this is not appropriate, please let me know a static range of scalar values by which I can set the colormap. This is necessary due to the large dynamic range of this particular scalar field in the dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/4.avi 4.avi] | [http://www.sci.utah.edu/~eranders/screens/4.mov .mov]<br />
** This animation was generated from the SELFE simulation using 24 timesteps looping 1 time. The salinity of the domain is being shown in concert with 4 iso-surfaces of salinity in the water to highlight both depth information as well as give an indication of the gradients of this field.<br />
<br />
==== Flow Field Animations ====<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/flow_1.mov flow_1.mov]<br />
** This video is the raw video captured to show visualization of dynamic flow fields. Although it's large now, it will be edited a little to cut unnecessary parts and text-based comments will be added to clarify what is going on.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/flow_2.mov flow_2.mov]<br />
** This video is the raw video captured to show visualization of dynamic flow fields. Although it's large now, it will be edited a little to cut unnecessary parts and text-based comments will be added to clarify what is going on. This video visualizes all 120 timesteps of the flow field I have.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/still.mov still.mov]<br />
** Using all 120 timesteps I have created a visualization of the dynamic flow field. The screen-capture utility was only able to support approx. 4 frames-per-second, but the movie still looks fairly good. I am working to improve the quality of the video, and will hopefully end up with a smoother version.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/interaction.mov interaction.mov]<br />
** Using all 120 timesteps I have created a visualization of the dynamic flow field. The screen-capture utility was only able to support approx. 4 frames-per-second, but the movie still looks fairly good. I am working to improve the quality of the video, and will hopefully end up with a smoother version.<br />
<br />
=== New Horizon Images ===<br />
<br />
Please note that although the cast data does not currently have any good spatial reference, we are currently working on converting bathymetry information from one of the simulations to the lat/long coordinate frame. This will give the 3D renderings a good spatial context with which we can view them.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_001.png scatterPlots.png]<br />
** The scatter plots graph measurements of time, oxygen, temperature, salinity and conductivity against the changes in pressure. This image is an initial visualization of the readings made by the vessel New Horizon at Station and Cast NH-3. The data is now readable, and hopefully these initial plots will inspire more sophisticated visualizations.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_1thru10.png combinePlot.png]<br />
** The scatter plot compares the salinity versus pressure plots for the data sets measured at 10 separate sites, overlaying all of the measurements using semi-transparent points.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_2.png casts_1.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. Each data point is colored by salinity. <br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_1.png casts_2.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the lower portion of the data) of the same dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_3.png casts_3.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the upper portion of the data) of the same dataset.<br />
<br />
=== Software ===<br />
<br />
After installing VisTrails, you must have the following 2 packages installed for VisTrails to use. Simply unzip these into the directory: $HOME\.vistrails\userpackages<br />
<br />
* Required Packages<br />
** NumSciPy [http://www.sci.utah.edu/~eranders/NumSciPy.tar.gz NumSciPy.tar.gz]<br />
** Selfe [http://www.sci.utah.edu/~eranders/CMOP-SELFE.tar.gz CMOP-SELFE.tar.gz]<br />
<br />
* VisTrails<br />
** Mac Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-mac-10.5-intel-1.3-rc2-rev1495.dmg .dmg]<br />
** Windows Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-setup-1.3rc2-rev1494.zip .zip]<br />
<br />
* .vt files<br />
** [http://www.sci.utah.edu/~eranders/data/reg.vt reg.vt]<br />
<br />
* Sample data files<br />
** http://www.sci.utah.edu/~eranders/data/OR_rect_3d_grid_z.nc GridPak Geometry]<br />
** http://www.sci.utah.edu/~eranders/data/OR_2001_nsv3_avg_0006.nc 0006.nc]<br />
<br />
<br />
After installing VisTrails and unpacking the required packages into the proper directory, start VisTrails. At this point, 2 windows will open - the spreadsheet and the builder window. The builder window is where visualizations are specified and the spreadsheet then displays the results of their execution. To enable the required packages, Go to the VisTrails menu and select Preferences. This will bring up a new window with a Module Packages tab. Go to this tab and select NumSciPy from the disabled packages list and enable it. Then do the same for the CMOP-SELFE package. With these module packages enabled you can open the reg.vt file posted above.<br />
<br />
Once this file is open, the builder window will display multiple ovals. Each oval represents a visualization. Select the appropriate visualization and press the Execute button. The results will then be displayed in the appropriate spreadsheet cells. However, before this executes properly, you may need to change filenames. To do this, enter the Pipeline mode by pressing the Pipeline button in the builder window. This will allow you to edit the visualization specification. The first filenames to change are in the Gridpak Reader Modules. These files specify the geometry to use for the visualization (for me it's OR_rect_3d_grid_z.nc) The Selfe Array Reader modules then need to be changed to the appropriate filenames for the timestep you wish to display. It is also here that you specify the appropriate scalar fields to use in the visualization. <br />
<br />
As an example:<br />
* Open reg.vt<br />
* Select the oval titled "3 fields"<br />
* Enter Pipeline mode<br />
* Change the filenames as appropriate on 3 Gridpak Reader and 3 Selfe Array Reader Modules. If you forget one, it will turn red on execution to indicate an error.<br />
* The spreadsheet will now have 2 windows with visualizations present. The left pane is the 3D view and the right is a 2D slice.<br />
** You may notice scalar bars are overlapping. To fix this, press 'a' and click and drag on a scalar bar. This will move it allowing you to resize and position it as you like. To select the other bar, press 'b' and do the same. If you find you are accidentally moving the bars instead of the model, press 'a' and 'b' again to disable the scalar bar interactions<br />
* To rotate, zoom, and pan the model, use your mouse. Left-click and drag controls rotation. Right-click and drag (apple+click) or the mouse wheel controls zooming and middle-click (I'm not sure how to do this on a 1 button mouse) controls panning<br />
* To set the slice and cut away some of the domain, press 'i' This enables the interactive cutting plane. To move it, left-click and drag on the white portion of the plane. You can then click on the white arrow normal to the plane to rotate the plane. The 2D slice will then update with the slice intersecting the small sphere on the cutting plane. The location of the plane (in native (stc?) coordinates will be shown along with the slice). <br />
<br />
* Particle Tracer<br />
** Windows Binary<br />
<br />
* Particle Tracer Files<br />
** Timestep 1<br />
** Timestep 2<br />
<br />
=== Upcoming Visualizations ===<br />
<br />
Particle tracing for dynamic vector field visualizations<br />
<br />
I'm having a small issue generating the appropriate vector field from the netCDF files I have. This is due to the fact that each component of the vector exists in a different coordinate space. From some research I've done, it seems like it's based on an Arakawa C Grid. This is not a game-stopping problem, but will take some time to get things figured out. This will be an important question to be resolved in my conversations with Yvette later today (Thurs. May 28). For now, I am planning on extracting 3 different scalar fields (each with its own coordinate system) and then interpolating these values onto the domain of the scalars (the rho-grid) to coalesce the data.<br />
<br />
I'm not entirely sure how to generate the appropriate vector field, and at first this will be further limited by the data type - the visualization software requires regular grids instead of curvilinear ones as we have. There are several possible fixes to this:<br />
<br />
* Generate a large regular grid by embedding the curvilinear grid in a regularly gridded space. This is computationally expensive, but need only be done once per time-step and can be done with relatively little development effort - this will be the first step.<br />
<br />
* Generate a transformation function to apply to the regular grid as a post-processing step. This is better than the first one, although more time-consuming. <br />
<br />
* Modify the renderer to respect curvilinear grids. This is the preferred option, but takes the most time.</div>Erandershttps://www.vistrails.org//index.php?title=Cmop&diff=1967Cmop2009-06-10T17:31:35Z<p>Eranders: /* Flow Field Animations */</p>
<hr />
<div>== NSF Site Visit ==<br />
<br />
In order to get everything done for the upcoming NSF site visit, I have created this page to share both temporary and complete results as well as to hold discussions on visualization methods being used, why they are employed, and how to better depict data for the scientists in Oregon. Below are links to images and animations showing the current state of visualization of the curvilinear grid simulation sent to me by Yvette. <br />
<br />
=== Images ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_o2.png 1.png] <br />
** This visualization uses a combination of iso-surfaces of phytoplankton concentration and O2 saturation of the domain.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp.png 2.png]<br />
** Same as above only using Temperature instead of O2 saturation<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp_vs_o2.png 3.png]<br />
** Using the same iso-surfaces extracted in the above visualizations, we have loaded the O2 saturation scalar field and determined the values of this field on the phytoplankton concentration surfaces. Additionally, the entire domain is shown using an interactive cutting plane that determines the value of the 2D slice visualization as before.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field2.png 4.png]<br />
** Improving on the previous visualization, I am now providing equally spaced contours of the domain in the 2D slice-based visualization. This provides a much more intuitive visualization of the scalar field. Additionally, while the large 3D domain uses a relatively narrow range of the present scalar values for the colormap, I have increased this range for the 2D case. This provides a more complete visualization of the depth-based components present in the slices while accentuating surface variations in the 3D domain. I have also included the location of each slice in the dataset coordinates in the scalar bar associated with the 2D slice.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/salt_vel_vector_glyphs.png 5.png]<br />
** Initial visualization of the extracted velocity field of the regular grid. I use salt for coloring the domain and velocity magnitude for the vectors. This is just an initial visualization and will be refined. The placement of the velocity glyphs is interactively defined by using a seeding plane (Not shown).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field_vectors.png 6.png]<br />
** Building off of 4.png and 5.png, I've added the vector field as scaled, but uncolored, glyphs representing the velocity of the water in the simulation. The placement of vectors is determined by a user-defined, interactive seeding plane. I've also modified the underlying workflows to help simplify changing timesteps.<br />
<br />
=== Animations ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/test.avi 1.avi] | [http://www.sci.utah.edu/~eranders/screens/test.mov .mov]<br />
** This is a test animation generated in VisTrails depicting two types of planktons with temperatures and the flow field. I still haven't gotten the colormaps exactly correct yet, but that should be fixed shortly.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/2.avi 2.avi] | [http://www.sci.utah.edu/~eranders/screens/2.mov .mov]<br />
** This animation is generated in VisTrails similarly to the first one. Iso-surfaces of planktons are given as level-sets defined as percentages of the valid range of data. Additionally, adaptive colormapping provides a much better coloring scheme given the pretty high dynamic range of the data. The flow field is shown as arrow glyphs colored by the temperature at each point. This allows us to get a feel for the water temperature even after the domain colored by this field is clipped to expose the plankton concentrations. These animations make use of 69 of the available timesteps in the simulation - approximately half. I will be converting the remaining timesteps into a more usable form and will post a video using all of them (barring any feedback for changes for the visualization).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/3.avi 3.avi] | [http://www.sci.utah.edu/~eranders/screens/3.mov .mov]<br />
** This animation was generated in response to several of the comments I got regarding the first 2 attempts. The flow field remains largely unchanged; however, I have set an adaptive colormap in order to render the temperature values as I could. If this is not appropriate, please let me know a static range of scalar values by which I can set the colormap. This is necessary due to the large dynamic range of this particular scalar field in the dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/4.avi 4.avi] | [http://www.sci.utah.edu/~eranders/screens/4.mov .mov]<br />
** This animation was generated from the SELFE simulation using 24 timesteps looping 1 time. The salinity of the domain is being shown in concert with 4 iso-surfaces of salinity in the water to highlight both depth information as well as give an indication of the gradients of this field.<br />
<br />
==== Flow Field Animations ====<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/flow_1.mov flow_1.mov]<br />
** This video is the raw video captured to show visualization of dynamic flow fields. Although it's large now, it will be edited a little to cut unnecessary parts and text-based comments will be added to clarify what is going on.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/flow_2.mov flow_2.mov]<br />
** This video is the raw video captured to show visualization of dynamic flow fields. Although it's large now, it will be edited a little to cut unnecessary parts and text-based comments will be added to clarify what is going on. This video visualizes all 120 timesteps of the flow field I have.<br />
<br />
=== New Horizon Images ===<br />
<br />
Please note that although the cast data does not currently have any good spatial reference, we are currently working on converting bathymetry information from one of the simulations to the lat/long coordinate frame. This will give the 3D renderings a good spatial context with which we can view them.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_001.png scatterPlots.png]<br />
** The scatter plots graph measurements of time, oxygen, temperature, salinity and conductivity against the changes in pressure. This image is an initial visualization of the readings made by the vessel New Horizon at Station and Cast NH-3. The data is now readable, and hopefully these initial plots will inspire more sophisticated visualizations.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_1thru10.png combinePlot.png]<br />
** The scatter plot compares the salinity versus pressure plots for the data sets measured at 10 separate sites, overlaying all of the measurements using semi-transparent points.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_2.png casts_1.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. Each data point is colored by salinity. <br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_1.png casts_2.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the lower portion of the data) of the same dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_3.png casts_3.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the upper portion of the data) of the same dataset.<br />
<br />
=== Software ===<br />
<br />
After installing VisTrails, you must have the following 2 packages installed for VisTrails to use. Simply unzip these into the directory: $HOME\.vistrails\userpackages<br />
<br />
* Required Packages<br />
** NumSciPy [http://www.sci.utah.edu/~eranders/NumSciPy.tar.gz NumSciPy.tar.gz]<br />
** Selfe [http://www.sci.utah.edu/~eranders/CMOP-SELFE.tar.gz CMOP-SELFE.tar.gz]<br />
<br />
* VisTrails<br />
** Mac Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-mac-10.5-intel-1.3-rc2-rev1495.dmg .dmg]<br />
** Windows Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-setup-1.3rc2-rev1494.zip .zip]<br />
<br />
* .vt files<br />
** [http://www.sci.utah.edu/~eranders/data/reg.vt reg.vt]<br />
<br />
* Sample data files<br />
** http://www.sci.utah.edu/~eranders/data/OR_rect_3d_grid_z.nc GridPak Geometry]<br />
** http://www.sci.utah.edu/~eranders/data/OR_2001_nsv3_avg_0006.nc 0006.nc]<br />
<br />
<br />
After installing VisTrails and unpacking the required packages into the proper directory, start VisTrails. At this point, 2 windows will open - the spreadsheet and the builder window. The builder window is where visualizations are specified and the spreadsheet then displays the results of their execution. To enable the required packages, Go to the VisTrails menu and select Preferences. This will bring up a new window with a Module Packages tab. Go to this tab and select NumSciPy from the disabled packages list and enable it. Then do the same for the CMOP-SELFE package. With these module packages enabled you can open the reg.vt file posted above.<br />
<br />
Once this file is open, the builder window will display multiple ovals. Each oval represents a visualization. Select the appropriate visualization and press the Execute button. The results will then be displayed in the appropriate spreadsheet cells. However, before this executes properly, you may need to change filenames. To do this, enter the Pipeline mode by pressing the Pipeline button in the builder window. This will allow you to edit the visualization specification. The first filenames to change are in the Gridpak Reader Modules. These files specify the geometry to use for the visualization (for me it's OR_rect_3d_grid_z.nc) The Selfe Array Reader modules then need to be changed to the appropriate filenames for the timestep you wish to display. It is also here that you specify the appropriate scalar fields to use in the visualization. <br />
<br />
As an example:<br />
* Open reg.vt<br />
* Select the oval titled "3 fields"<br />
* Enter Pipeline mode<br />
* Change the filenames as appropriate on 3 Gridpak Reader and 3 Selfe Array Reader Modules. If you forget one, it will turn red on execution to indicate an error.<br />
* The spreadsheet will now have 2 windows with visualizations present. The left pane is the 3D view and the right is a 2D slice.<br />
** You may notice scalar bars are overlapping. To fix this, press 'a' and click and drag on a scalar bar. This will move it allowing you to resize and position it as you like. To select the other bar, press 'b' and do the same. If you find you are accidentally moving the bars instead of the model, press 'a' and 'b' again to disable the scalar bar interactions<br />
* To rotate, zoom, and pan the model, use your mouse. Left-click and drag controls rotation. Right-click and drag (apple+click) or the mouse wheel controls zooming and middle-click (I'm not sure how to do this on a 1 button mouse) controls panning<br />
* To set the slice and cut away some of the domain, press 'i' This enables the interactive cutting plane. To move it, left-click and drag on the white portion of the plane. You can then click on the white arrow normal to the plane to rotate the plane. The 2D slice will then update with the slice intersecting the small sphere on the cutting plane. The location of the plane (in native (stc?) coordinates will be shown along with the slice). <br />
<br />
* Particle Tracer<br />
** Windows Binary<br />
<br />
* Particle Tracer Files<br />
** Timestep 1<br />
** Timestep 2<br />
<br />
=== Upcoming Visualizations ===<br />
<br />
Particle tracing for dynamic vector field visualizations<br />
<br />
I'm having a small issue generating the appropriate vector field from the netCDF files I have. This is due to the fact that each component of the vector exists in a different coordinate space. From some research I've done, it seems like it's based on an Arakawa C Grid. This is not a game-stopping problem, but will take some time to get things figured out. This will be an important question to be resolved in my conversations with Yvette later today (Thurs. May 28). For now, I am planning on extracting 3 different scalar fields (each with its own coordinate system) and then interpolating these values onto the domain of the scalars (the rho-grid) to coalesce the data.<br />
<br />
I'm not entirely sure how to generate the appropriate vector field, and at first this will be further limited by the data type - the visualization software requires regular grids instead of curvilinear ones as we have. There are several possible fixes to this:<br />
<br />
* Generate a large regular grid by embedding the curvilinear grid in a regularly gridded space. This is computationally expensive, but need only be done once per time-step and can be done with relatively little development effort - this will be the first step.<br />
<br />
* Generate a transformation function to apply to the regular grid as a post-processing step. This is better than the first one, although more time-consuming. <br />
<br />
* Modify the renderer to respect curvilinear grids. This is the preferred option, but takes the most time.</div>Erandershttps://www.vistrails.org//index.php?title=Cmop&diff=1966Cmop2009-06-10T15:46:38Z<p>Eranders: </p>
<hr />
<div>== NSF Site Visit ==<br />
<br />
In order to get everything done for the upcoming NSF site visit, I have created this page to share both temporary and complete results as well as to hold discussions on visualization methods being used, why they are employed, and how to better depict data for the scientists in Oregon. Below are links to images and animations showing the current state of visualization of the curvilinear grid simulation sent to me by Yvette. <br />
<br />
=== Images ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_o2.png 1.png] <br />
** This visualization uses a combination of iso-surfaces of phytoplankton concentration and O2 saturation of the domain.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp.png 2.png]<br />
** Same as above only using Temperature instead of O2 saturation<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp_vs_o2.png 3.png]<br />
** Using the same iso-surfaces extracted in the above visualizations, we have loaded the O2 saturation scalar field and determined the values of this field on the phytoplankton concentration surfaces. Additionally, the entire domain is shown using an interactive cutting plane that determines the value of the 2D slice visualization as before.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field2.png 4.png]<br />
** Improving on the previous visualization, I am now providing equally spaced contours of the domain in the 2D slice-based visualization. This provides a much more intuitive visualization of the scalar field. Additionally, while the large 3D domain uses a relatively narrow range of the present scalar values for the colormap, I have increased this range for the 2D case. This provides a more complete visualization of the depth-based components present in the slices while accentuating surface variations in the 3D domain. I have also included the location of each slice in the dataset coordinates in the scalar bar associated with the 2D slice.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/salt_vel_vector_glyphs.png 5.png]<br />
** Initial visualization of the extracted velocity field of the regular grid. I use salt for coloring the domain and velocity magnitude for the vectors. This is just an initial visualization and will be refined. The placement of the velocity glyphs is interactively defined by using a seeding plane (Not shown).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field_vectors.png 6.png]<br />
** Building off of 4.png and 5.png, I've added the vector field as scaled, but uncolored, glyphs representing the velocity of the water in the simulation. The placement of vectors is determined by a user-defined, interactive seeding plane. I've also modified the underlying workflows to help simplify changing timesteps.<br />
<br />
=== Animations ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/test.avi 1.avi] | [http://www.sci.utah.edu/~eranders/screens/test.mov .mov]<br />
** This is a test animation generated in VisTrails depicting two types of planktons with temperatures and the flow field. I still haven't gotten the colormaps exactly correct yet, but that should be fixed shortly.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/2.avi 2.avi] | [http://www.sci.utah.edu/~eranders/screens/2.mov .mov]<br />
** This animation is generated in VisTrails similarly to the first one. Iso-surfaces of planktons are given as level-sets defined as percentages of the valid range of data. Additionally, adaptive colormapping provides a much better coloring scheme given the pretty high dynamic range of the data. The flow field is shown as arrow glyphs colored by the temperature at each point. This allows us to get a feel for the water temperature even after the domain colored by this field is clipped to expose the plankton concentrations. These animations make use of 69 of the available timesteps in the simulation - approximately half. I will be converting the remaining timesteps into a more usable form and will post a video using all of them (barring any feedback for changes for the visualization).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/3.avi 3.avi] | [http://www.sci.utah.edu/~eranders/screens/3.mov .mov]<br />
** This animation was generated in response to several of the comments I got regarding the first 2 attempts. The flow field remains largely unchanged; however, I have set an adaptive colormap in order to render the temperature values as I could. If this is not appropriate, please let me know a static range of scalar values by which I can set the colormap. This is necessary due to the large dynamic range of this particular scalar field in the dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/4.avi 4.avi] | [http://www.sci.utah.edu/~eranders/screens/4.mov .mov]<br />
** This animation was generated from the SELFE simulation using 24 timesteps looping 1 time. The salinity of the domain is being shown in concert with 4 iso-surfaces of salinity in the water to highlight both depth information as well as give an indication of the gradients of this field.<br />
<br />
==== Flow Field Animations ====<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/flow_1.avi flow_1.mov]<br />
** This video is the raw video captured to show visualization of dynamic flow fields. Although it's large now, it will be edited a little to cut unnecessary parts and text-based comments will be added to clarify what is going on.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/flow_2.avi flow_2.mov]<br />
** This video is the raw video captured to show visualization of dynamic flow fields. Although it's large now, it will be edited a little to cut unnecessary parts and text-based comments will be added to clarify what is going on. This video visualizes all 120 timesteps of the flow field I have.<br />
<br />
=== New Horizon Images ===<br />
<br />
Please note that although the cast data does not currently have any good spatial reference, we are currently working on converting bathymetry information from one of the simulations to the lat/long coordinate frame. This will give the 3D renderings a good spatial context with which we can view them.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_001.png scatterPlots.png]<br />
** The scatter plots graph measurements of time, oxygen, temperature, salinity and conductivity against the changes in pressure. This image is an initial visualization of the readings made by the vessel New Horizon at Station and Cast NH-3. The data is now readable, and hopefully these initial plots will inspire more sophisticated visualizations.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_1thru10.png combinePlot.png]<br />
** The scatter plot compares the salinity versus pressure plots for the data sets measured at 10 separate sites, overlaying all of the measurements using semi-transparent points.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_2.png casts_1.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. Each data point is colored by salinity. <br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_1.png casts_2.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the lower portion of the data) of the same dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_3.png casts_3.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the upper portion of the data) of the same dataset.<br />
<br />
=== Software ===<br />
<br />
After installing VisTrails, you must have the following 2 packages installed for VisTrails to use. Simply unzip these into the directory: $HOME\.vistrails\userpackages<br />
<br />
* Required Packages<br />
** NumSciPy [http://www.sci.utah.edu/~eranders/NumSciPy.tar.gz NumSciPy.tar.gz]<br />
** Selfe [http://www.sci.utah.edu/~eranders/CMOP-SELFE.tar.gz CMOP-SELFE.tar.gz]<br />
<br />
* VisTrails<br />
** Mac Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-mac-10.5-intel-1.3-rc2-rev1495.dmg .dmg]<br />
** Windows Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-setup-1.3rc2-rev1494.zip .zip]<br />
<br />
* .vt files<br />
** [http://www.sci.utah.edu/~eranders/data/reg.vt reg.vt]<br />
<br />
* Sample data files<br />
** http://www.sci.utah.edu/~eranders/data/OR_rect_3d_grid_z.nc GridPak Geometry]<br />
** http://www.sci.utah.edu/~eranders/data/OR_2001_nsv3_avg_0006.nc 0006.nc]<br />
<br />
<br />
After installing VisTrails and unpacking the required packages into the proper directory, start VisTrails. At this point, 2 windows will open - the spreadsheet and the builder window. The builder window is where visualizations are specified and the spreadsheet then displays the results of their execution. To enable the required packages, Go to the VisTrails menu and select Preferences. This will bring up a new window with a Module Packages tab. Go to this tab and select NumSciPy from the disabled packages list and enable it. Then do the same for the CMOP-SELFE package. With these module packages enabled you can open the reg.vt file posted above.<br />
<br />
Once this file is open, the builder window will display multiple ovals. Each oval represents a visualization. Select the appropriate visualization and press the Execute button. The results will then be displayed in the appropriate spreadsheet cells. However, before this executes properly, you may need to change filenames. To do this, enter the Pipeline mode by pressing the Pipeline button in the builder window. This will allow you to edit the visualization specification. The first filenames to change are in the Gridpak Reader Modules. These files specify the geometry to use for the visualization (for me it's OR_rect_3d_grid_z.nc) The Selfe Array Reader modules then need to be changed to the appropriate filenames for the timestep you wish to display. It is also here that you specify the appropriate scalar fields to use in the visualization. <br />
<br />
As an example:<br />
* Open reg.vt<br />
* Select the oval titled "3 fields"<br />
* Enter Pipeline mode<br />
* Change the filenames as appropriate on 3 Gridpak Reader and 3 Selfe Array Reader Modules. If you forget one, it will turn red on execution to indicate an error.<br />
* The spreadsheet will now have 2 windows with visualizations present. The left pane is the 3D view and the right is a 2D slice.<br />
** You may notice scalar bars are overlapping. To fix this, press 'a' and click and drag on a scalar bar. This will move it allowing you to resize and position it as you like. To select the other bar, press 'b' and do the same. If you find you are accidentally moving the bars instead of the model, press 'a' and 'b' again to disable the scalar bar interactions<br />
* To rotate, zoom, and pan the model, use your mouse. Left-click and drag controls rotation. Right-click and drag (apple+click) or the mouse wheel controls zooming and middle-click (I'm not sure how to do this on a 1 button mouse) controls panning<br />
* To set the slice and cut away some of the domain, press 'i' This enables the interactive cutting plane. To move it, left-click and drag on the white portion of the plane. You can then click on the white arrow normal to the plane to rotate the plane. The 2D slice will then update with the slice intersecting the small sphere on the cutting plane. The location of the plane (in native (stc?) coordinates will be shown along with the slice). <br />
<br />
* Particle Tracer<br />
** Windows Binary<br />
<br />
* Particle Tracer Files<br />
** Timestep 1<br />
** Timestep 2<br />
<br />
=== Upcoming Visualizations ===<br />
<br />
Particle tracing for dynamic vector field visualizations<br />
<br />
I'm having a small issue generating the appropriate vector field from the netCDF files I have. This is due to the fact that each component of the vector exists in a different coordinate space. From some research I've done, it seems like it's based on an Arakawa C Grid. This is not a game-stopping problem, but will take some time to get things figured out. This will be an important question to be resolved in my conversations with Yvette later today (Thurs. May 28). For now, I am planning on extracting 3 different scalar fields (each with its own coordinate system) and then interpolating these values onto the domain of the scalars (the rho-grid) to coalesce the data.<br />
<br />
I'm not entirely sure how to generate the appropriate vector field, and at first this will be further limited by the data type - the visualization software requires regular grids instead of curvilinear ones as we have. There are several possible fixes to this:<br />
<br />
* Generate a large regular grid by embedding the curvilinear grid in a regularly gridded space. This is computationally expensive, but need only be done once per time-step and can be done with relatively little development effort - this will be the first step.<br />
<br />
* Generate a transformation function to apply to the regular grid as a post-processing step. This is better than the first one, although more time-consuming. <br />
<br />
* Modify the renderer to respect curvilinear grids. This is the preferred option, but takes the most time.</div>Erandershttps://www.vistrails.org//index.php?title=Cmop&diff=1965Cmop2009-06-10T15:46:09Z<p>Eranders: /* Animations */</p>
<hr />
<div>== NSF Site Visit ==<br />
<br />
In order to get everything done for the upcoming NSF site visit, I have created this page to share both temporary and complete results as well as to hold discussions on visualization methods being used, why they are employed, and how to better depict data for the scientists in Oregon. Below are links to images and animations showing the current state of visualization of the curvilinear grid simulation sent to me by Yvette. <br />
<br />
=== Images ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_o2.png 1.png] <br />
** This visualization uses a combination of iso-surfaces of phytoplankton concentration and O2 saturation of the domain.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp.png 2.png]<br />
** Same as above only using Temperature instead of O2 saturation<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp_vs_o2.png 3.png]<br />
** Using the same iso-surfaces extracted in the above visualizations, we have loaded the O2 saturation scalar field and determined the values of this field on the phytoplankton concentration surfaces. Additionally, the entire domain is shown using an interactive cutting plane that determines the value of the 2D slice visualization as before.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field2.png 4.png]<br />
** Improving on the previous visualization, I am now providing equally spaced contours of the domain in the 2D slice-based visualization. This provides a much more intuitive visualization of the scalar field. Additionally, while the large 3D domain uses a relatively narrow range of the present scalar values for the colormap, I have increased this range for the 2D case. This provides a more complete visualization of the depth-based components present in the slices while accentuating surface variations in the 3D domain. I have also included the location of each slice in the dataset coordinates in the scalar bar associated with the 2D slice.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/salt_vel_vector_glyphs.png 5.png]<br />
** Initial visualization of the extracted velocity field of the regular grid. I use salt for coloring the domain and velocity magnitude for the vectors. This is just an initial visualization and will be refined. The placement of the velocity glyphs is interactively defined by using a seeding plane (Not shown).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field_vectors.png 6.png]<br />
** Building off of 4.png and 5.png, I've added the vector field as scaled, but uncolored, glyphs representing the velocity of the water in the simulation. The placement of vectors is determined by a user-defined, interactive seeding plane. I've also modified the underlying workflows to help simplify changing timesteps.<br />
<br />
=== Animations ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/test.avi 1.avi] | [http://www.sci.utah.edu/~eranders/screens/test.mov .mov]<br />
** This is a test animation generated in VisTrails depicting two types of planktons with temperatures and the flow field. I still haven't gotten the colormaps exactly correct yet, but that should be fixed shortly.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/2.avi 2.avi] | [http://www.sci.utah.edu/~eranders/screens/2.mov .mov]<br />
** This animation is generated in VisTrails similarly to the first one. Iso-surfaces of planktons are given as level-sets defined as percentages of the valid range of data. Additionally, adaptive colormapping provides a much better coloring scheme given the pretty high dynamic range of the data. The flow field is shown as arrow glyphs colored by the temperature at each point. This allows us to get a feel for the water temperature even after the domain colored by this field is clipped to expose the plankton concentrations. These animations make use of 69 of the available timesteps in the simulation - approximately half. I will be converting the remaining timesteps into a more usable form and will post a video using all of them (barring any feedback for changes for the visualization).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/3.avi 3.avi] | [http://www.sci.utah.edu/~eranders/screens/3.mov .mov]<br />
** This animation was generated in response to several of the comments I got regarding the first 2 attempts. The flow field remains largely unchanged; however, I have set an adaptive colormap in order to render the temperature values as I could. If this is not appropriate, please let me know a static range of scalar values by which I can set the colormap. This is necessary due to the large dynamic range of this particular scalar field in the dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/4.avi 4.avi] | [http://www.sci.utah.edu/~eranders/screens/4.mov .mov]<br />
** This animation was generated from the SELFE simulation using 24 timesteps looping 1 time. The salinity of the domain is being shown in concert with 4 iso-surfaces of salinity in the water to highlight both depth information as well as give an indication of the gradients of this field.<br />
<br />
== Flow Field Animations == <br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/flow_1.avi flow_1.mov]<br />
** This video is the raw video captured to show visualization of dynamic flow fields. Although it's large now, it will be edited a little to cut unnecessary parts and text-based comments will be added to clarify what is going on.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/flow_2.avi flow_2.mov]<br />
** This video is the raw video captured to show visualization of dynamic flow fields. Although it's large now, it will be edited a little to cut unnecessary parts and text-based comments will be added to clarify what is going on. This video visualizes all 120 timesteps of the flow field I have.<br />
<br />
=== New Horizon Images ===<br />
<br />
Please note that although the cast data does not currently have any good spatial reference, we are currently working on converting bathymetry information from one of the simulations to the lat/long coordinate frame. This will give the 3D renderings a good spatial context with which we can view them.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_001.png scatterPlots.png]<br />
** The scatter plots graph measurements of time, oxygen, temperature, salinity and conductivity against the changes in pressure. This image is an initial visualization of the readings made by the vessel New Horizon at Station and Cast NH-3. The data is now readable, and hopefully these initial plots will inspire more sophisticated visualizations.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_1thru10.png combinePlot.png]<br />
** The scatter plot compares the salinity versus pressure plots for the data sets measured at 10 separate sites, overlaying all of the measurements using semi-transparent points.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_2.png casts_1.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. Each data point is colored by salinity. <br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_1.png casts_2.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the lower portion of the data) of the same dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_3.png casts_3.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the upper portion of the data) of the same dataset.<br />
<br />
=== Software ===<br />
<br />
After installing VisTrails, you must have the following 2 packages installed for VisTrails to use. Simply unzip these into the directory: $HOME\.vistrails\userpackages<br />
<br />
* Required Packages<br />
** NumSciPy [http://www.sci.utah.edu/~eranders/NumSciPy.tar.gz NumSciPy.tar.gz]<br />
** Selfe [http://www.sci.utah.edu/~eranders/CMOP-SELFE.tar.gz CMOP-SELFE.tar.gz]<br />
<br />
* VisTrails<br />
** Mac Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-mac-10.5-intel-1.3-rc2-rev1495.dmg .dmg]<br />
** Windows Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-setup-1.3rc2-rev1494.zip .zip]<br />
<br />
* .vt files<br />
** [http://www.sci.utah.edu/~eranders/data/reg.vt reg.vt]<br />
<br />
* Sample data files<br />
** http://www.sci.utah.edu/~eranders/data/OR_rect_3d_grid_z.nc GridPak Geometry]<br />
** http://www.sci.utah.edu/~eranders/data/OR_2001_nsv3_avg_0006.nc 0006.nc]<br />
<br />
<br />
After installing VisTrails and unpacking the required packages into the proper directory, start VisTrails. At this point, 2 windows will open - the spreadsheet and the builder window. The builder window is where visualizations are specified and the spreadsheet then displays the results of their execution. To enable the required packages, Go to the VisTrails menu and select Preferences. This will bring up a new window with a Module Packages tab. Go to this tab and select NumSciPy from the disabled packages list and enable it. Then do the same for the CMOP-SELFE package. With these module packages enabled you can open the reg.vt file posted above.<br />
<br />
Once this file is open, the builder window will display multiple ovals. Each oval represents a visualization. Select the appropriate visualization and press the Execute button. The results will then be displayed in the appropriate spreadsheet cells. However, before this executes properly, you may need to change filenames. To do this, enter the Pipeline mode by pressing the Pipeline button in the builder window. This will allow you to edit the visualization specification. The first filenames to change are in the Gridpak Reader Modules. These files specify the geometry to use for the visualization (for me it's OR_rect_3d_grid_z.nc) The Selfe Array Reader modules then need to be changed to the appropriate filenames for the timestep you wish to display. It is also here that you specify the appropriate scalar fields to use in the visualization. <br />
<br />
As an example:<br />
* Open reg.vt<br />
* Select the oval titled "3 fields"<br />
* Enter Pipeline mode<br />
* Change the filenames as appropriate on 3 Gridpak Reader and 3 Selfe Array Reader Modules. If you forget one, it will turn red on execution to indicate an error.<br />
* The spreadsheet will now have 2 windows with visualizations present. The left pane is the 3D view and the right is a 2D slice.<br />
** You may notice scalar bars are overlapping. To fix this, press 'a' and click and drag on a scalar bar. This will move it allowing you to resize and position it as you like. To select the other bar, press 'b' and do the same. If you find you are accidentally moving the bars instead of the model, press 'a' and 'b' again to disable the scalar bar interactions<br />
* To rotate, zoom, and pan the model, use your mouse. Left-click and drag controls rotation. Right-click and drag (apple+click) or the mouse wheel controls zooming and middle-click (I'm not sure how to do this on a 1 button mouse) controls panning<br />
* To set the slice and cut away some of the domain, press 'i' This enables the interactive cutting plane. To move it, left-click and drag on the white portion of the plane. You can then click on the white arrow normal to the plane to rotate the plane. The 2D slice will then update with the slice intersecting the small sphere on the cutting plane. The location of the plane (in native (stc?) coordinates will be shown along with the slice). <br />
<br />
* Particle Tracer<br />
** Windows Binary<br />
<br />
* Particle Tracer Files<br />
** Timestep 1<br />
** Timestep 2<br />
<br />
=== Upcoming Visualizations ===<br />
<br />
Particle tracing for dynamic vector field visualizations<br />
<br />
I'm having a small issue generating the appropriate vector field from the netCDF files I have. This is due to the fact that each component of the vector exists in a different coordinate space. From some research I've done, it seems like it's based on an Arakawa C Grid. This is not a game-stopping problem, but will take some time to get things figured out. This will be an important question to be resolved in my conversations with Yvette later today (Thurs. May 28). For now, I am planning on extracting 3 different scalar fields (each with its own coordinate system) and then interpolating these values onto the domain of the scalars (the rho-grid) to coalesce the data.<br />
<br />
I'm not entirely sure how to generate the appropriate vector field, and at first this will be further limited by the data type - the visualization software requires regular grids instead of curvilinear ones as we have. There are several possible fixes to this:<br />
<br />
* Generate a large regular grid by embedding the curvilinear grid in a regularly gridded space. This is computationally expensive, but need only be done once per time-step and can be done with relatively little development effort - this will be the first step.<br />
<br />
* Generate a transformation function to apply to the regular grid as a post-processing step. This is better than the first one, although more time-consuming. <br />
<br />
* Modify the renderer to respect curvilinear grids. This is the preferred option, but takes the most time.</div>Erandershttps://www.vistrails.org//index.php?title=Cmop&diff=1964Cmop2009-06-09T20:26:44Z<p>Eranders: /* Animations */</p>
<hr />
<div>== NSF Site Visit ==<br />
<br />
In order to get everything done for the upcoming NSF site visit, I have created this page to share both temporary and complete results as well as to hold discussions on visualization methods being used, why they are employed, and how to better depict data for the scientists in Oregon. Below are links to images and animations showing the current state of visualization of the curvilinear grid simulation sent to me by Yvette. <br />
<br />
=== Images ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_o2.png 1.png] <br />
** This visualization uses a combination of iso-surfaces of phytoplankton concentration and O2 saturation of the domain.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp.png 2.png]<br />
** Same as above only using Temperature instead of O2 saturation<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp_vs_o2.png 3.png]<br />
** Using the same iso-surfaces extracted in the above visualizations, we have loaded the O2 saturation scalar field and determined the values of this field on the phytoplankton concentration surfaces. Additionally, the entire domain is shown using an interactive cutting plane that determines the value of the 2D slice visualization as before.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field2.png 4.png]<br />
** Improving on the previous visualization, I am now providing equally spaced contours of the domain in the 2D slice-based visualization. This provides a much more intuitive visualization of the scalar field. Additionally, while the large 3D domain uses a relatively narrow range of the present scalar values for the colormap, I have increased this range for the 2D case. This provides a more complete visualization of the depth-based components present in the slices while accentuating surface variations in the 3D domain. I have also included the location of each slice in the dataset coordinates in the scalar bar associated with the 2D slice.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/salt_vel_vector_glyphs.png 5.png]<br />
** Initial visualization of the extracted velocity field of the regular grid. I use salt for coloring the domain and velocity magnitude for the vectors. This is just an initial visualization and will be refined. The placement of the velocity glyphs is interactively defined by using a seeding plane (Not shown).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field_vectors.png 6.png]<br />
** Building off of 4.png and 5.png, I've added the vector field as scaled, but uncolored, glyphs representing the velocity of the water in the simulation. The placement of vectors is determined by a user-defined, interactive seeding plane. I've also modified the underlying workflows to help simplify changing timesteps.<br />
<br />
=== Animations ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/test.avi 1.avi] | [http://www.sci.utah.edu/~eranders/screens/test.mov .mov]<br />
** This is a test animation generated in VisTrails depicting two types of planktons with temperatures and the flow field. I still haven't gotten the colormaps exactly correct yet, but that should be fixed shortly.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/2.avi 2.avi] | [http://www.sci.utah.edu/~eranders/screens/2.mov .mov]<br />
** This animation is generated in VisTrails similarly to the first one. Iso-surfaces of planktons are given as level-sets defined as percentages of the valid range of data. Additionally, adaptive colormapping provides a much better coloring scheme given the pretty high dynamic range of the data. The flow field is shown as arrow glyphs colored by the temperature at each point. This allows us to get a feel for the water temperature even after the domain colored by this field is clipped to expose the plankton concentrations. These animations make use of 69 of the available timesteps in the simulation - approximately half. I will be converting the remaining timesteps into a more usable form and will post a video using all of them (barring any feedback for changes for the visualization).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/3.avi 3.avi] | [http://www.sci.utah.edu/~eranders/screens/3.mov .mov]<br />
** This animation was generated in response to several of the comments I got regarding the first 2 attempts. The flow field remains largely unchanged; however, I have set an adaptive colormap in order to render the temperature values as I could. If this is not appropriate, please let me know a static range of scalar values by which I can set the colormap. This is necessary due to the large dynamic range of this particular scalar field in the dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/4.avi 4.avi] | [http://www.sci.utah.edu/~eranders/screens/4.mov .mov]<br />
** This animation was generated from the SELFE simulation using 24 timesteps looping 1 time. The salinity of the domain is being shown in concert with 4 iso-surfaces of salinity in the water to highlight both depth information as well as give an indication of the gradients of this field.<br />
<br />
=== New Horizon Images ===<br />
<br />
Please note that although the cast data does not currently have any good spatial reference, we are currently working on converting bathymetry information from one of the simulations to the lat/long coordinate frame. This will give the 3D renderings a good spatial context with which we can view them.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_001.png scatterPlots.png]<br />
** The scatter plots graph measurements of time, oxygen, temperature, salinity and conductivity against the changes in pressure. This image is an initial visualization of the readings made by the vessel New Horizon at Station and Cast NH-3. The data is now readable, and hopefully these initial plots will inspire more sophisticated visualizations.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_1thru10.png combinePlot.png]<br />
** The scatter plot compares the salinity versus pressure plots for the data sets measured at 10 separate sites, overlaying all of the measurements using semi-transparent points.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_2.png casts_1.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. Each data point is colored by salinity. <br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_1.png casts_2.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the lower portion of the data) of the same dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_3.png casts_3.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the upper portion of the data) of the same dataset.<br />
<br />
=== Software ===<br />
<br />
After installing VisTrails, you must have the following 2 packages installed for VisTrails to use. Simply unzip these into the directory: $HOME\.vistrails\userpackages<br />
<br />
* Required Packages<br />
** NumSciPy [http://www.sci.utah.edu/~eranders/NumSciPy.tar.gz NumSciPy.tar.gz]<br />
** Selfe [http://www.sci.utah.edu/~eranders/CMOP-SELFE.tar.gz CMOP-SELFE.tar.gz]<br />
<br />
* VisTrails<br />
** Mac Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-mac-10.5-intel-1.3-rc2-rev1495.dmg .dmg]<br />
** Windows Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-setup-1.3rc2-rev1494.zip .zip]<br />
<br />
* .vt files<br />
** [http://www.sci.utah.edu/~eranders/data/reg.vt reg.vt]<br />
<br />
* Sample data files<br />
** http://www.sci.utah.edu/~eranders/data/OR_rect_3d_grid_z.nc GridPak Geometry]<br />
** http://www.sci.utah.edu/~eranders/data/OR_2001_nsv3_avg_0006.nc 0006.nc]<br />
<br />
<br />
After installing VisTrails and unpacking the required packages into the proper directory, start VisTrails. At this point, 2 windows will open - the spreadsheet and the builder window. The builder window is where visualizations are specified and the spreadsheet then displays the results of their execution. To enable the required packages, Go to the VisTrails menu and select Preferences. This will bring up a new window with a Module Packages tab. Go to this tab and select NumSciPy from the disabled packages list and enable it. Then do the same for the CMOP-SELFE package. With these module packages enabled you can open the reg.vt file posted above.<br />
<br />
Once this file is open, the builder window will display multiple ovals. Each oval represents a visualization. Select the appropriate visualization and press the Execute button. The results will then be displayed in the appropriate spreadsheet cells. However, before this executes properly, you may need to change filenames. To do this, enter the Pipeline mode by pressing the Pipeline button in the builder window. This will allow you to edit the visualization specification. The first filenames to change are in the Gridpak Reader Modules. These files specify the geometry to use for the visualization (for me it's OR_rect_3d_grid_z.nc) The Selfe Array Reader modules then need to be changed to the appropriate filenames for the timestep you wish to display. It is also here that you specify the appropriate scalar fields to use in the visualization. <br />
<br />
As an example:<br />
* Open reg.vt<br />
* Select the oval titled "3 fields"<br />
* Enter Pipeline mode<br />
* Change the filenames as appropriate on 3 Gridpak Reader and 3 Selfe Array Reader Modules. If you forget one, it will turn red on execution to indicate an error.<br />
* The spreadsheet will now have 2 windows with visualizations present. The left pane is the 3D view and the right is a 2D slice.<br />
** You may notice scalar bars are overlapping. To fix this, press 'a' and click and drag on a scalar bar. This will move it allowing you to resize and position it as you like. To select the other bar, press 'b' and do the same. If you find you are accidentally moving the bars instead of the model, press 'a' and 'b' again to disable the scalar bar interactions<br />
* To rotate, zoom, and pan the model, use your mouse. Left-click and drag controls rotation. Right-click and drag (apple+click) or the mouse wheel controls zooming and middle-click (I'm not sure how to do this on a 1 button mouse) controls panning<br />
* To set the slice and cut away some of the domain, press 'i' This enables the interactive cutting plane. To move it, left-click and drag on the white portion of the plane. You can then click on the white arrow normal to the plane to rotate the plane. The 2D slice will then update with the slice intersecting the small sphere on the cutting plane. The location of the plane (in native (stc?) coordinates will be shown along with the slice). <br />
<br />
* Particle Tracer<br />
** Windows Binary<br />
<br />
* Particle Tracer Files<br />
** Timestep 1<br />
** Timestep 2<br />
<br />
=== Upcoming Visualizations ===<br />
<br />
Particle tracing for dynamic vector field visualizations<br />
<br />
I'm having a small issue generating the appropriate vector field from the netCDF files I have. This is due to the fact that each component of the vector exists in a different coordinate space. From some research I've done, it seems like it's based on an Arakawa C Grid. This is not a game-stopping problem, but will take some time to get things figured out. This will be an important question to be resolved in my conversations with Yvette later today (Thurs. May 28). For now, I am planning on extracting 3 different scalar fields (each with its own coordinate system) and then interpolating these values onto the domain of the scalars (the rho-grid) to coalesce the data.<br />
<br />
I'm not entirely sure how to generate the appropriate vector field, and at first this will be further limited by the data type - the visualization software requires regular grids instead of curvilinear ones as we have. There are several possible fixes to this:<br />
<br />
* Generate a large regular grid by embedding the curvilinear grid in a regularly gridded space. This is computationally expensive, but need only be done once per time-step and can be done with relatively little development effort - this will be the first step.<br />
<br />
* Generate a transformation function to apply to the regular grid as a post-processing step. This is better than the first one, although more time-consuming. <br />
<br />
* Modify the renderer to respect curvilinear grids. This is the preferred option, but takes the most time.</div>Erandershttps://www.vistrails.org//index.php?title=Cmop&diff=1963Cmop2009-06-09T20:26:31Z<p>Eranders: /* Animations */</p>
<hr />
<div>== NSF Site Visit ==<br />
<br />
In order to get everything done for the upcoming NSF site visit, I have created this page to share both temporary and complete results as well as to hold discussions on visualization methods being used, why they are employed, and how to better depict data for the scientists in Oregon. Below are links to images and animations showing the current state of visualization of the curvilinear grid simulation sent to me by Yvette. <br />
<br />
=== Images ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_o2.png 1.png] <br />
** This visualization uses a combination of iso-surfaces of phytoplankton concentration and O2 saturation of the domain.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp.png 2.png]<br />
** Same as above only using Temperature instead of O2 saturation<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp_vs_o2.png 3.png]<br />
** Using the same iso-surfaces extracted in the above visualizations, we have loaded the O2 saturation scalar field and determined the values of this field on the phytoplankton concentration surfaces. Additionally, the entire domain is shown using an interactive cutting plane that determines the value of the 2D slice visualization as before.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field2.png 4.png]<br />
** Improving on the previous visualization, I am now providing equally spaced contours of the domain in the 2D slice-based visualization. This provides a much more intuitive visualization of the scalar field. Additionally, while the large 3D domain uses a relatively narrow range of the present scalar values for the colormap, I have increased this range for the 2D case. This provides a more complete visualization of the depth-based components present in the slices while accentuating surface variations in the 3D domain. I have also included the location of each slice in the dataset coordinates in the scalar bar associated with the 2D slice.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/salt_vel_vector_glyphs.png 5.png]<br />
** Initial visualization of the extracted velocity field of the regular grid. I use salt for coloring the domain and velocity magnitude for the vectors. This is just an initial visualization and will be refined. The placement of the velocity glyphs is interactively defined by using a seeding plane (Not shown).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field_vectors.png 6.png]<br />
** Building off of 4.png and 5.png, I've added the vector field as scaled, but uncolored, glyphs representing the velocity of the water in the simulation. The placement of vectors is determined by a user-defined, interactive seeding plane. I've also modified the underlying workflows to help simplify changing timesteps.<br />
<br />
=== Animations ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/test.avi 1.avi] | [http://www.sci.utah.edu/~eranders/screens/test.mov .mov]<br />
** This is a test animation generated in VisTrails depicting two types of planktons with temperatures and the flow field. I still haven't gotten the colormaps exactly correct yet, but that should be fixed shortly.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/2.avi 2.avi] | [http://www.sci.utah.edu/~eranders/screens/2.mov .mov]<br />
** This animation is generated in VisTrails similarly to the first one. Iso-surfaces of planktons are given as level-sets defined as percentages of the valid range of data. Additionally, adaptive colormapping provides a much better coloring scheme given the pretty high dynamic range of the data. The flow field is shown as arrow glyphs colored by the temperature at each point. This allows us to get a feel for the water temperature even after the domain colored by this field is clipped to expose the plankton concentrations. These animations make use of 69 of the available timesteps in the simulation - approximately half. I will be converting the remaining timesteps into a more usable form and will post a video using all of them (barring any feedback for changes for the visualization).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/3.avi 3.avi] | [http://www.sci.utah.edu/~eranders/screens/3.mov .mov]<br />
** This animation was generated in response to several of the comments I got regarding the first 2 attempts. The flow field remains largely unchanged; however, I have set an adaptive colormap in order to render the temperature values as I could. If this is not appropriate, please let me know a static range of scalar values by which I can set the colormap. This is necessary due to the large dynamic range of this particular scalar field in the dataset.<br />
<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/4.avi 4.avi] | [http://www.sci.utah.edu/~eranders/screens/4.mov .mov]<br />
** This animation was generated from the SELFE simulation using 24 timesteps looping 1 time. The salinity of the domain is being shown in concert with 4 iso-surfaces of salinity in the water to highlight both depth information as well as give an indication of the gradients of this field.<br />
<br />
=== New Horizon Images ===<br />
<br />
Please note that although the cast data does not currently have any good spatial reference, we are currently working on converting bathymetry information from one of the simulations to the lat/long coordinate frame. This will give the 3D renderings a good spatial context with which we can view them.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_001.png scatterPlots.png]<br />
** The scatter plots graph measurements of time, oxygen, temperature, salinity and conductivity against the changes in pressure. This image is an initial visualization of the readings made by the vessel New Horizon at Station and Cast NH-3. The data is now readable, and hopefully these initial plots will inspire more sophisticated visualizations.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_1thru10.png combinePlot.png]<br />
** The scatter plot compares the salinity versus pressure plots for the data sets measured at 10 separate sites, overlaying all of the measurements using semi-transparent points.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_2.png casts_1.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. Each data point is colored by salinity. <br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_1.png casts_2.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the lower portion of the data) of the same dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_3.png casts_3.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the upper portion of the data) of the same dataset.<br />
<br />
=== Software ===<br />
<br />
After installing VisTrails, you must have the following 2 packages installed for VisTrails to use. Simply unzip these into the directory: $HOME\.vistrails\userpackages<br />
<br />
* Required Packages<br />
** NumSciPy [http://www.sci.utah.edu/~eranders/NumSciPy.tar.gz NumSciPy.tar.gz]<br />
** Selfe [http://www.sci.utah.edu/~eranders/CMOP-SELFE.tar.gz CMOP-SELFE.tar.gz]<br />
<br />
* VisTrails<br />
** Mac Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-mac-10.5-intel-1.3-rc2-rev1495.dmg .dmg]<br />
** Windows Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-setup-1.3rc2-rev1494.zip .zip]<br />
<br />
* .vt files<br />
** [http://www.sci.utah.edu/~eranders/data/reg.vt reg.vt]<br />
<br />
* Sample data files<br />
** http://www.sci.utah.edu/~eranders/data/OR_rect_3d_grid_z.nc GridPak Geometry]<br />
** http://www.sci.utah.edu/~eranders/data/OR_2001_nsv3_avg_0006.nc 0006.nc]<br />
<br />
<br />
After installing VisTrails and unpacking the required packages into the proper directory, start VisTrails. At this point, 2 windows will open - the spreadsheet and the builder window. The builder window is where visualizations are specified and the spreadsheet then displays the results of their execution. To enable the required packages, Go to the VisTrails menu and select Preferences. This will bring up a new window with a Module Packages tab. Go to this tab and select NumSciPy from the disabled packages list and enable it. Then do the same for the CMOP-SELFE package. With these module packages enabled you can open the reg.vt file posted above.<br />
<br />
Once this file is open, the builder window will display multiple ovals. Each oval represents a visualization. Select the appropriate visualization and press the Execute button. The results will then be displayed in the appropriate spreadsheet cells. However, before this executes properly, you may need to change filenames. To do this, enter the Pipeline mode by pressing the Pipeline button in the builder window. This will allow you to edit the visualization specification. The first filenames to change are in the Gridpak Reader Modules. These files specify the geometry to use for the visualization (for me it's OR_rect_3d_grid_z.nc) The Selfe Array Reader modules then need to be changed to the appropriate filenames for the timestep you wish to display. It is also here that you specify the appropriate scalar fields to use in the visualization. <br />
<br />
As an example:<br />
* Open reg.vt<br />
* Select the oval titled "3 fields"<br />
* Enter Pipeline mode<br />
* Change the filenames as appropriate on 3 Gridpak Reader and 3 Selfe Array Reader Modules. If you forget one, it will turn red on execution to indicate an error.<br />
* The spreadsheet will now have 2 windows with visualizations present. The left pane is the 3D view and the right is a 2D slice.<br />
** You may notice scalar bars are overlapping. To fix this, press 'a' and click and drag on a scalar bar. This will move it allowing you to resize and position it as you like. To select the other bar, press 'b' and do the same. If you find you are accidentally moving the bars instead of the model, press 'a' and 'b' again to disable the scalar bar interactions<br />
* To rotate, zoom, and pan the model, use your mouse. Left-click and drag controls rotation. Right-click and drag (apple+click) or the mouse wheel controls zooming and middle-click (I'm not sure how to do this on a 1 button mouse) controls panning<br />
* To set the slice and cut away some of the domain, press 'i' This enables the interactive cutting plane. To move it, left-click and drag on the white portion of the plane. You can then click on the white arrow normal to the plane to rotate the plane. The 2D slice will then update with the slice intersecting the small sphere on the cutting plane. The location of the plane (in native (stc?) coordinates will be shown along with the slice). <br />
<br />
* Particle Tracer<br />
** Windows Binary<br />
<br />
* Particle Tracer Files<br />
** Timestep 1<br />
** Timestep 2<br />
<br />
=== Upcoming Visualizations ===<br />
<br />
Particle tracing for dynamic vector field visualizations<br />
<br />
I'm having a small issue generating the appropriate vector field from the netCDF files I have. This is due to the fact that each component of the vector exists in a different coordinate space. From some research I've done, it seems like it's based on an Arakawa C Grid. This is not a game-stopping problem, but will take some time to get things figured out. This will be an important question to be resolved in my conversations with Yvette later today (Thurs. May 28). For now, I am planning on extracting 3 different scalar fields (each with its own coordinate system) and then interpolating these values onto the domain of the scalars (the rho-grid) to coalesce the data.<br />
<br />
I'm not entirely sure how to generate the appropriate vector field, and at first this will be further limited by the data type - the visualization software requires regular grids instead of curvilinear ones as we have. There are several possible fixes to this:<br />
<br />
* Generate a large regular grid by embedding the curvilinear grid in a regularly gridded space. This is computationally expensive, but need only be done once per time-step and can be done with relatively little development effort - this will be the first step.<br />
<br />
* Generate a transformation function to apply to the regular grid as a post-processing step. This is better than the first one, although more time-consuming. <br />
<br />
* Modify the renderer to respect curvilinear grids. This is the preferred option, but takes the most time.</div>Erandershttps://www.vistrails.org//index.php?title=Cmop&diff=1962Cmop2009-06-09T15:46:06Z<p>Eranders: /* Software */</p>
<hr />
<div>== NSF Site Visit ==<br />
<br />
In order to get everything done for the upcoming NSF site visit, I have created this page to share both temporary and complete results as well as to hold discussions on visualization methods being used, why they are employed, and how to better depict data for the scientists in Oregon. Below are links to images and animations showing the current state of visualization of the curvilinear grid simulation sent to me by Yvette. <br />
<br />
=== Images ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_o2.png 1.png] <br />
** This visualization uses a combination of iso-surfaces of phytoplankton concentration and O2 saturation of the domain.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp.png 2.png]<br />
** Same as above only using Temperature instead of O2 saturation<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp_vs_o2.png 3.png]<br />
** Using the same iso-surfaces extracted in the above visualizations, we have loaded the O2 saturation scalar field and determined the values of this field on the phytoplankton concentration surfaces. Additionally, the entire domain is shown using an interactive cutting plane that determines the value of the 2D slice visualization as before.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field2.png 4.png]<br />
** Improving on the previous visualization, I am now providing equally spaced contours of the domain in the 2D slice-based visualization. This provides a much more intuitive visualization of the scalar field. Additionally, while the large 3D domain uses a relatively narrow range of the present scalar values for the colormap, I have increased this range for the 2D case. This provides a more complete visualization of the depth-based components present in the slices while accentuating surface variations in the 3D domain. I have also included the location of each slice in the dataset coordinates in the scalar bar associated with the 2D slice.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/salt_vel_vector_glyphs.png 5.png]<br />
** Initial visualization of the extracted velocity field of the regular grid. I use salt for coloring the domain and velocity magnitude for the vectors. This is just an initial visualization and will be refined. The placement of the velocity glyphs is interactively defined by using a seeding plane (Not shown).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field_vectors.png 6.png]<br />
** Building off of 4.png and 5.png, I've added the vector field as scaled, but uncolored, glyphs representing the velocity of the water in the simulation. The placement of vectors is determined by a user-defined, interactive seeding plane. I've also modified the underlying workflows to help simplify changing timesteps.<br />
<br />
=== Animations ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/test.avi 1.avi] | [http://www.sci.utah.edu/~eranders/screens/test.mov .mov]<br />
** This is a test animation generated in VisTrails depicting two types of planktons with temperatures and the flow field. I still haven't gotten the colormaps exactly correct yet, but that should be fixed shortly.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/2.avi 2.avi] | [http://www.sci.utah.edu/~eranders/screens/2.mov .mov]<br />
** This animation is generated in VisTrails similarly to the first one. Iso-surfaces of planktons are given as level-sets defined as percentages of the valid range of data. Additionally, adaptive colormapping provides a much better coloring scheme given the pretty high dynamic range of the data. The flow field is shown as arrow glyphs colored by the temperature at each point. This allows us to get a feel for the water temperature even after the domain colored by this field is clipped to expose the plankton concentrations. These animations make use of 69 of the available timesteps in the simulation - approximately half. I will be converting the remaining timesteps into a more usable form and will post a video using all of them (barring any feedback for changes for the visualization).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/3.avi 3.avi] | [http://www.sci.utah.edu/~eranders/screens/3.mov .mov]<br />
** This animation was generated in response to several of the comments I got regarding the first 2 attempts. The flow field remains largely unchanged; however, I have set an adaptive colormap in order to render the temperature values as I could. If this is not appropriate, please let me know a static range of scalar values by which I can set the colormap. This is necessary due to the large dynamic range of this particular scalar field in the dataset.<br />
<br />
=== New Horizon Images ===<br />
<br />
Please note that although the cast data does not currently have any good spatial reference, we are currently working on converting bathymetry information from one of the simulations to the lat/long coordinate frame. This will give the 3D renderings a good spatial context with which we can view them.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_001.png scatterPlots.png]<br />
** The scatter plots graph measurements of time, oxygen, temperature, salinity and conductivity against the changes in pressure. This image is an initial visualization of the readings made by the vessel New Horizon at Station and Cast NH-3. The data is now readable, and hopefully these initial plots will inspire more sophisticated visualizations.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_1thru10.png combinePlot.png]<br />
** The scatter plot compares the salinity versus pressure plots for the data sets measured at 10 separate sites, overlaying all of the measurements using semi-transparent points.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_2.png casts_1.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. Each data point is colored by salinity. <br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_1.png casts_2.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the lower portion of the data) of the same dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_3.png casts_3.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the upper portion of the data) of the same dataset.<br />
<br />
=== Software ===<br />
<br />
After installing VisTrails, you must have the following 2 packages installed for VisTrails to use. Simply unzip these into the directory: $HOME\.vistrails\userpackages<br />
<br />
* Required Packages<br />
** NumSciPy [http://www.sci.utah.edu/~eranders/NumSciPy.tar.gz NumSciPy.tar.gz]<br />
** Selfe [http://www.sci.utah.edu/~eranders/CMOP-SELFE.tar.gz CMOP-SELFE.tar.gz]<br />
<br />
* VisTrails<br />
** Mac Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-mac-10.5-intel-1.3-rc2-rev1495.dmg .dmg]<br />
** Windows Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-setup-1.3rc2-rev1494.zip .zip]<br />
<br />
* .vt files<br />
** [http://www.sci.utah.edu/~eranders/data/reg.vt reg.vt]<br />
<br />
* Sample data files<br />
** http://www.sci.utah.edu/~eranders/data/OR_rect_3d_grid_z.nc GridPak Geometry]<br />
** http://www.sci.utah.edu/~eranders/data/OR_2001_nsv3_avg_0006.nc 0006.nc]<br />
<br />
<br />
After installing VisTrails and unpacking the required packages into the proper directory, start VisTrails. At this point, 2 windows will open - the spreadsheet and the builder window. The builder window is where visualizations are specified and the spreadsheet then displays the results of their execution. To enable the required packages, Go to the VisTrails menu and select Preferences. This will bring up a new window with a Module Packages tab. Go to this tab and select NumSciPy from the disabled packages list and enable it. Then do the same for the CMOP-SELFE package. With these module packages enabled you can open the reg.vt file posted above.<br />
<br />
Once this file is open, the builder window will display multiple ovals. Each oval represents a visualization. Select the appropriate visualization and press the Execute button. The results will then be displayed in the appropriate spreadsheet cells. However, before this executes properly, you may need to change filenames. To do this, enter the Pipeline mode by pressing the Pipeline button in the builder window. This will allow you to edit the visualization specification. The first filenames to change are in the Gridpak Reader Modules. These files specify the geometry to use for the visualization (for me it's OR_rect_3d_grid_z.nc) The Selfe Array Reader modules then need to be changed to the appropriate filenames for the timestep you wish to display. It is also here that you specify the appropriate scalar fields to use in the visualization. <br />
<br />
As an example:<br />
* Open reg.vt<br />
* Select the oval titled "3 fields"<br />
* Enter Pipeline mode<br />
* Change the filenames as appropriate on 3 Gridpak Reader and 3 Selfe Array Reader Modules. If you forget one, it will turn red on execution to indicate an error.<br />
* The spreadsheet will now have 2 windows with visualizations present. The left pane is the 3D view and the right is a 2D slice.<br />
** You may notice scalar bars are overlapping. To fix this, press 'a' and click and drag on a scalar bar. This will move it allowing you to resize and position it as you like. To select the other bar, press 'b' and do the same. If you find you are accidentally moving the bars instead of the model, press 'a' and 'b' again to disable the scalar bar interactions<br />
* To rotate, zoom, and pan the model, use your mouse. Left-click and drag controls rotation. Right-click and drag (apple+click) or the mouse wheel controls zooming and middle-click (I'm not sure how to do this on a 1 button mouse) controls panning<br />
* To set the slice and cut away some of the domain, press 'i' This enables the interactive cutting plane. To move it, left-click and drag on the white portion of the plane. You can then click on the white arrow normal to the plane to rotate the plane. The 2D slice will then update with the slice intersecting the small sphere on the cutting plane. The location of the plane (in native (stc?) coordinates will be shown along with the slice). <br />
<br />
* Particle Tracer<br />
** Windows Binary<br />
<br />
* Particle Tracer Files<br />
** Timestep 1<br />
** Timestep 2<br />
<br />
=== Upcoming Visualizations ===<br />
<br />
Particle tracing for dynamic vector field visualizations<br />
<br />
I'm having a small issue generating the appropriate vector field from the netCDF files I have. This is due to the fact that each component of the vector exists in a different coordinate space. From some research I've done, it seems like it's based on an Arakawa C Grid. This is not a game-stopping problem, but will take some time to get things figured out. This will be an important question to be resolved in my conversations with Yvette later today (Thurs. May 28). For now, I am planning on extracting 3 different scalar fields (each with its own coordinate system) and then interpolating these values onto the domain of the scalars (the rho-grid) to coalesce the data.<br />
<br />
I'm not entirely sure how to generate the appropriate vector field, and at first this will be further limited by the data type - the visualization software requires regular grids instead of curvilinear ones as we have. There are several possible fixes to this:<br />
<br />
* Generate a large regular grid by embedding the curvilinear grid in a regularly gridded space. This is computationally expensive, but need only be done once per time-step and can be done with relatively little development effort - this will be the first step.<br />
<br />
* Generate a transformation function to apply to the regular grid as a post-processing step. This is better than the first one, although more time-consuming. <br />
<br />
* Modify the renderer to respect curvilinear grids. This is the preferred option, but takes the most time.</div>Erandershttps://www.vistrails.org//index.php?title=Cmop&diff=1961Cmop2009-06-08T21:19:54Z<p>Eranders: /* Animations */</p>
<hr />
<div>== NSF Site Visit ==<br />
<br />
In order to get everything done for the upcoming NSF site visit, I have created this page to share both temporary and complete results as well as to hold discussions on visualization methods being used, why they are employed, and how to better depict data for the scientists in Oregon. Below are links to images and animations showing the current state of visualization of the curvilinear grid simulation sent to me by Yvette. <br />
<br />
=== Images ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_o2.png 1.png] <br />
** This visualization uses a combination of iso-surfaces of phytoplankton concentration and O2 saturation of the domain.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp.png 2.png]<br />
** Same as above only using Temperature instead of O2 saturation<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp_vs_o2.png 3.png]<br />
** Using the same iso-surfaces extracted in the above visualizations, we have loaded the O2 saturation scalar field and determined the values of this field on the phytoplankton concentration surfaces. Additionally, the entire domain is shown using an interactive cutting plane that determines the value of the 2D slice visualization as before.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field2.png 4.png]<br />
** Improving on the previous visualization, I am now providing equally spaced contours of the domain in the 2D slice-based visualization. This provides a much more intuitive visualization of the scalar field. Additionally, while the large 3D domain uses a relatively narrow range of the present scalar values for the colormap, I have increased this range for the 2D case. This provides a more complete visualization of the depth-based components present in the slices while accentuating surface variations in the 3D domain. I have also included the location of each slice in the dataset coordinates in the scalar bar associated with the 2D slice.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/salt_vel_vector_glyphs.png 5.png]<br />
** Initial visualization of the extracted velocity field of the regular grid. I use salt for coloring the domain and velocity magnitude for the vectors. This is just an initial visualization and will be refined. The placement of the velocity glyphs is interactively defined by using a seeding plane (Not shown).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field_vectors.png 6.png]<br />
** Building off of 4.png and 5.png, I've added the vector field as scaled, but uncolored, glyphs representing the velocity of the water in the simulation. The placement of vectors is determined by a user-defined, interactive seeding plane. I've also modified the underlying workflows to help simplify changing timesteps.<br />
<br />
=== Animations ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/test.avi 1.avi] | [http://www.sci.utah.edu/~eranders/screens/test.mov .mov]<br />
** This is a test animation generated in VisTrails depicting two types of planktons with temperatures and the flow field. I still haven't gotten the colormaps exactly correct yet, but that should be fixed shortly.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/2.avi 2.avi] | [http://www.sci.utah.edu/~eranders/screens/2.mov .mov]<br />
** This animation is generated in VisTrails similarly to the first one. Iso-surfaces of planktons are given as level-sets defined as percentages of the valid range of data. Additionally, adaptive colormapping provides a much better coloring scheme given the pretty high dynamic range of the data. The flow field is shown as arrow glyphs colored by the temperature at each point. This allows us to get a feel for the water temperature even after the domain colored by this field is clipped to expose the plankton concentrations. These animations make use of 69 of the available timesteps in the simulation - approximately half. I will be converting the remaining timesteps into a more usable form and will post a video using all of them (barring any feedback for changes for the visualization).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/3.avi 3.avi] | [http://www.sci.utah.edu/~eranders/screens/3.mov .mov]<br />
** This animation was generated in response to several of the comments I got regarding the first 2 attempts. The flow field remains largely unchanged; however, I have set an adaptive colormap in order to render the temperature values as I could. If this is not appropriate, please let me know a static range of scalar values by which I can set the colormap. This is necessary due to the large dynamic range of this particular scalar field in the dataset.<br />
<br />
=== New Horizon Images ===<br />
<br />
Please note that although the cast data does not currently have any good spatial reference, we are currently working on converting bathymetry information from one of the simulations to the lat/long coordinate frame. This will give the 3D renderings a good spatial context with which we can view them.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_001.png scatterPlots.png]<br />
** The scatter plots graph measurements of time, oxygen, temperature, salinity and conductivity against the changes in pressure. This image is an initial visualization of the readings made by the vessel New Horizon at Station and Cast NH-3. The data is now readable, and hopefully these initial plots will inspire more sophisticated visualizations.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_1thru10.png combinePlot.png]<br />
** The scatter plot compares the salinity versus pressure plots for the data sets measured at 10 separate sites, overlaying all of the measurements using semi-transparent points.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_2.png casts_1.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. Each data point is colored by salinity. <br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_1.png casts_2.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the lower portion of the data) of the same dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_3.png casts_3.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the upper portion of the data) of the same dataset.<br />
<br />
=== Software ===<br />
<br />
After installing VisTrails, you must have the following 2 packages installed for VisTrails to use. Simply unzip these into the directory: $HOME\.vistrails\userpackages<br />
<br />
* Required Packages<br />
** NumSciPy [http://www.sci.utah.edu/~eranders/NumSciPy.tar.gz NumSciPy.tar.gz]<br />
** Selfe [http://www.sci.utah.edu/~eranders/CMOP-SELFE.tar.gz CMOP-SELFE.tar.gz]<br />
<br />
* VisTrails<br />
** Mac Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-mac-10.5-intel-1.3-rc2-rev1495.dmg .dmg]<br />
** Windows Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-setup-1.3rc2-rev1494.zip .zip]<br />
<br />
* .vt files<br />
** [http://www.sci.utah.edu/~eranders/data/reg.vt reg.vt]<br />
<br />
After installing VisTrails and unpacking the required packages into the proper directory, start VisTrails. At this point, 2 windows will open - the spreadsheet and the builder window. The builder window is where visualizations are specified and the spreadsheet then displays the results of their execution. To enable the required packages, Go to the VisTrails menu and select Preferences. This will bring up a new window with a Module Packages tab. Go to this tab and select NumSciPy from the disabled packages list and enable it. Then do the same for the CMOP-SELFE package. With these module packages enabled you can open the reg.vt file posted above.<br />
<br />
Once this file is open, the builder window will display multiple ovals. Each oval represents a visualization. Select the appropriate visualization and press the Execute button. The results will then be displayed in the appropriate spreadsheet cells. However, before this executes properly, you may need to change filenames. To do this, enter the Pipeline mode by pressing the Pipeline button in the builder window. This will allow you to edit the visualization specification. The first filenames to change are in the Gridpak Reader Modules. These files specify the geometry to use for the visualization (for me it's OR_rect_3d_grid_z.nc) The Selfe Array Reader modules then need to be changed to the appropriate filenames for the timestep you wish to display. It is also here that you specify the appropriate scalar fields to use in the visualization. <br />
<br />
As an example:<br />
* Open reg.vt<br />
* Select the oval titled "3 fields"<br />
* Enter Pipeline mode<br />
* Change the filenames as appropriate on 3 Gridpak Reader and 3 Selfe Array Reader Modules. If you forget one, it will turn red on execution to indicate an error.<br />
* The spreadsheet will now have 2 windows with visualizations present. The left pane is the 3D view and the right is a 2D slice.<br />
** You may notice scalar bars are overlapping. To fix this, press 'a' and click and drag on a scalar bar. This will move it allowing you to resize and position it as you like. To select the other bar, press 'b' and do the same. If you find you are accidentally moving the bars instead of the model, press 'a' and 'b' again to disable the scalar bar interactions<br />
* To rotate, zoom, and pan the model, use your mouse. Left-click and drag controls rotation. Right-click and drag (apple+click) or the mouse wheel controls zooming and middle-click (I'm not sure how to do this on a 1 button mouse) controls panning<br />
* To set the slice and cut away some of the domain, press 'i' This enables the interactive cutting plane. To move it, left-click and drag on the white portion of the plane. You can then click on the white arrow normal to the plane to rotate the plane. The 2D slice will then update with the slice intersecting the small sphere on the cutting plane. The location of the plane (in native (stc?) coordinates will be shown along with the slice). <br />
<br />
* Particle Tracer<br />
** Windows Binary<br />
<br />
* Particle Tracer Files<br />
** Timestep 1<br />
** Timestep 2<br />
<br />
=== Upcoming Visualizations ===<br />
<br />
Particle tracing for dynamic vector field visualizations<br />
<br />
I'm having a small issue generating the appropriate vector field from the netCDF files I have. This is due to the fact that each component of the vector exists in a different coordinate space. From some research I've done, it seems like it's based on an Arakawa C Grid. This is not a game-stopping problem, but will take some time to get things figured out. This will be an important question to be resolved in my conversations with Yvette later today (Thurs. May 28). For now, I am planning on extracting 3 different scalar fields (each with its own coordinate system) and then interpolating these values onto the domain of the scalars (the rho-grid) to coalesce the data.<br />
<br />
I'm not entirely sure how to generate the appropriate vector field, and at first this will be further limited by the data type - the visualization software requires regular grids instead of curvilinear ones as we have. There are several possible fixes to this:<br />
<br />
* Generate a large regular grid by embedding the curvilinear grid in a regularly gridded space. This is computationally expensive, but need only be done once per time-step and can be done with relatively little development effort - this will be the first step.<br />
<br />
* Generate a transformation function to apply to the regular grid as a post-processing step. This is better than the first one, although more time-consuming. <br />
<br />
* Modify the renderer to respect curvilinear grids. This is the preferred option, but takes the most time.</div>Erandershttps://www.vistrails.org//index.php?title=Cmop&diff=1960Cmop2009-06-08T21:12:25Z<p>Eranders: /* Animations */</p>
<hr />
<div>== NSF Site Visit ==<br />
<br />
In order to get everything done for the upcoming NSF site visit, I have created this page to share both temporary and complete results as well as to hold discussions on visualization methods being used, why they are employed, and how to better depict data for the scientists in Oregon. Below are links to images and animations showing the current state of visualization of the curvilinear grid simulation sent to me by Yvette. <br />
<br />
=== Images ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_o2.png 1.png] <br />
** This visualization uses a combination of iso-surfaces of phytoplankton concentration and O2 saturation of the domain.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp.png 2.png]<br />
** Same as above only using Temperature instead of O2 saturation<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp_vs_o2.png 3.png]<br />
** Using the same iso-surfaces extracted in the above visualizations, we have loaded the O2 saturation scalar field and determined the values of this field on the phytoplankton concentration surfaces. Additionally, the entire domain is shown using an interactive cutting plane that determines the value of the 2D slice visualization as before.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field2.png 4.png]<br />
** Improving on the previous visualization, I am now providing equally spaced contours of the domain in the 2D slice-based visualization. This provides a much more intuitive visualization of the scalar field. Additionally, while the large 3D domain uses a relatively narrow range of the present scalar values for the colormap, I have increased this range for the 2D case. This provides a more complete visualization of the depth-based components present in the slices while accentuating surface variations in the 3D domain. I have also included the location of each slice in the dataset coordinates in the scalar bar associated with the 2D slice.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/salt_vel_vector_glyphs.png 5.png]<br />
** Initial visualization of the extracted velocity field of the regular grid. I use salt for coloring the domain and velocity magnitude for the vectors. This is just an initial visualization and will be refined. The placement of the velocity glyphs is interactively defined by using a seeding plane (Not shown).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field_vectors.png 6.png]<br />
** Building off of 4.png and 5.png, I've added the vector field as scaled, but uncolored, glyphs representing the velocity of the water in the simulation. The placement of vectors is determined by a user-defined, interactive seeding plane. I've also modified the underlying workflows to help simplify changing timesteps.<br />
<br />
=== Animations ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/test.avi 1.avi] | [http://www.sci.utah.edu/~eranders/screens/test.mov .mov]<br />
** This is a test animation generated in VisTrails depicting two types of planktons with temperatures and the flow field. I still haven't gotten the colormaps exactly correct yet, but that should be fixed shortly.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/2.avi 2.avi] | [http://www.sci.utah.edu/~eranders/screens/2.mov .mov]<br />
** This animation is generated in VisTrails similarly to the first one. Iso-surfaces of planktons are given as level-sets defined as percentages of the valid range of data. Additionally, adaptive colormapping provides a much better coloring scheme given the pretty high dynamic range of the data. The flow field is shown as arrow glyphs colored by the temperature at each point. This allows us to get a feel for the water temperature even after the domain colored by this field is clipped to expose the plankton concentrations. These animations make use of 69 of the available timesteps in the simulation - approximately half. I will be converting the remaining timesteps into a more usable form and will post a video using all of them (barring any feedback for changes for the visualization).<br />
<br />
=== New Horizon Images ===<br />
<br />
Please note that although the cast data does not currently have any good spatial reference, we are currently working on converting bathymetry information from one of the simulations to the lat/long coordinate frame. This will give the 3D renderings a good spatial context with which we can view them.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_001.png scatterPlots.png]<br />
** The scatter plots graph measurements of time, oxygen, temperature, salinity and conductivity against the changes in pressure. This image is an initial visualization of the readings made by the vessel New Horizon at Station and Cast NH-3. The data is now readable, and hopefully these initial plots will inspire more sophisticated visualizations.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_1thru10.png combinePlot.png]<br />
** The scatter plot compares the salinity versus pressure plots for the data sets measured at 10 separate sites, overlaying all of the measurements using semi-transparent points.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_2.png casts_1.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. Each data point is colored by salinity. <br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_1.png casts_2.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the lower portion of the data) of the same dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_3.png casts_3.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the upper portion of the data) of the same dataset.<br />
<br />
=== Software ===<br />
<br />
After installing VisTrails, you must have the following 2 packages installed for VisTrails to use. Simply unzip these into the directory: $HOME\.vistrails\userpackages<br />
<br />
* Required Packages<br />
** NumSciPy [http://www.sci.utah.edu/~eranders/NumSciPy.tar.gz NumSciPy.tar.gz]<br />
** Selfe [http://www.sci.utah.edu/~eranders/CMOP-SELFE.tar.gz CMOP-SELFE.tar.gz]<br />
<br />
* VisTrails<br />
** Mac Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-mac-10.5-intel-1.3-rc2-rev1495.dmg .dmg]<br />
** Windows Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-setup-1.3rc2-rev1494.zip .zip]<br />
<br />
* .vt files<br />
** [http://www.sci.utah.edu/~eranders/data/reg.vt reg.vt]<br />
<br />
After installing VisTrails and unpacking the required packages into the proper directory, start VisTrails. At this point, 2 windows will open - the spreadsheet and the builder window. The builder window is where visualizations are specified and the spreadsheet then displays the results of their execution. To enable the required packages, Go to the VisTrails menu and select Preferences. This will bring up a new window with a Module Packages tab. Go to this tab and select NumSciPy from the disabled packages list and enable it. Then do the same for the CMOP-SELFE package. With these module packages enabled you can open the reg.vt file posted above.<br />
<br />
Once this file is open, the builder window will display multiple ovals. Each oval represents a visualization. Select the appropriate visualization and press the Execute button. The results will then be displayed in the appropriate spreadsheet cells. However, before this executes properly, you may need to change filenames. To do this, enter the Pipeline mode by pressing the Pipeline button in the builder window. This will allow you to edit the visualization specification. The first filenames to change are in the Gridpak Reader Modules. These files specify the geometry to use for the visualization (for me it's OR_rect_3d_grid_z.nc) The Selfe Array Reader modules then need to be changed to the appropriate filenames for the timestep you wish to display. It is also here that you specify the appropriate scalar fields to use in the visualization. <br />
<br />
As an example:<br />
* Open reg.vt<br />
* Select the oval titled "3 fields"<br />
* Enter Pipeline mode<br />
* Change the filenames as appropriate on 3 Gridpak Reader and 3 Selfe Array Reader Modules. If you forget one, it will turn red on execution to indicate an error.<br />
* The spreadsheet will now have 2 windows with visualizations present. The left pane is the 3D view and the right is a 2D slice.<br />
** You may notice scalar bars are overlapping. To fix this, press 'a' and click and drag on a scalar bar. This will move it allowing you to resize and position it as you like. To select the other bar, press 'b' and do the same. If you find you are accidentally moving the bars instead of the model, press 'a' and 'b' again to disable the scalar bar interactions<br />
* To rotate, zoom, and pan the model, use your mouse. Left-click and drag controls rotation. Right-click and drag (apple+click) or the mouse wheel controls zooming and middle-click (I'm not sure how to do this on a 1 button mouse) controls panning<br />
* To set the slice and cut away some of the domain, press 'i' This enables the interactive cutting plane. To move it, left-click and drag on the white portion of the plane. You can then click on the white arrow normal to the plane to rotate the plane. The 2D slice will then update with the slice intersecting the small sphere on the cutting plane. The location of the plane (in native (stc?) coordinates will be shown along with the slice). <br />
<br />
* Particle Tracer<br />
** Windows Binary<br />
<br />
* Particle Tracer Files<br />
** Timestep 1<br />
** Timestep 2<br />
<br />
=== Upcoming Visualizations ===<br />
<br />
Particle tracing for dynamic vector field visualizations<br />
<br />
I'm having a small issue generating the appropriate vector field from the netCDF files I have. This is due to the fact that each component of the vector exists in a different coordinate space. From some research I've done, it seems like it's based on an Arakawa C Grid. This is not a game-stopping problem, but will take some time to get things figured out. This will be an important question to be resolved in my conversations with Yvette later today (Thurs. May 28). For now, I am planning on extracting 3 different scalar fields (each with its own coordinate system) and then interpolating these values onto the domain of the scalars (the rho-grid) to coalesce the data.<br />
<br />
I'm not entirely sure how to generate the appropriate vector field, and at first this will be further limited by the data type - the visualization software requires regular grids instead of curvilinear ones as we have. There are several possible fixes to this:<br />
<br />
* Generate a large regular grid by embedding the curvilinear grid in a regularly gridded space. This is computationally expensive, but need only be done once per time-step and can be done with relatively little development effort - this will be the first step.<br />
<br />
* Generate a transformation function to apply to the regular grid as a post-processing step. This is better than the first one, although more time-consuming. <br />
<br />
* Modify the renderer to respect curvilinear grids. This is the preferred option, but takes the most time.</div>Erandershttps://www.vistrails.org//index.php?title=Cmop&diff=1959Cmop2009-06-08T17:29:05Z<p>Eranders: /* New Horizon Images */</p>
<hr />
<div>== NSF Site Visit ==<br />
<br />
In order to get everything done for the upcoming NSF site visit, I have created this page to share both temporary and complete results as well as to hold discussions on visualization methods being used, why they are employed, and how to better depict data for the scientists in Oregon. Below are links to images and animations showing the current state of visualization of the curvilinear grid simulation sent to me by Yvette. <br />
<br />
=== Images ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_o2.png 1.png] <br />
** This visualization uses a combination of iso-surfaces of phytoplankton concentration and O2 saturation of the domain.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp.png 2.png]<br />
** Same as above only using Temperature instead of O2 saturation<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp_vs_o2.png 3.png]<br />
** Using the same iso-surfaces extracted in the above visualizations, we have loaded the O2 saturation scalar field and determined the values of this field on the phytoplankton concentration surfaces. Additionally, the entire domain is shown using an interactive cutting plane that determines the value of the 2D slice visualization as before.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field2.png 4.png]<br />
** Improving on the previous visualization, I am now providing equally spaced contours of the domain in the 2D slice-based visualization. This provides a much more intuitive visualization of the scalar field. Additionally, while the large 3D domain uses a relatively narrow range of the present scalar values for the colormap, I have increased this range for the 2D case. This provides a more complete visualization of the depth-based components present in the slices while accentuating surface variations in the 3D domain. I have also included the location of each slice in the dataset coordinates in the scalar bar associated with the 2D slice.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/salt_vel_vector_glyphs.png 5.png]<br />
** Initial visualization of the extracted velocity field of the regular grid. I use salt for coloring the domain and velocity magnitude for the vectors. This is just an initial visualization and will be refined. The placement of the velocity glyphs is interactively defined by using a seeding plane (Not shown).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field_vectors.png 6.png]<br />
** Building off of 4.png and 5.png, I've added the vector field as scaled, but uncolored, glyphs representing the velocity of the water in the simulation. The placement of vectors is determined by a user-defined, interactive seeding plane. I've also modified the underlying workflows to help simplify changing timesteps.<br />
<br />
=== Animations ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/test.avi 1.avi]<br />
** This is a test animation generated in VisTrails depicting two types of planktons with temperatures and the flow field. I still haven't gotten the colormaps exactly correct yet, but that should be fixed shortly.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/2.avi 2.avi]<br />
** This animation is generated in VisTrails similarly to the first one. Iso-surfaces of planktons are given as level-sets defined as percentages of the valid range of data. Additionally, adaptive colormapping provides a much better coloring scheme given the pretty high dynamic range of the data. The flow field is shown as arrow glyphs colored by the temperature at each point. This allows us to get a feel for the water temperature even after the domain colored by this field is clipped to expose the plankton concentrations. These animations make use of 69 of the available timesteps in the simulation - approximately half. I will be converting the remaining timesteps into a more usable form and will post a video using all of them (barring any feedback for changes for the visualization).<br />
<br />
=== New Horizon Images ===<br />
<br />
Please note that although the cast data does not currently have any good spatial reference, we are currently working on converting bathymetry information from one of the simulations to the lat/long coordinate frame. This will give the 3D renderings a good spatial context with which we can view them.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_001.png scatterPlots.png]<br />
** The scatter plots graph measurements of time, oxygen, temperature, salinity and conductivity against the changes in pressure. This image is an initial visualization of the readings made by the vessel New Horizon at Station and Cast NH-3. The data is now readable, and hopefully these initial plots will inspire more sophisticated visualizations.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_1thru10.png combinePlot.png]<br />
** The scatter plot compares the salinity versus pressure plots for the data sets measured at 10 separate sites, overlaying all of the measurements using semi-transparent points.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_2.png casts_1.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. Each data point is colored by salinity. <br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_1.png casts_2.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the lower portion of the data) of the same dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_3.png casts_3.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view (zoomed in to the upper portion of the data) of the same dataset.<br />
<br />
=== Software ===<br />
<br />
After installing VisTrails, you must have the following 2 packages installed for VisTrails to use. Simply unzip these into the directory: $HOME\.vistrails\userpackages<br />
<br />
* Required Packages<br />
** NumSciPy [http://www.sci.utah.edu/~eranders/NumSciPy.tar.gz NumSciPy.tar.gz]<br />
** Selfe [http://www.sci.utah.edu/~eranders/CMOP-SELFE.tar.gz CMOP-SELFE.tar.gz]<br />
<br />
* VisTrails<br />
** Mac Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-mac-10.5-intel-1.3-rc2-rev1495.dmg .dmg]<br />
** Windows Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-setup-1.3rc2-rev1494.zip .zip]<br />
<br />
* .vt files<br />
** [http://www.sci.utah.edu/~eranders/data/reg.vt reg.vt]<br />
<br />
After installing VisTrails and unpacking the required packages into the proper directory, start VisTrails. At this point, 2 windows will open - the spreadsheet and the builder window. The builder window is where visualizations are specified and the spreadsheet then displays the results of their execution. To enable the required packages, Go to the VisTrails menu and select Preferences. This will bring up a new window with a Module Packages tab. Go to this tab and select NumSciPy from the disabled packages list and enable it. Then do the same for the CMOP-SELFE package. With these module packages enabled you can open the reg.vt file posted above.<br />
<br />
Once this file is open, the builder window will display multiple ovals. Each oval represents a visualization. Select the appropriate visualization and press the Execute button. The results will then be displayed in the appropriate spreadsheet cells. However, before this executes properly, you may need to change filenames. To do this, enter the Pipeline mode by pressing the Pipeline button in the builder window. This will allow you to edit the visualization specification. The first filenames to change are in the Gridpak Reader Modules. These files specify the geometry to use for the visualization (for me it's OR_rect_3d_grid_z.nc) The Selfe Array Reader modules then need to be changed to the appropriate filenames for the timestep you wish to display. It is also here that you specify the appropriate scalar fields to use in the visualization. <br />
<br />
As an example:<br />
* Open reg.vt<br />
* Select the oval titled "3 fields"<br />
* Enter Pipeline mode<br />
* Change the filenames as appropriate on 3 Gridpak Reader and 3 Selfe Array Reader Modules. If you forget one, it will turn red on execution to indicate an error.<br />
* The spreadsheet will now have 2 windows with visualizations present. The left pane is the 3D view and the right is a 2D slice.<br />
** You may notice scalar bars are overlapping. To fix this, press 'a' and click and drag on a scalar bar. This will move it allowing you to resize and position it as you like. To select the other bar, press 'b' and do the same. If you find you are accidentally moving the bars instead of the model, press 'a' and 'b' again to disable the scalar bar interactions<br />
* To rotate, zoom, and pan the model, use your mouse. Left-click and drag controls rotation. Right-click and drag (apple+click) or the mouse wheel controls zooming and middle-click (I'm not sure how to do this on a 1 button mouse) controls panning<br />
* To set the slice and cut away some of the domain, press 'i' This enables the interactive cutting plane. To move it, left-click and drag on the white portion of the plane. You can then click on the white arrow normal to the plane to rotate the plane. The 2D slice will then update with the slice intersecting the small sphere on the cutting plane. The location of the plane (in native (stc?) coordinates will be shown along with the slice). <br />
<br />
* Particle Tracer<br />
** Windows Binary<br />
<br />
* Particle Tracer Files<br />
** Timestep 1<br />
** Timestep 2<br />
<br />
=== Upcoming Visualizations ===<br />
<br />
Particle tracing for dynamic vector field visualizations<br />
<br />
I'm having a small issue generating the appropriate vector field from the netCDF files I have. This is due to the fact that each component of the vector exists in a different coordinate space. From some research I've done, it seems like it's based on an Arakawa C Grid. This is not a game-stopping problem, but will take some time to get things figured out. This will be an important question to be resolved in my conversations with Yvette later today (Thurs. May 28). For now, I am planning on extracting 3 different scalar fields (each with its own coordinate system) and then interpolating these values onto the domain of the scalars (the rho-grid) to coalesce the data.<br />
<br />
I'm not entirely sure how to generate the appropriate vector field, and at first this will be further limited by the data type - the visualization software requires regular grids instead of curvilinear ones as we have. There are several possible fixes to this:<br />
<br />
* Generate a large regular grid by embedding the curvilinear grid in a regularly gridded space. This is computationally expensive, but need only be done once per time-step and can be done with relatively little development effort - this will be the first step.<br />
<br />
* Generate a transformation function to apply to the regular grid as a post-processing step. This is better than the first one, although more time-consuming. <br />
<br />
* Modify the renderer to respect curvilinear grids. This is the preferred option, but takes the most time.</div>Erandershttps://www.vistrails.org//index.php?title=Cmop&diff=1958Cmop2009-06-08T17:25:23Z<p>Eranders: /* New Horizon Images */</p>
<hr />
<div>== NSF Site Visit ==<br />
<br />
In order to get everything done for the upcoming NSF site visit, I have created this page to share both temporary and complete results as well as to hold discussions on visualization methods being used, why they are employed, and how to better depict data for the scientists in Oregon. Below are links to images and animations showing the current state of visualization of the curvilinear grid simulation sent to me by Yvette. <br />
<br />
=== Images ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_o2.png 1.png] <br />
** This visualization uses a combination of iso-surfaces of phytoplankton concentration and O2 saturation of the domain.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp.png 2.png]<br />
** Same as above only using Temperature instead of O2 saturation<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp_vs_o2.png 3.png]<br />
** Using the same iso-surfaces extracted in the above visualizations, we have loaded the O2 saturation scalar field and determined the values of this field on the phytoplankton concentration surfaces. Additionally, the entire domain is shown using an interactive cutting plane that determines the value of the 2D slice visualization as before.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field2.png 4.png]<br />
** Improving on the previous visualization, I am now providing equally spaced contours of the domain in the 2D slice-based visualization. This provides a much more intuitive visualization of the scalar field. Additionally, while the large 3D domain uses a relatively narrow range of the present scalar values for the colormap, I have increased this range for the 2D case. This provides a more complete visualization of the depth-based components present in the slices while accentuating surface variations in the 3D domain. I have also included the location of each slice in the dataset coordinates in the scalar bar associated with the 2D slice.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/salt_vel_vector_glyphs.png 5.png]<br />
** Initial visualization of the extracted velocity field of the regular grid. I use salt for coloring the domain and velocity magnitude for the vectors. This is just an initial visualization and will be refined. The placement of the velocity glyphs is interactively defined by using a seeding plane (Not shown).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field_vectors.png 6.png]<br />
** Building off of 4.png and 5.png, I've added the vector field as scaled, but uncolored, glyphs representing the velocity of the water in the simulation. The placement of vectors is determined by a user-defined, interactive seeding plane. I've also modified the underlying workflows to help simplify changing timesteps.<br />
<br />
=== Animations ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/test.avi 1.avi]<br />
** This is a test animation generated in VisTrails depicting two types of planktons with temperatures and the flow field. I still haven't gotten the colormaps exactly correct yet, but that should be fixed shortly.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/2.avi 2.avi]<br />
** This animation is generated in VisTrails similarly to the first one. Iso-surfaces of planktons are given as level-sets defined as percentages of the valid range of data. Additionally, adaptive colormapping provides a much better coloring scheme given the pretty high dynamic range of the data. The flow field is shown as arrow glyphs colored by the temperature at each point. This allows us to get a feel for the water temperature even after the domain colored by this field is clipped to expose the plankton concentrations. These animations make use of 69 of the available timesteps in the simulation - approximately half. I will be converting the remaining timesteps into a more usable form and will post a video using all of them (barring any feedback for changes for the visualization).<br />
<br />
=== New Horizon Images ===<br />
<br />
Please note that although the cast data does not currently have any good spatial reference, we are currently working on converting bathymetry information from one of the simulations to the lat/long coordinate frame. This will give the 3D renderings a good spatial context with which we can view them.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_001.png scatterPlots.png]<br />
** The scatter plots graph measurements of time, oxygen, temperature, salinity and conductivity against the changes in pressure. This image is an initial visualization of the readings made by the vessel New Horizon at Station and Cast NH-3. The data is now readable, and hopefully these initial plots will inspire more sophisticated visualizations.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_1thru10.png combinePlot.png]<br />
** The scatter plot compares the salinity versus pressure plots for the data sets measured at 10 separate sites, overlaying all of the measurements using semi-transparent points.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_1.png casts_1.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. Each data point is colored by salinity. <br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_2.png casts_2.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view of the same dataset.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_3.png casts_3.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view of the same dataset.<br />
<br />
=== Software ===<br />
<br />
After installing VisTrails, you must have the following 2 packages installed for VisTrails to use. Simply unzip these into the directory: $HOME\.vistrails\userpackages<br />
<br />
* Required Packages<br />
** NumSciPy [http://www.sci.utah.edu/~eranders/NumSciPy.tar.gz NumSciPy.tar.gz]<br />
** Selfe [http://www.sci.utah.edu/~eranders/CMOP-SELFE.tar.gz CMOP-SELFE.tar.gz]<br />
<br />
* VisTrails<br />
** Mac Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-mac-10.5-intel-1.3-rc2-rev1495.dmg .dmg]<br />
** Windows Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-setup-1.3rc2-rev1494.zip .zip]<br />
<br />
* .vt files<br />
** [http://www.sci.utah.edu/~eranders/data/reg.vt reg.vt]<br />
<br />
After installing VisTrails and unpacking the required packages into the proper directory, start VisTrails. At this point, 2 windows will open - the spreadsheet and the builder window. The builder window is where visualizations are specified and the spreadsheet then displays the results of their execution. To enable the required packages, Go to the VisTrails menu and select Preferences. This will bring up a new window with a Module Packages tab. Go to this tab and select NumSciPy from the disabled packages list and enable it. Then do the same for the CMOP-SELFE package. With these module packages enabled you can open the reg.vt file posted above.<br />
<br />
Once this file is open, the builder window will display multiple ovals. Each oval represents a visualization. Select the appropriate visualization and press the Execute button. The results will then be displayed in the appropriate spreadsheet cells. However, before this executes properly, you may need to change filenames. To do this, enter the Pipeline mode by pressing the Pipeline button in the builder window. This will allow you to edit the visualization specification. The first filenames to change are in the Gridpak Reader Modules. These files specify the geometry to use for the visualization (for me it's OR_rect_3d_grid_z.nc) The Selfe Array Reader modules then need to be changed to the appropriate filenames for the timestep you wish to display. It is also here that you specify the appropriate scalar fields to use in the visualization. <br />
<br />
As an example:<br />
* Open reg.vt<br />
* Select the oval titled "3 fields"<br />
* Enter Pipeline mode<br />
* Change the filenames as appropriate on 3 Gridpak Reader and 3 Selfe Array Reader Modules. If you forget one, it will turn red on execution to indicate an error.<br />
* The spreadsheet will now have 2 windows with visualizations present. The left pane is the 3D view and the right is a 2D slice.<br />
** You may notice scalar bars are overlapping. To fix this, press 'a' and click and drag on a scalar bar. This will move it allowing you to resize and position it as you like. To select the other bar, press 'b' and do the same. If you find you are accidentally moving the bars instead of the model, press 'a' and 'b' again to disable the scalar bar interactions<br />
* To rotate, zoom, and pan the model, use your mouse. Left-click and drag controls rotation. Right-click and drag (apple+click) or the mouse wheel controls zooming and middle-click (I'm not sure how to do this on a 1 button mouse) controls panning<br />
* To set the slice and cut away some of the domain, press 'i' This enables the interactive cutting plane. To move it, left-click and drag on the white portion of the plane. You can then click on the white arrow normal to the plane to rotate the plane. The 2D slice will then update with the slice intersecting the small sphere on the cutting plane. The location of the plane (in native (stc?) coordinates will be shown along with the slice). <br />
<br />
* Particle Tracer<br />
** Windows Binary<br />
<br />
* Particle Tracer Files<br />
** Timestep 1<br />
** Timestep 2<br />
<br />
=== Upcoming Visualizations ===<br />
<br />
Particle tracing for dynamic vector field visualizations<br />
<br />
I'm having a small issue generating the appropriate vector field from the netCDF files I have. This is due to the fact that each component of the vector exists in a different coordinate space. From some research I've done, it seems like it's based on an Arakawa C Grid. This is not a game-stopping problem, but will take some time to get things figured out. This will be an important question to be resolved in my conversations with Yvette later today (Thurs. May 28). For now, I am planning on extracting 3 different scalar fields (each with its own coordinate system) and then interpolating these values onto the domain of the scalars (the rho-grid) to coalesce the data.<br />
<br />
I'm not entirely sure how to generate the appropriate vector field, and at first this will be further limited by the data type - the visualization software requires regular grids instead of curvilinear ones as we have. There are several possible fixes to this:<br />
<br />
* Generate a large regular grid by embedding the curvilinear grid in a regularly gridded space. This is computationally expensive, but need only be done once per time-step and can be done with relatively little development effort - this will be the first step.<br />
<br />
* Generate a transformation function to apply to the regular grid as a post-processing step. This is better than the first one, although more time-consuming. <br />
<br />
* Modify the renderer to respect curvilinear grids. This is the preferred option, but takes the most time.</div>Erandershttps://www.vistrails.org//index.php?title=Cmop&diff=1957Cmop2009-06-08T17:25:03Z<p>Eranders: /* New Horizon Images */</p>
<hr />
<div>== NSF Site Visit ==<br />
<br />
In order to get everything done for the upcoming NSF site visit, I have created this page to share both temporary and complete results as well as to hold discussions on visualization methods being used, why they are employed, and how to better depict data for the scientists in Oregon. Below are links to images and animations showing the current state of visualization of the curvilinear grid simulation sent to me by Yvette. <br />
<br />
=== Images ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_o2.png 1.png] <br />
** This visualization uses a combination of iso-surfaces of phytoplankton concentration and O2 saturation of the domain.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp.png 2.png]<br />
** Same as above only using Temperature instead of O2 saturation<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/phyto_vs_temp_vs_o2.png 3.png]<br />
** Using the same iso-surfaces extracted in the above visualizations, we have loaded the O2 saturation scalar field and determined the values of this field on the phytoplankton concentration surfaces. Additionally, the entire domain is shown using an interactive cutting plane that determines the value of the 2D slice visualization as before.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field2.png 4.png]<br />
** Improving on the previous visualization, I am now providing equally spaced contours of the domain in the 2D slice-based visualization. This provides a much more intuitive visualization of the scalar field. Additionally, while the large 3D domain uses a relatively narrow range of the present scalar values for the colormap, I have increased this range for the 2D case. This provides a more complete visualization of the depth-based components present in the slices while accentuating surface variations in the 3D domain. I have also included the location of each slice in the dataset coordinates in the scalar bar associated with the 2D slice.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/salt_vel_vector_glyphs.png 5.png]<br />
** Initial visualization of the extracted velocity field of the regular grid. I use salt for coloring the domain and velocity magnitude for the vectors. This is just an initial visualization and will be refined. The placement of the velocity glyphs is interactively defined by using a seeding plane (Not shown).<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/multi_field_vectors.png 6.png]<br />
** Building off of 4.png and 5.png, I've added the vector field as scaled, but uncolored, glyphs representing the velocity of the water in the simulation. The placement of vectors is determined by a user-defined, interactive seeding plane. I've also modified the underlying workflows to help simplify changing timesteps.<br />
<br />
=== Animations ===<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/test.avi 1.avi]<br />
** This is a test animation generated in VisTrails depicting two types of planktons with temperatures and the flow field. I still haven't gotten the colormaps exactly correct yet, but that should be fixed shortly.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/2.avi 2.avi]<br />
** This animation is generated in VisTrails similarly to the first one. Iso-surfaces of planktons are given as level-sets defined as percentages of the valid range of data. Additionally, adaptive colormapping provides a much better coloring scheme given the pretty high dynamic range of the data. The flow field is shown as arrow glyphs colored by the temperature at each point. This allows us to get a feel for the water temperature even after the domain colored by this field is clipped to expose the plankton concentrations. These animations make use of 69 of the available timesteps in the simulation - approximately half. I will be converting the remaining timesteps into a more usable form and will post a video using all of them (barring any feedback for changes for the visualization).<br />
<br />
=== New Horizon Images ===<br />
<br />
Please note that although the cast data does not currently have any good spatial reference, we are currently working on converting bathymetry information from one of the simulations to the lat/long coordinate frame. This will give the 3D renderings a good spatial context with which we can view them.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_001.png scatterPlots.png]<br />
** The scatter plots graph measurements of time, oxygen, temperature, salinity and conductivity against the changes in pressure. This image is an initial visualization of the readings made by the vessel New Horizon at Station and Cast NH-3. The data is now readable, and hopefully these initial plots will inspire more sophisticated visualizations.<br />
<br />
* [http://www.cs.utah.edu/~jdaniels/research/images/newHorizon_1thru10.png combinePlot.png]<br />
** The scatter plot compares the salinity versus pressure plots for the data sets measured at 10 separate sites, overlaying all of the measurements using semi-transparent points.<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_1.png casts_1.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. Each data point is colored by salinity. <br />
<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_2.png casts_2.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view of the same dataset.<br />
<br />
<br />
* [http://www.sci.utah.edu/~eranders/screens/casts_3.png casts_3.png]<br />
** Using the Lat/long coordinates associated with each cast, we use the data's pressure value as an approximation of depth. This image is just a different view of the same dataset.<br />
<br />
=== Software ===<br />
<br />
After installing VisTrails, you must have the following 2 packages installed for VisTrails to use. Simply unzip these into the directory: $HOME\.vistrails\userpackages<br />
<br />
* Required Packages<br />
** NumSciPy [http://www.sci.utah.edu/~eranders/NumSciPy.tar.gz NumSciPy.tar.gz]<br />
** Selfe [http://www.sci.utah.edu/~eranders/CMOP-SELFE.tar.gz CMOP-SELFE.tar.gz]<br />
<br />
* VisTrails<br />
** Mac Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-mac-10.5-intel-1.3-rc2-rev1495.dmg .dmg]<br />
** Windows Binary [http://www.sci.utah.edu/~emanuele/files/vistrails-setup-1.3rc2-rev1494.zip .zip]<br />
<br />
* .vt files<br />
** [http://www.sci.utah.edu/~eranders/data/reg.vt reg.vt]<br />
<br />
After installing VisTrails and unpacking the required packages into the proper directory, start VisTrails. At this point, 2 windows will open - the spreadsheet and the builder window. The builder window is where visualizations are specified and the spreadsheet then displays the results of their execution. To enable the required packages, Go to the VisTrails menu and select Preferences. This will bring up a new window with a Module Packages tab. Go to this tab and select NumSciPy from the disabled packages list and enable it. Then do the same for the CMOP-SELFE package. With these module packages enabled you can open the reg.vt file posted above.<br />
<br />
Once this file is open, the builder window will display multiple ovals. Each oval represents a visualization. Select the appropriate visualization and press the Execute button. The results will then be displayed in the appropriate spreadsheet cells. However, before this executes properly, you may need to change filenames. To do this, enter the Pipeline mode by pressing the Pipeline button in the builder window. This will allow you to edit the visualization specification. The first filenames to change are in the Gridpak Reader Modules. These files specify the geometry to use for the visualization (for me it's OR_rect_3d_grid_z.nc) The Selfe Array Reader modules then need to be changed to the appropriate filenames for the timestep you wish to display. It is also here that you specify the appropriate scalar fields to use in the visualization. <br />
<br />
As an example:<br />
* Open reg.vt<br />
* Select the oval titled "3 fields"<br />
* Enter Pipeline mode<br />
* Change the filenames as appropriate on 3 Gridpak Reader and 3 Selfe Array Reader Modules. If you forget one, it will turn red on execution to indicate an error.<br />
* The spreadsheet will now have 2 windows with visualizations present. The left pane is the 3D view and the right is a 2D slice.<br />
** You may notice scalar bars are overlapping. To fix this, press 'a' and click and drag on a scalar bar. This will move it allowing you to resize and position it as you like. To select the other bar, press 'b' and do the same. If you find you are accidentally moving the bars instead of the model, press 'a' and 'b' again to disable the scalar bar interactions<br />
* To rotate, zoom, and pan the model, use your mouse. Left-click and drag controls rotation. Right-click and drag (apple+click) or the mouse wheel controls zooming and middle-click (I'm not sure how to do this on a 1 button mouse) controls panning<br />
* To set the slice and cut away some of the domain, press 'i' This enables the interactive cutting plane. To move it, left-click and drag on the white portion of the plane. You can then click on the white arrow normal to the plane to rotate the plane. The 2D slice will then update with the slice intersecting the small sphere on the cutting plane. The location of the plane (in native (stc?) coordinates will be shown along with the slice). <br />
<br />
* Particle Tracer<br />
** Windows Binary<br />
<br />
* Particle Tracer Files<br />
** Timestep 1<br />
** Timestep 2<br />
<br />
=== Upcoming Visualizations ===<br />
<br />
Particle tracing for dynamic vector field visualizations<br />
<br />
I'm having a small issue generating the appropriate vector field from the netCDF files I have. This is due to the fact that each component of the vector exists in a different coordinate space. From some research I've done, it seems like it's based on an Arakawa C Grid. This is not a game-stopping problem, but will take some time to get things figured out. This will be an important question to be resolved in my conversations with Yvette later today (Thurs. May 28). For now, I am planning on extracting 3 different scalar fields (each with its own coordinate system) and then interpolating these values onto the domain of the scalars (the rho-grid) to coalesce the data.<br />
<br />
I'm not entirely sure how to generate the appropriate vector field, and at first this will be further limited by the data type - the visualization software requires regular grids instead of curvilinear ones as we have. There are several possible fixes to this:<br />
<br />
* Generate a large regular grid by embedding the curvilinear grid in a regularly gridded space. This is computationally expensive, but need only be done once per time-step and can be done with relatively little development effort - this will be the first step.<br />
<br />
* Generate a transformation function to apply to the regular grid as a post-processing step. This is better than the first one, although more time-consuming. <br />
<br />
* Modify the renderer to respect curvilinear grids. This is the preferred option, but takes the most time.</div>Eranders