I have the following problem:

I have a 3D regular scalar data field, of which I calculate the gradient
vector field. I convert the gradient field to polar coordinates. I
want the calculate the probability density function (pdf) of the radius,
and both spherical angles 'theta' and 'phi' using the module 'Histogram.'
However, I only want to take into account those gradient vectors with a
modulus larger then a certain threshold 'r_thres'. For this, I create a
mask array which has a value 1 for valid points (r>r_thres) and and 0 for
invalid points (r<=_r_thresh). I want to use this array to mask the arrays
'radius', 'theta' and' 'phi' so that 'Histogram' only takes into account
the proper points.

Is there a module for this mask operation similar to the module 'Include',
i.e. instead of invalidating the points outside a range min-max,
invalidating the points corresponding to the zeros in the mask array.
Note that I can not use the 'Include' module since for the eg. calculating
the pdf of the angle 'theta' I must threshold with the data of 'radius'

If this procedure is not possible with the existing modules, I want to
write it myself.Should I follow
the example Add2Invalid of the 'programmers guide'. I don't like the fact
that then I have the assume that the field is of a certain type, e.g.
float. I want this routine type independent, just as the module Include.
What is the best way to approach this. Does anybody has a example routine
to create type independ modules for setting invalid points according to a
certain mask array?

A lot of questions and a long story. Hopefully anybody can help me...

Kind regards,

Eelco van Vliet

Reply via email to