I'm sure I've missed something obvious here, but I can't seem to plot a surface using a wave containing a large number of xyz triplets. The data I have are three dimensional scattering intensities sampled (OK, modelled) in spherical co-ordinates at a resolution of somewhere near a degree in both elevation and azimuth. Having translated each point of (intensity, theta, phi) into a Cartesian (x,y,z) I seem to have run out of ideas about what to do with it next. Ideally I'd like to be able to interpolate them to something like an isosurface covering all the points, but I can't seem to find the right way to translate these (x,y,z) triplets into a 3d wave.
I've been playing with Interp3dPath, but it doesn't seem to be doing what I expected it to. Is there any way to plot a 3d surface using (or starting out with (x,y,z) triplets?
Sorry to be so vague. This is driving me mad. Just hints about which documentation to start looking at would be very gratefully received...
If you have a triplet wave you can display it as a scatter in Gizmo. You can find video tutorials for Gizmo here (http://www.wavemetrics.com/products/igorpro/videotutorials.htm) and the relevant help can be found in the Visualization help file (Windows Menu->Help Windows->Visualization.ihf).
In general (if you have up to a few hundred data points) you can simply select the triplet wave in the Data Browser and use the contextual menu (selecting Gizmo Plot) to obtain a 3D scatter. The default scatter is built with 3D spheres at each datum location which is going to be an overkill when you have data at 1 degree intervals. Therefore, if you are to use a scatter diagram I suggest you select "Points" as the scatter marker in Gizmo.
If you want to display a spherical surface where your data are represented using some color scale (similar to the picture on the left) you could create the relevant plot as in the GizmoSphere example experiment. You can find that under File Menu->Example Experiments->Visualization. I am assuming that you have a triplet wave for the locations and an additional 1D wave for your intensities.
Unless you are dealing with experimental data or with theoretical data that are sparse because of computational difficulties, I suggest that you avoid interpolation. Data at 1 degree intervals would be sufficient for most display purposes with OpenGL performing the remaining interpolation in the color space. If you do require interpolation you should use SphericalTriangulate and SphericalInterpolate operations. Note that Interp3DPath requires that you are sampling data from a 3D wave so it is not appropriate here.
Without knowing more about your application I might also suggest that you consider displaying "intensities" as some sort of a 3D polar plot where the radius of the surface varies in some proportion to the intensity. If that is the case I suggest implementing it as a parametric surface as in the example experiment I mentioned earlier.
If you are not sure how to proceed feel free to send support@wavemetrics.com an IGOR experiment containing the relevant data with all the details of what you would like to accomplish.
Thanks for the response, that's exactly what I was looking for. Turns out making a parametric surface as "I = f(theta,phi)" did the trick with minimal modification of the example!
I'm glad you got the results you wanted. I would however suggest that if you intend to use these in a publication there is a lot more that you can do to make them look better. Feel free to send me an experiment if you want to see what can be done.
If you have a triplet wave you can display it as a scatter in Gizmo. You can find video tutorials for Gizmo here (http://www.wavemetrics.com/products/igorpro/videotutorials.htm) and the relevant help can be found in the Visualization help file (Windows Menu->Help Windows->Visualization.ihf).
In general (if you have up to a few hundred data points) you can simply select the triplet wave in the Data Browser and use the contextual menu (selecting Gizmo Plot) to obtain a 3D scatter. The default scatter is built with 3D spheres at each datum location which is going to be an overkill when you have data at 1 degree intervals. Therefore, if you are to use a scatter diagram I suggest you select "Points" as the scatter marker in Gizmo.
If you want to display a spherical surface where your data are represented using some color scale (similar to the picture on the left) you could create the relevant plot as in the GizmoSphere example experiment. You can find that under File Menu->Example Experiments->Visualization. I am assuming that you have a triplet wave for the locations and an additional 1D wave for your intensities.
Unless you are dealing with experimental data or with theoretical data that are sparse because of computational difficulties, I suggest that you avoid interpolation. Data at 1 degree intervals would be sufficient for most display purposes with OpenGL performing the remaining interpolation in the color space. If you do require interpolation you should use SphericalTriangulate and SphericalInterpolate operations. Note that Interp3DPath requires that you are sampling data from a 3D wave so it is not appropriate here.
Without knowing more about your application I might also suggest that you consider displaying "intensities" as some sort of a 3D polar plot where the radius of the surface varies in some proportion to the intensity. If that is the case I suggest implementing it as a parametric surface as in the example experiment I mentioned earlier.
If you are not sure how to proceed feel free to send support@wavemetrics.com an IGOR experiment containing the relevant data with all the details of what you would like to accomplish.
A.G.
WaveMetrics, Inc.
January 13, 2011 at 10:06 am - Permalink
January 17, 2011 at 06:07 am - Permalink
A.G.
WaveMetrics, Inc.
January 17, 2011 at 07:50 am - Permalink