Difference between revisions of "Visualizing AWP-ODC Output"

From SCECpedia
Jump to navigationJump to search
Line 46: Line 46:
 
=== Velocity data ===
 
=== Velocity data ===
  
To load velocity data, go to File->Open and select the XDMF file you previously made.  It will appear in the 'Pipeline Browser' window in the upper left.  You may need to click on the eye next to it to get it to display. Additionally, the data is rendered on the Y/Z plane (there is a reason I had to set it up this way, but now I forget why), so click on the '-X' icon to the right of the Slice pull-down in the toolbar.  You should see the rectangle defined by your simulation region.  You can change the timestep you're looking at by changing the value in the
+
To load velocity data, go to File->Open and select the XDMF file you previously made.  It will appear in the 'Pipeline Browser' window in the upper left.  You may need to click on the eye next to it to get it to display. Additionally, the data is rendered on the Y/Z plane (there is a reason I had to set it up this way, but now I forget why), so click on the '-X' icon to the right of the Slice pull-down in the toolbar.  You should see the rectangle defined by your simulation region.  You can change the timestep you're looking at by changing the value in the text box to the right of "Time:".
  
 +
=== Traces ===
 +
 +
Loading traces is more involved.  For each trace:
 +
 +
#Go to File->Open and select the .csv trace file you created earlier.  The .csv file should appear in the Pipeline Browser window on the left.
 +
#On the Properties tab below the Pipeline Browser, de-select 'Have Headers' and click 'Apply'.  A spreadsheet will appear.
 +
#Go to Filters->Alphabetical->Table to Points.  This will open a new filter, below your .csv file in the Pipeline Browser.
 +
#In the Properties tab, change the Y Column pull-down to "Field 1", and the Z column pull-down to "Field 2".  Click "Apply".  You have now converted the .csv into a series of points.  You can close the spreadsheet.  If you click on the eye next to 'TableToPoints1' in the Pipeline Browser, you will see your outline appear, but as a series of points.  We will next convert it to line segments.
 +
#Go to Filters->Alphabetical->Programmable Filter.  This filter allows you to write your own VTK code, in Python, to do whatever you like.  We will write code which will convert the series of points into line segments.
 +
#Copy and paste the following into the 'Script' section of the Properties tab:
 +
pdi = self.GetPolyDataInput()
 +
pdo = self.GetPolyDataOutput()
 +
numPoints = pdi.GetNumberOfPoints()
 +
pdo.Allocate()
 +
for i in range(0, numPoints-1):
 +
  points = [i, i+1]
 +
  pdo.InsertNextCell(3,2,points)
 +
#Click 'Apply'.  It may take a moment, depending on how many points you have.  You should now see the outline of the object.  If you don't, try toggling the eye.
 +
#To change the color of the object, click on "ProgrammableFilter1", scroll down in the Properties tab, and under Coloring click the Edit button and pick a new color.  You can also change the Line Width in the Styling section.
  
=== Traces ===
+
Repeat this until all your traces have been loaded.
  
 
== Modify visuals ==
 
== Modify visuals ==

Revision as of 19:38, 30 April 2018

This page documents a procedure to visualize AWP-ODC velocity output, using remote Paraview. So far, this procedure has only been tested on Titan using Paraview 4.4.0.

Configure the simulation

When running the AWP-ODC simulation, make sure it is configured to produce velocity output.

Take note of the following parameters:

  • NX, NY, NZ (and NBGX, NEDX, NGBY, NEDY, NGBZ, NEDZ if specified)
  • WRITE_STEP
  • NSKPX, NSKPY, NSKPZ
  • NTISKP

They'll be needed when producing the output.

Create a Paraview XDMF file

Once the simulation is complete, we must create a configuration file which tells Paraview how the velocity data is laid out in memory.

For this, run the script create_timeseries_file.py.

Usage: ./create_timeseries_file.py <X dim in output> <Y dim in output> <grid decimation> <NT in sim> <DT of sim> <NTISKP> <timesteps output per file> <prefix> <output file>

Based on this, a XDMF (XML) file is produced which can serve as input to Paraview.

Create traces

Often, other visual references are needed to make the visualization meaningful. The approach outlined uses a Cartesian grid projection to display the velocity results. This means that to display other data, we have to convert the data from (lat, lon) into (X index, Y index).

To do this, use the code get_grid_values.c .


Use local Paraview to connect to remote nodes

The easiest way to visualize the data is to leave it on the remote system, and use the client/server functionality of Paraview. In this mode, Paraview connects to a remote system and uses the remote cluster to drive the rendering.

Follow the instructions at Titan's Paraview guide, under "Interactive Mode", to create a connection.

Load datasets

Once the job starts on Titan, you can begin loading data.

Velocity data

To load velocity data, go to File->Open and select the XDMF file you previously made. It will appear in the 'Pipeline Browser' window in the upper left. You may need to click on the eye next to it to get it to display. Additionally, the data is rendered on the Y/Z plane (there is a reason I had to set it up this way, but now I forget why), so click on the '-X' icon to the right of the Slice pull-down in the toolbar. You should see the rectangle defined by your simulation region. You can change the timestep you're looking at by changing the value in the text box to the right of "Time:".

Traces

Loading traces is more involved. For each trace:

  1. Go to File->Open and select the .csv trace file you created earlier. The .csv file should appear in the Pipeline Browser window on the left.
  2. On the Properties tab below the Pipeline Browser, de-select 'Have Headers' and click 'Apply'. A spreadsheet will appear.
  3. Go to Filters->Alphabetical->Table to Points. This will open a new filter, below your .csv file in the Pipeline Browser.
  4. In the Properties tab, change the Y Column pull-down to "Field 1", and the Z column pull-down to "Field 2". Click "Apply". You have now converted the .csv into a series of points. You can close the spreadsheet. If you click on the eye next to 'TableToPoints1' in the Pipeline Browser, you will see your outline appear, but as a series of points. We will next convert it to line segments.
  5. Go to Filters->Alphabetical->Programmable Filter. This filter allows you to write your own VTK code, in Python, to do whatever you like. We will write code which will convert the series of points into line segments.
  6. Copy and paste the following into the 'Script' section of the Properties tab:
pdi = self.GetPolyDataInput()
pdo = self.GetPolyDataOutput()
numPoints = pdi.GetNumberOfPoints()
pdo.Allocate()
for i in range(0, numPoints-1):
  points = [i, i+1]
  pdo.InsertNextCell(3,2,points)
  1. Click 'Apply'. It may take a moment, depending on how many points you have. You should now see the outline of the object. If you don't, try toggling the eye.
  2. To change the color of the object, click on "ProgrammableFilter1", scroll down in the Properties tab, and under Coloring click the Edit button and pick a new color. You can also change the Line Width in the Styling section.

Repeat this until all your traces have been loaded.

Modify visuals

Add timestamp

Change plot colors

Create series of PNGs

Create movie