[Paraview] use the same scalar data to create contour and color the surface

Cory Quammen cquammen at cs.unc.edu
Sun Apr 8 20:39:14 EDT 2012


On Sun, Apr 8, 2012 at 4:35 PM, Tom Schoenemann <toms at indiana.edu> wrote:
> Thanks Cory,
>
> The file you sent won't open in my Paraview. It does not recognize the
> extension (?).

That's odd. Did you load it through the File -> Load State menu item?
I didn't mention that's what you needed to do to load that file, but
in any case, it sounds like you were able to apply my suggestion,
albeit not with the outcome I had hoped.

> I followed what you suggested, however:
>
> 1) Loaded the first file and selected "apply".  This file has only binary
> scalars (0=background, 1=surface)
> 2) Selected calculator and created a function that consisted of:
> "scalars*1", to be renamed "surface location"; pressed "apply" again
> 3) Loaded the second file and selected "apply"  This file has float scalar
> values ranging from 0 to 10.7
> 4) control-selected both the calculator and second file, and then selected
> "Append Attributes"; and pressed "apply" again.  This resulted in 3 new
> items in the pipeline, all called AppendAttributes1.  The one at the bottom
> had a box icon (the other two had only arrows).
>
> When I click on the bottom AppendAttributes1 file and look at the
> information tab, it says it has 2 data arrays.  One is a double called
> "surface location" (matching what I thought I created in step 2 above), and
> has value range of 0 to 1 (which is correct).  However, the other one, which
> I assume is the one from the file loaded in step 3 above, now has a range of
> only 0 to 1 also (not 0 to 10.7, like it should).  So either it is doing
> something odd (like rescaling data??) or it got that data elsewhere?  Why is
> it doing this?

That is strange. As far as I know, there should be no rescaling or
even any recasting performed on the inputs to the Append Attributes
filter. At least I can't think of a reason there would need to be;
ParaView (actually, the VTK library underneath ParaView) supports
images with scalar fields with different component types. One thing to
try would be to put a calculator filter on your second image and
creating an Append Attributes filter on the outputs of both
calculators. The output from the calculator filters consists of double
arrays, so if the Append Attributes filter has a problem with
different array types, then putting both your images through a
calculator filter should fix that. If you are able to post example
data, I could give it a try and see what is going on.

> If I then compute a contour based on the "surface location" array in
> AppendAttributes1, I get the surface I expect to see.
>
> But the other array data is not any good (it isn't 0 to 10.7 anymore).  Even
> if it was, what exactly would I do then to color the surface with this other
> array?  Is that done with another filter?  Or is it done in the contour
> image?

Once you've created the contour, you can select it in the pipeline
browser (if it is not already selected), click on the Display tab,
find the Color panel, and choose the scalar field by which you want to
color the surface from the "Color by" menu.

Cory

> Thanks for any further help!
>
> -Tom
>
> On Apr 8, 2012, at 10:22 AM, Cory Quammen wrote:
>
> Tom,
>
> You can load your two images and, assuming they are the same size, use
> the Append Attributes filter to combine them. However, chances are
> good that the scalars in your image data will have the same name,
> meaning that Append attributes will grab only the scalar values from
> one of the images. To get around this limitation, you can "rename" the
> scalar field in one image by using a Calculator filter on it and
> setting the "Result Array Name" to something else. Your pipeline will
> look like this *before* applying the Append Attributes filter:
>
> Image1
> ---|
>   Calculator1
> Image2
>
> To apply the Append Attributes filter, select the Calculator1 filter
> and Image2. Use Ctrl-click on Windows to select more than one object
> in the pipeline browser. Then select Append Attributes from the
> Filters menu under the Alphabetical submenu.
>
> Now you should have two scalar fields in an image data. You can use
> one to do the contouring and the other to do the pseudo-coloring.
>
> I've attached a state file with two Wavelet sources in place of image
> inputs. It illustrates what I've described here.
>
> Hope that helps,
> Cory
>
>
> On Sun, Apr 8, 2012 at 9:45 AM, Tom Schoenemann <toms at indiana.edu> wrote:
>
> OK, but is there some way to combine two image files, each with its own
>
> scalars, into one image?  What I'm thinking about is reading in 2 copies of
>
> the same image, and using the scalars from one to display the contour, and
>
> the scalars from the other to display the colors?  I tried doing this, but I
>
> can't get it to work. I loaded one as the contour, and colored it one color
>
> only (white).  I then added the copy, an tried to view it as a volume.  It
>
> let me change the color map parameters, but it seems to display the color
>
> UNDERNEATH the first one (that has the contour.  I'm sure there must be a
>
> way to do this, but how?
>
>
> Perhaps there is a way to add 2 scalar fields to one image? Maybe image
>
> calculator could do this??
>
>
> -Tom
>
>
> On Apr 8, 2012, at 8:30 AM, Cory Quammen wrote:
>
>
> Tom,
>
>
> An isosurface by definition has the same scalar value everywhere on
>
> the surface, so what you describe happening is exactly what should
>
> happen, unless I misunderstand. You could contour by one scalar field
>
> and color by another scalar field and expect to see different colors,
>
> but if you try to color by the same scalar, you should expect to see
>
> only one color on the surface.
>
>
> Cory
>
>
> On Sun, Apr 8, 2012 at 3:38 AM, Tom Schoenemann <toms at indiana.edu> wrote:
>
>
> I have a single volume dataset that has scalar values only on a surface, and
>
>
> zeros everywhere else.  The scalar values represent statistics we have
>
>
> calculated for each point on a surface.  I've been able using the contour
>
>
> filter to create an isosurface from this dataset, but I can't get the
>
>
> surface to display anything other than a single color.  I have tried setting
>
>
> "contour by" to "compute normals" and "compute scalars", and then going to
>
>
> "display" and choosing "color by" scalars.  However, only a single value is
>
>
> allowed.  I have tried unselecting "automatically rescale to fit data range"
>
>
> and then entering my own range, but only my minimum value is accepted (even
>
>
> if I enter a different value for the maximum).
>
>
>
> Perhaps I am using paraview the wrong way, but I have to say, it isn't
>
>
> intuitive.  Is there a way to use the same scalar data (same file) to both:
>
>
> 1) create a surface, and 2) color code the surface based on the same scalar
>
>
> values?
>
>
>
> Thanks for any hints or suggestions.
>
>
>
> -Tom
>
>
>
>
> _______________________________________________
>
>
> Powered by www.kitware.com
>
>
>
> Visit other Kitware open-source projects at
>
>
> http://www.kitware.com/opensource/opensource.html
>
>
>
> Please keep messages on-topic and check the ParaView Wiki at:
>
>
> http://paraview.org/Wiki/ParaView
>
>
>
> Follow this link to subscribe/unsubscribe:
>
>
> http://www.paraview.org/mailman/listinfo/paraview
>
>
>
>
>
>
> --
>
> Cory Quammen
>
> Research Associate
>
> Department of Computer Science
>
> The University of North Carolina at Chapel Hill
>
>
>
>
>
>
>
> --
> Cory Quammen
> Research Associate
> Department of Computer Science
> The University of North Carolina at Chapel Hill
> <AppendAttributesExample.pvsm>
>
>
> _________________________________________________
> P. Thomas Schoenemann
>
> Associate Professor
> Department of Anthropology
> Indiana University
> Bloomington, IN  47405
> Phone: 812-855-8800
> E-mail: toms at indiana.edu
>
> Open Research Scan Archive (ORSA) Co-Director
> Consulting Scholar
> Museum of Archaeology and Anthropology
> University of Pennsylvania
>
> Homepage: http://mypage.iu.edu/~toms/
>
>
>
>
>
>
>
>
>



-- 
Cory Quammen
Research Associate
Department of Computer Science
The University of North Carolina at Chapel Hill


More information about the ParaView mailing list