Rahul Kumar Soni | 2 Aug 2010 15:59
Picon

Invitation to connect on LinkedIn

LinkedIn

I'd like to add you to my professional network on LinkedIn.

- Rahul Kumar

Rahul Kumar Soni
Aviation & Aerospace Professional
Hyderabad Area, India

Confirm that you know Rahul Kumar

© 2010, LinkedIn Corporation

------------------------------------------------------------------------------
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
_______________________________________________
MayaVi-users mailing list
MayaVi-users <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mayavi-users
Adam Konneker | 6 Aug 2010 06:21
Picon

A problem with tube filter lines and spherical glyphs

Howdy,

My general problem is as follows:  I have a large set of data composed of connected points. Instead of using plot3D, I'm currently creating a scalar_scatter structure, specifying the edges, and applying a tube_filter. To better reflect my data, which is a large group of capsules (cylinders capped with hemispheres) linked together into separate chains, I would like to insert spheres (glyphs) at all the points, but I've had a hard time matching the scaling of the tubes to the glyphs. I'd like the spheres and the tubes to have the same radius(specified by the scalar data) within a given chain.

So I already know about the existence of the tube_filter 'vary_radius' and 'radius_factor' attributes, and the glyph 'scale_factor' and 'scale_mode' attributes, but I haven't been able to piece everything together to make it work like I want.  I think I'm getting confused about the units I use in my x,y,z coordinates I input to the data structures and the drawing coordinates used to make the visualizations.  Below is a snippet of my code:

src = mlab.pipeline.scalar_scatter(

tubesX, tubesY, tubesZ, scalars)
src.mlab_source.dataset.lines = pairs
pts = mlab.points3d(tubesX, tubesY, tubesZ, scalars,scale_mode = 'scalar')
tubes = mlab.pipeline.tube(src,tube_sides = NUM_SIDES)
tubes.filter.vary_radius = 'vary_radius_by_scalar'
mlab.pipeline.surface(tubes)

Where "scalars" is an array of radii for the tubes and points in the same units as the x,y,z coordinates I use for the position data. Currently this gives me very thin tubes and big spheres.
If anyone could show me where I'm going wrong, I would greatly appreciate it.  It's probably a very naive question, but I'm new to mayavi, vtk, and python in general, so I am certainly naive.

Thanks,
Adam K
------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
MayaVi-users mailing list
MayaVi-users <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mayavi-users
Gael Varoquaux | 7 Aug 2010 15:46
Favicon
Gravatar

Re: A problem with tube filter lines and spherical glyphs

Hi,

I haven't actually ran code to back my guess (trying to save time), but I
think that the two possible problems could be:

* the clamping of the glyph, which is turned off when you specify a
  scale_factor to the glyph function. More is said about this in a
  warning box on:
  http://code.enthought.com/projects/mayavi/docs/development/html/mayavi/mlab.html#adding-color-or-size-variations

* varying radius by absolute rather than by radius, which you can enforce
  by doing:

    tubes.filter.vary_radius = 'vary_radius_by_absolute_scalar'

HTH,

Gaël

On Thu, Aug 05, 2010 at 10:21:36PM -0600, Adam Konneker wrote:
>    My general problem is as follows:  I have a large set of data composed of
>    connected points. Instead of using plot3D, I'm currently creating a
>    scalar_scatter structure, specifying the edges, and applying a
>    tube_filter. To better reflect my data, which is a large group of capsules
>    (cylinders capped with hemispheres) linked together into separate chains,
>    I would like to insert spheres (glyphs) at all the points, but I've had a
>    hard time matching the scaling of the tubes to the glyphs. I'd like the
>    spheres and the tubes to have the same radius(specified by the scalar
>    data) within a given chain.

>    So I already know about the existence of the tube_filter 'vary_radius' and
>    'radius_factor' attributes, and the glyph 'scale_factor' and 'scale_mode'
>    attributes, but I haven't been able to piece everything together to make
>    it work like I want.  I think I'm getting confused about the units I use
>    in my x,y,z coordinates I input to the data structures and the drawing
>    coordinates used to make the visualizations.  Below is a snippet of my
>    code:

>    src = mlab.pipeline.scalar_scatter(
>    tubesX, tubesY, tubesZ, scalars)
>    src.mlab_source.dataset.lines = pairs
>    pts = mlab.points3d(tubesX, tubesY, tubesZ, scalars,scale_mode = 'scalar')
>    tubes = mlab.pipeline.tube(src,tube_sides = NUM_SIDES)
>    tubes.filter.vary_radius = 'vary_radius_by_scalar'
>    mlab.pipeline.surface(tubes)

>    Where "scalars" is an array of radii for the tubes and points in the same
>    units as the x,y,z coordinates I use for the position data. Currently this
>    gives me very thin tubes and big spheres.
>    If anyone could show me where I'm going wrong, I would greatly appreciate
>    it.  It's probably a very naive question, but I'm new to mayavi, vtk, and
>    python in general, so I am certainly naive.

>    Thanks,
>    Adam K

> ------------------------------------------------------------------------------
> This SF.net email is sponsored by 

> Make an app they can't live without
> Enter the BlackBerry Developer Challenge
> http://p.sf.net/sfu/RIM-dev2dev 
> _______________________________________________
> MayaVi-users mailing list
> MayaVi-users <at> lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mayavi-users

-- 
    Gael Varoquaux
    Research Fellow, INRIA
    Laboratoire de Neuro-Imagerie Assistee par Ordinateur
    NeuroSpin/CEA Saclay , Bat 145, 91191 Gif-sur-Yvette France
    Phone:  ++ 33-1-69-08-78-35
    Mobile: ++ 33-6-28-25-64-62
    http://gael-varoquaux.info

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
MayaVi-users mailing list
MayaVi-users <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mayavi-users

Gmane