Is there a contourc equivalent for contourm?
Mostrar comentarios más antiguos
Hello,
I would like to compute contours on geotiffs without producing a plot. For regular rectangluar data 'contour' will compute the contours and plot them, and 'contourc' function will just compute the contours and return the contour matrix without plotting. It appears the geographic contour function 'contourm' works like 'contour' and produces a plot, I would like to get the contours without generating a plot.
Right now my solution is this:
set(0,'DefaultFigureVisible','off');
altContour = contourm(geoData,geoRef,'LevelList',geoAltitude,'Visible','off');
close(gcf);
set(0,'DefaultFigureVisible','on');
But this is still incurring overhead penalties for setting up the figure... I would ideally like a function like 'contourmc'. Is there some function, even internal or undocumented, that I can use to achieve this?
1 comentario
Andrew Wind
el 20 de Nov. de 2025
I have also been using a similar method to suppress making the figure visible and then closing it, but this doesn't answer the original question.
Is there another function or option that will calculate the result without the overhead of plotting an invisible figure in the background?
Respuestas (2)
Hi Mark,
I understand you would like to compute contours on geotiffs without producing a plot.
You can use the ‘contourm’ function in this way to achieve the contour matrix without plotting.
% Example data
[X, Y, Z] = peaks;
% Define the desired contour levels
contourLevels = [-5, -3, -1, 1, 3, 5];
% Create a temporary invisible figure to capture the contour data
hFig = figure('Visible', 'off');
% Use contourm to capture the contour data
[ccontourData] = contourm(Y, X, Z, contourLevels)
% Close the temporary figure
close(hFig);
% contourData contains the contour lines and levels without displaying the plot
Please refer to the MathWorks Documentation to know more about
Hope it helps .
Walter Roberson
el 21 de Nov. de 2025
Editada: Walter Roberson
el 21 de Nov. de 2025
0 votos
You can make the contourm() call within a Process based parallel pool (such as using parfeval()).
This has notable overhead... but no visible figure will be generated.
Note: contourm() is not supported on backgroundPool
Categorías
Más información sobre Discrete Data Plots en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!