05-01-2015 11:47 AM - edited 05-01-2015 12:10 PM
I'm having a really difficult time trying to get some XYZ data to plot smoothly.
I have 3 1D arrays of doubles:
The x-axis is distance forward.
The y-axis is distance right (negative values indicate left).
The z-axis is intensity at each point.
My X-Y data is not uniformly spaced.
I have a LOT of data that I'm mapping (sometimes > 200,000 points). For this example, I've cut down my data points to just under 10,000.
The scatter plot ALMOST gets me what I want, but not quite. As such, I've been trying to interpolate values between points and map the result using a contour plot and a surface plot..
I have attempted a number of ways to interpolate the data without much success. I attempted to use the 3D polynomial fit and evaluation VI's mentioned in post 8 of this thread:
http://forums.ni.com/t5/LabVIEW/How-to-plot-3D-surface-graph-from-X-Y-Z-points/td-p/1193853
The latest attempt is using the 2D Interpolation vi mentioned in the Labview example: Scattered 2D Interpolation
The surface plot calculates quickly but the resulting graph is basically a solid color and doesn't make sense to me. The contour graph is a total bust. LabVIEW runs out of memory and I have to force quit.
I've attached a zip file containing the VI I'm using 'Surface Plot testing.vi' along with text files to import X, Y and Z data.
I'm attempting to get to something similar to this as my end result. I'm assuming I should be trying to use a contour plot so I can easily get the contour lines
but so far I've been quite unsuccessful trying to use the contour plot as it seems to choke on the data size a lot faster than the other plots.
This is what my scatter plot currently looks like:
So, I'm looking for a way to efficiently interpolate the missing values and then add the contour lines. Any suggestions would be GREATLY appreciated.
**EDIT**
Please not that you have to unzip the attached file and run the .VI so that it can find the data files to import and the LLB file used by the polynomial fit and evaluation VIs.
Thanks!
-Randy
05-04-2015 08:15 AM
Randy,
I would encourage you to look at this forum http://forums.ni.com/t5/LabVIEW/XYZ-graph/td-p/966311 and see if you can adapt what was discussed here to fit your application. If you cannot could you describe the specific problems you are having so that we can effectively troubleshoot. Thanks.
05-22-2015 03:48 AM
Dear Randy
I have almost the same problem to solve as you have described. I'm wondering whether you could find a way in LabVIEW?
Any hints are very appreciated. Thanks you for your short reply.
Thank you!
Andreas
05-22-2015 11:28 AM
Because your dataset fills only part of the space, I would break the problem up:
Below is your data, and then your data mapped into a polar-ish coordinates of log (r) vs theta with origin @ (1.5,0.0) using arctan2. (There is probably a better mapping than log(r) for the radius.) It might still be too much for Interpolate 2D Scattered (it looks for a triangle around your point of interest) but it will have a better chance of doing a decent job if you can give it approximately uniformly-spaced data as input.