3D Curtain plot for Lidar data
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (1)
darova
le 11 Fév 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 commentaires
darova
le 12 Fév 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.
Voir également
Catégories
En savoir plus sur Guidance, Navigation, and Control (GNC) dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!