Wind rose with no degrees for direction

4 visualizzazioni (ultimi 30 giorni)
Madison
Madison il 26 Feb 2025
Modificato: Torsten il 26 Feb 2025
I am trying to plot a wind rose but for direction I only have N, NE, NNE etc rather than degrees. Is there a code or script for this?
  3 Commenti
Madison
Madison il 26 Feb 2025
Would N not be 0º, E 90º etc?
Torsten
Torsten il 26 Feb 2025
Modificato: Torsten il 26 Feb 2025
Usually you start with E = (1,0) as 0°, goto N = (0,1) as 90°, goto W = (-1,0) as 180°, goto S = (0,-1) as 270°.
The coordinates can then be obtained by the cosd and sind functions:
[cosd(0),sind(0)]
ans = 1×2
1 0
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
[cosd(90),sind(90)]
ans = 1×2
0 1
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
[cosd(180),sind(180)]
ans = 1×2
-1 0
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
[cosd(270),sind(270)]
ans = 1×2
0 -1
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
But you are right: I just found that the relation between angle and direction seems to be different for wind roses:

Accedi per commentare.

Risposte (1)

Steven Lord
Steven Lord il 26 Feb 2025
Let's make some random direction data.
directions = ["N", "NE", "E", "SE", "S", "SW", "W", "NW"];
n = numel(directions);
angles = 0:45:315;
randomDirections = directions(randi(n, 1, 10));
Now we can convert those strings into the corresponding angles.
[~, indices] = ismember(randomDirections, directions);
correspondingAngles = angles(indices);
And now we can show the results as a table so you can check.
results = table(randomDirections.', correspondingAngles.', VariableNames = ["dir", "angle"])
results = 10x2 table
dir angle ____ _____ "N" 0 "N" 0 "NE" 45 "W" 270 "N" 0 "S" 180 "S" 180 "NW" 315 "NE" 45 "E" 90

Categorie

Scopri di più su Structures in Help Center e File Exchange

Tag

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by