Sergey,
Thanks so much for the reply. I did indeed learn about the EXTRACT_SLICE
function and am going through it now.
I think that you can actually use the ANISOTROPY keyword and use data that
isn't uniformly spaced (mine isn't). But if not, your strategy makes sense
to me.
So again, thanks so much!
Jeff
"Sergey Koposov" <astro@mccme.ru> wrote in message
news:b8rp8h$kje$1@news.rol.ru...
> Hello, Jeff,
> I think , if your data volume is presented as 3-dimensinal array (i.e.
> your data is uniformly spaced ), you can use the EXTRACT_SLICE function.
>
> Otherwise , (if your data is presented , for example, as 1-dimensional
> array with x,y & z coordinates ) you can
> 1) define the function distance(x,y,z) , which will compute the distance
> from the point to the plane
> function distance,x,y,z
> common plane ,A,B,C,D ; on the assumption that A*x+B*y+C*z+D=0 return
> ,(A*x+B*y+C*z+D)/sqrt(A^2+B^2+C^2) ;define the plane
> end
> 2) Select the points for the slice by using WHERE
> indices=WHERE(dist(X,Y,Z) lt 1) ;where X,Y,Z are 1-d arrays of x,y,z
> coordinates
> 3) Image the necessary characteristics for X[indices],Y[indices],Z[..]
> with some interpolation (if you need of image , not of plot of points)
> (for example the function GRID_TPS,and others (other functions are in
> the IDL Online Help , "gridding and interpolation"))
>
> You can also make the interpolation for slicing in the beginning by
> means the GRID3 function (see also IDL Online Help , gridding and
> interpolation) . And after that , you will can directly perform the
> imaging.
>
> I hope my considerations will be useful. But I don't insist that my
> methods are optimal :)
> Cheers,
> Sergey
>
> Jeff Nettles wrote:
>> Hi All,
>>
>> I have some CT data that I would be able to take randomly-oriented
slices
>> through. (BTW, these are scans of meteorites, not people, in case
you're
>> thinking that it doesn't make any sense why i'd want to do this.) My
>> approach so far has been to randomly select 3 sets of x,y, & z
coordinates
>> so that i have three points that define a plane. Now I want to extract a
2D
>> image that represents that plane from the 3D CT data volume. My
priority
>> here is to preserve the shapes of the objects in the random slice. I
know
>> i'm going to have to do some interpolating since the slice won't always
go
>> through entire pixels. What i'm hoping that i can get help with is:
>>
>> 1) Is there by any chance a program someone has written (or included
with
>> IDL) that can do this already? (I'm a relatively inexperienced IDL
>> programmer)
>>
>> 2) If I'm going to have to code this myself, are there IDL functions
that
>> would make this easier? I've looked at the WHERE function, but haven't
>> convinced myself that it will help. I know to try to avoid for loops as
>> much as possible so I'm trying to do that.
>>
>> 3) Any suggestions about a general approach to the problem would be
very
>> helpful.
>>
>> Thanks for your time (and hopefully your help!),
>> Jeff
>>
>>
>
|