Visualisez des données d'ouragans
Le modèle le plus simple pour un vortex est donnée par la combinaison de la rotation du corps dans un noyau et la diminution de la vitesse angulaire à l'extérieur.
Afficher l'entrée complète de Wolfram Language
In[2]:=
![Click for copyable input](assets.fr/visualize-hurricane-data/In_42.png)
wind[r_, z_] := If[r <= rcore, w r, (w a^2)/r];
La formule pour trouver la pression fournit la formule suivante en termes de rayon et d'élévation.
In[3]:=
![Click for copyable input](assets.fr/visualize-hurricane-data/In_43.png)
pressure[r_, z_] :=
If[r < rcore,
1/2 rho w^2 r^2 - rho g z + Subscript[rho,
0], -((rho w^2 rcore^4)/(2 r^2)) - rho g z + rho w^2 rcore^2 +
Subscript[rho, 0]];
Tracez les vitesses du vent qui se trouvent en dehors du centre le plus rapide du système.
In[4]:=
![Click for copyable input](assets.fr/visualize-hurricane-data/In_44.png)
SliceContourPlot3D[
wind[Sqrt[x^2 + y^2], z], {x^2 + y^2 == 3 z, x^2 + y^2 == 6 z,
x^2 + y^2 == 1 z}, {x, -5, 5}, {y, -5, 5}, {z, 1, 5},
Contours -> 20,
RegionFunction -> Function[{x, y, z}, x < 0 || y > 0],
PlotTheme -> "NoAxes", PlotLegends -> Automatic,
PlotLabel -> "Wind Strength", ImageSize -> 400]
Out[4]=
![](assets.fr/visualize-hurricane-data/O_19.png)
Tracez les directions du vent en tant que champ vectoriel.
In[5]:=
![Click for copyable input](assets.fr/visualize-hurricane-data/In_45.png)
SliceVectorPlot3D[{(wind[Sqrt[x^2 + y^2], z] y)/
Norm[{x, y}], (-wind[Sqrt[x^2 + y^2], z] x)/Norm[{x, y}],
0}, {x^2 + y^2 == z, x^2 + y^2 == 3 z, x^2 + y^2 == 6 z}, {x, -5,
5}, {y, -5, 5}, {z, 1, 5}, ImageSize -> 400, PlotLegends -> None,
VectorStyle -> "Arrow3D", VectorScale -> {Medium, 0.5, Automatic},
VectorPoints -> 8,
RegionFunction -> Function[{x, y, z}, x < 0 || y > 0],
PlotTheme -> "NoAxes", PlotLabel -> "Wind Direction"]
Out[5]=
![](assets.fr/visualize-hurricane-data/O_20.png)
Tracez la pression en tant que densité en 3D. Remarquez la faible pression relative au centre du système.
In[6]:=
![Click for copyable input](assets.fr/visualize-hurricane-data/In_46.png)
DensityPlot3D[
pressure[Sqrt[x^2 + y^2], z], {x, -5, 5}, {y, -5, 5}, {z, 1, 5},
ImageSize -> 400, PlotLegends -> Automatic, PlotTheme -> "NoAxes",
RegionFunction ->
Function[{x, y, z}, (x^2 + y^2 <= 6 z) && (x < 0 || y > 0)],
PlotLabel -> "Air Pressure",
OpacityFunction -> Function[f, f/5 + 0.1]]
Out[6]=
![](assets.fr/visualize-hurricane-data/O_21.png)