[vtkusers] How to extract multiple scalar values along a stream line?

Mark B Stucky mstucky5 at cox.net
Wed May 11 19:41:09 EDT 2005


Thanks,

It turns out that in my data file I had the additional variables (eg. 
density)
as SCALARS, but once I changed them to FIELDs, your solution worked
like a charm!

Many thanks,

--Mark

----- Original Message ----- 
From: "Amy Squillacote" <amy.squillacote at kitware.com>
To: "Mark B Stucky" <mstucky5 at cox.net>; <vtkusers at vtk.org>
Sent: Wednesday, May 11, 2005 8:50 AM
Subject: Re: [vtkusers] How to extract multiple scalar values along a stream 
line?


> Hi Mark,
>
> No, you don't need to add more inputs to the stream tracer.  (It doesn't 
> take additional inputs anyway.)  Instead, you need to get the additional 
> scalar arrays from the point data of the output of the stream tracer. 
> I've added code below (inserted into the example code you sent) to 
> demonstrate this.
>
> - Amy
>
> At 06:44 PM 5/10/2005, Mark B Stucky wrote:
>
>>First of all, I'm fairly new to VTK, so please excuse my ignorance.
>>I've tried searching the mailing list archives, but I didn't find
>>anything that seemed like what I needed.
>>
>>
>>I have a structured grid that represents a 3d flow field.  At
>>each grid point, there are multiple scalars defined.
>>
>>     vtkStructuredGridReader SGR
>>        SGR SetOutput [SGR GetOutput]
>>        SGR SetFileName sgl3d.vtk
>>        SGR SetScalarsName mach
>>        SGR SetVectorsName velocity
>>
>>     other scalars include: density, stagnation_energy, etc.
>>
>>I then use "vtkStreamTracer" to generate a series of
>>stream lines.
>>
>>     vtkStreamTracer SL
>>     SL SetInput [SGR GetOutput]
>>     SL SetSource aPolyLineGrid
>>     SL SetIntegratorTypeToRungeKutta4
>>     SL SetIntegrationDirection 1
>>     SL SetTerminalSpeed 0.0
>>
>>        [etc.]
>>
>>
>>I've been able dump out the coordinates of each streamline
>>along with the scalar, "mach", at each coordinate with the
>>following code:
>>
>>     set s [SL GetOutput]
>>
>>     prtStreamLines $s lines_1.dat
>>
>>     ------------------------------------------------
>>
>>     proc prtStreamLines {s file_name} {
>>
>>         set fp [open $file_name w]
>>
>>         set ld       [[$s GetLines] GetData]
>>         set ssd      [[$s GetPointData] GetScalars]
>
> set densityArray [[$s GetPointData] GetArray "density"
>
>>         set numLines [$s GetNumberOfLines]
>>         set sVrts    [$s GetPoints]
>>
>>         set idx 0
>>         set stLst {}
>>         for {set i 0} {$i<$numLines} {incr i} {    ;# For each line...
>>             set nPts [$ld GetComponent $idx 0]     ;# # of points in this 
>> line
>>             set endPt [expr $idx + $nPts]          ;# Indx to last pt in 
>> this line
>>
>>             for {set j [expr $idx+1]} {$j<=$endPt} {incr j} {
>>
>>                 set ptNo  [$ld GetComponent $j 0]      ;# Point # (indx 
>> into scalars)
>>                 set mach  [$ssd GetComponent 0 $ptNo]  ;# Point # 
>> (scalar)
>
>                   set density [$densityArray GetComponent 0 $ptNo] ;
>
>>                 set coord [$sVrts GetPoint $ptNo]      ;# Point # 
>> (coords)
>>                 puts $fp "  $i $ptNo $coord $mach $density"
>>             }
>>             incr idx [expr $nPts + 1]                  ;# Move to next 
>> line
>>         }
>>         close $fp
>>     }
>>
>>
>>What I want to do is to dump out some of the additional scalar
>>values.  I'm guessing that I need to add additional inputs (?)
>>to the streamtracer object, "SL", to make them available to the
>>"prtStreamLines" routine.  I just haven't figured out the right
>>sequence of steps.
>>
>>I'm hoping that someone will be able to point me in the right
>>direction.
>>
>>Thanks,
>>
>>--Mark Stucky
>>
>>_______________________________________________
>>This is the private VTK discussion list. Please keep messages on-topic. 
>>Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>>Follow this link to subscribe/unsubscribe:
>>http://www.vtk.org/mailman/listinfo/vtkusers
>
> 





More information about the vtkusers mailing list