Copa Huawei: visualización de datos 3D [Matlab Issue 139] [Modelado matemático 14]

1. Antecedentes

En el proceso de modelado matemático, a menudo nos encontramos con la situación de visualizar datos tridimensionales. Tomemos como ejemplo la Pregunta A del Concurso de Modelado Matemático para Graduados de 2017 (Optimización de UAV en Rescate y Socorro en Desastres). El trasfondo de esta pregunta es:
El 8 de agosto de 2017, ocurrió un terremoto de magnitud 7.0 en el condado de Jiuzhaigou, prefectura de Aba, provincia de Sichuan. Víctimas irreversibles y pérdidas patrimoniales importantes. Dado que es difícil predecir terremotos, el rescate post desastre oportuno y eficiente es una medida importante para reducir las pérdidas por terremoto. Como nuevo tipo de vehículo de reparto, el UAV puede desempeñar un papel importante en las operaciones de rescate. Para mejorar la eficiencia de su uso, resuelva varios problemas en el uso óptimo de drones.
El Anexo 1 proporciona los datos de elevación del área del terremoto, con 2913 columnas y 2775 filas. La primera fila y la primera columna indican el valor de altitud (unidad: metro) en el punto (0,0), y la distancia entre celdas adyacentes es de 38,2 metros, es decir, los datos en la celda de la fila m y la enésima La columna representa el valor de altura de las coordenadas (38.2 (m-1), 38.2 (n-1)).
A menos que se especifique lo contrario, los drones en esta pregunta asumen una velocidad de vuelo promedio de 60 km / h, una autonomía máxima de 8 horas, un radio de giro de no menos de 100 metros durante el vuelo y un ángulo máximo de ascenso (picado) de ± 15 °, la distancia de vuelo segura de otros obstáculos (incluido el suelo) no es inferior a 50 metros, y la altitud máxima de vuelo es de 5000 metros sobre el nivel del mar. Todos los drones vuelan de forma autónoma según la ruta planificada, sin control manual, y regresan automáticamente a la base original después de completar la misión.

2. Introducción

Los datos de elevación del área del terremoto se dan en el Anexo 1 de la asignatura, estos datos contienen tres dimensiones: longitud, latitud y altitud. La forma más común de mostrar datos tridimensionales en matlab es dibujar superficies tridimensionales. Esta función se logra a través de la función de navegación. El efecto se muestra en la Figura 1.
Inserte la descripción de la imagen aquí
Además, los datos tridimensionales se pueden describir mediante mapas de contorno . De hecho, los colores se utilizan para expresar la altura. Los datos unidimensionales, utilizando la función de contorno de matlab pueden lograr el objetivo, el efecto se muestra en la Figura 2-
Inserte la descripción de la imagen aquí

Tres, código fuente

El siguiente es el código utilizado para implementar mapas topográficos 3D y mapas de contorno:

function mainfun()

S1_rawdata=importdata('附件1 区域高程数据.xlsx');
S1_rawdata=S1_rawdata'/1000;
position_Keyareas =[30.3  89.8
66.0  84.7
98.4  76.7
73.7  61.0
57.9  47.6
86.8  22.0
93.6  48.8];

x=0:0.0382*10:2774*0.0382;
y=0:0.0382*10:2912*0.0382;

%三维地形图
[x,y]=meshgrid(x,y);
figure
surf(x,y,S1_rawdata(1:10:end,1:10:end))

xdata0=0:0.0382:2774*0.0382;
ydata0=0:0.0382:2912*0.0382;

figure
contour(xdata0,ydata0,S1_rawdata,[2.2,2.4,2.6,2.8,3,3.200,3.400,3.600,3.800,4.000,4.1500])
hold on
plot(110,0,'r>','MarkerFaceColor','r')
text(100,5,'基地H','Color','r')
centername={
    
    'A','B','C','D','E','F','G'};
t=0:0.1:2*pi;
xx=sin(t);
yy=cos(t);
for i=1:7
    plot(position_Keyareas(i,1),position_Keyareas(i,2),'ro','MarkerFaceColor','r')
    text(position_Keyareas(i,1)-3,position_Keyareas(i,2)+3,centername{
    
    i},'Color','r')
    plot(10*xx+position_Keyareas(i,1),10*yy+position_Keyareas(i,2),'r--')
end

%C平均海拔

mean(mean(S1_rawdata(2317:2837,1749:2269)))

contour(xdata0,ydata0,S1_rawdata,[3,4.150])
hold on
plot(110,0,'r>','MarkerFaceColor','r')
text(100,5,'基地H','Color','r')
centername={
    
    'A','B','C','D','E','F','G'};
t=0:0.1:2*pi;
xx=sin(t);
yy=cos(t);
for i=1:7
    plot(position_Keyareas(i,1),position_Keyareas(i,2),'ro','MarkerFaceColor','r')
    text(position_Keyareas(i,1)-3,position_Keyareas(i,2)+3,centername{
    
    i},'Color','r')
    plot(10*xx+position_Keyareas(i,1),10*yy+position_Keyareas(i,2),'r--')
end

for i=1:44
    for j=1:44
        line([2.5*i,2.5*i],[0,110])
        line([0,110],[2.5*i,2.5*i])
    end
end

Nota: agregue QQ1564658423 para completar el código o la escritura.
Revisión anterior >>>>>>
[Matlab 035] [Modelado matemático 1] Matlab de simulación de evacuación de población basado en autómatas celulares
[Matlab 036] [Modelado matemático 2] Optimización de enjambres de partículas Predicción de red ELM
[Matlab 037 [Modelado matemático 3] Tiempo- parámetro variable estocástico vector de volatilidad modelo autorregresivo (TVP-VAR)
[Matlab 038] [Modelado de datos 4] Árbol de decisión binario difuso código fuente de matlab
[Matlab 039] [Modelado matemático 5] Flujo de tráfico de cuatro carriles basado en autómatas celulares
[Matlab 040] [Modelado matemático 6] Matlab para lograr glóbulos rojos
[Matlab 041] [Modelado matemático 7] Pronóstico de potencia de Matlab pronóstico pronóstico en escala de grises pronóstico combinado regresión suave exponencial Análisis
[Matlab 042 edición] [Modelado matemático 8] Línea 3 de Chongqing de la operación del metro Simulación
[Edición de Matlab 043] [Modelado matemático 9] Predicción de flujo de carreteras Matlab
[Edición de Matlab 044] [Modelado matemático] 10] Matlab de simulación de evacuación de población basado en autómatas celulares
[Modelado matemático 11] Matlab para resolver el modelo de presa de inundación [Matlab 045]
[Modelado matemático 12] Matlab para implementar el modelo SEIR [Matlab 115]
Modelo de teoría de colas e implementación de MATLAB Con interfaz GUI [Matlab 127] [Modelado matemático 13]

Supongo que te gusta

Origin blog.csdn.net/TIQCmatlab/article/details/112792636
Recomendado
Clasificación