3D Curtain plot for Lidar data
3 views (last 30 days)
Show older comments
I have geolocated lidar backscatter data from a flight that i need to plot.
The data are functions of time T and Altitude: Longitude(Time), Latitude(Time), LidarData(Time,Altitude).
The number of Time data points is >20,000 (entire flight) and number of Altitude data points is 600. So the LidarData is a large (20,000, 600) matrix.
In other words for each Time T have a location ( Longitude, Latitude) and LidarData at that location that extends from the ground to a specific altitude (the altitude for each location varies with time). All the 3D plots in Matlab allow a mesh, surface or scatter plot of X,Y,Z data.
I can plot individual scatter3 plots for each time (location) but with >20,000 points it takes a long time and the plot is imposisble to manipulate (change view angle, colorbar scale, etc.). Is there a better way to do this?
There is an existing (related) question on this but could not find an any answers: https://www.mathworks.com/matlabcentral/answers/4496-4d-curtain-plot
0 Comments
Answers (1)
darova
on 11 Feb 2021
Can you plot only part of it?
clc,clear
[x,y,z] = peaks(100);
i = 1:5:100;
surf(x(i,i),y(i,i),z(i,i))
2 Comments
darova
on 12 Feb 2021
@HRmatlab's comment
Thank you for the suggestion. Yes I have plotted small segments.
Plotting the entire data set using a loop and scatter3 produces the desired plot but it takes > 30 minutes and makes the plot impossible to adjust (rotate, zoom, etc.).
The surf (or mesh) plots require an x, y mesh grid in other words x, y, z have to be NxM arrays.
I have x(N), y(N), z(N,M). Converting x,y to gridded arrays will slow things down.
But i will take another look. Than you for the feedback.
See Also
Categories
Find more on Guidance, Navigation, and Control (GNC) in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!