绘制风向、风速玫瑰图

本文介绍了利用ArcGIS绘制风玫瑰图的方法。首先要准备基础数据,如风向频率或风速数据,并整理成特定格式的表格。接着绘制极坐标图,设置相关字段和属性。最后将极坐标图修改为风玫瑰图,包括颜色设置、轴格式设置等,最终完成风玫瑰图绘制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步:基础数据准备

绘制风向玫瑰图的话,要有该地区多年平均的风向频率数据;

绘制风速玫瑰图,要有该地区多年平均的风速数据。

以十六向的风向频率和风速数据为例,整理成表格:

几个关键点:

1. 从东开始,分别输入十六个方向,然后最后还要以东结束;

2. 为方便ArcGIS识别,最好是东为0°,然后按逆时针的方向旋转,每个22.5°输入方向和数据,即:东北东为22.5°,东北为45°,东北北为67.5度,正北为90°,以此类推。

3. EXCEL表存为低版本,也就是97-03版本。

第二步:绘制极坐标图

1. 把EXCEL数据表拖入ArcMap,然后右击打开,选择里面的创建图表选项——

2. 图表类型选择极坐标,半径字段选择“风向频率”(因为我们要绘制风向频率风玫瑰图),角度字段选择“角度”,把添加图例勾选去掉,在符号样式中选择“无”,然后直接下一步——

3. 在标题处写个“N”吧,代表北的方向,在轴属性出把左、右、下和顶部的标题全部去掉,保持为空白状态——

4. 点击完成,极坐标图出现雏形!

第三步:修改为风玫瑰图

1. 风玫瑰颜色设置

常见的风玫瑰是黑白相间的颜色,所以呢,我们首先也要把每个角度的风向频率用色块给分出来。

右击图片打开“高级属性”,然后点击“极坐标”,点击花纹,然后选择“实线”,点击确定——

勾选“各别色”——

点击圆形按钮,取消显示,去掉最外层的大圆——

咋样,有那味儿了吧!

2. 各轴的格式设置

设置轴刻度:点击“轴”选项,根据数值特点,把上下左右四个轴的最小值都设为4,最大值都设为12。

 去掉轴刻度:点击“卷标”选项卡,在样式中,把上下左右轴的显示全部取消勾选,这样,各轴上的刻度就消失不见了——

去掉圆形表格:点击表格选项卡,在上下左右四个轴分别点击“表格”按钮,然后在“显示”中取消勾选——

看,这风玫瑰的味儿越来越浓了哈!

3. 调整风玫瑰颜色

现在呢,我们只需要把各个角度的风向频率调整为黑白间隔的颜色就可以啦,这一步在这里操作——

在“资料”这里,点击这个颜色的按钮,然后把色块间隔设置成为黑色和白色就OK了!

这不,风玫瑰图就大功告成啦——

你也可以在第一步,创建极坐标图的时候新建一个系列,然后用类似的方法,就可以创建出本文开始展示的另一幅图啦,大家感兴趣的自己去试下哈!

以下是使用MATLAB绘制风速风向玫瑰图的示例代码: ```matlab % 风速数据 speed = [2 5 8 12 9 6 3 1 0.5 0.2]; % 风向数据(单位为度) direction = [30 60 90 120 150 180 210 240 270 300]; % 将度数转换为弧度 theta = direction .* pi/180; % 确定风速风向的最大值和最小值 max_speed = max(speed); min_speed = min(speed); max_direction = max(direction); min_direction = min(direction); % 绘制风速风向玫瑰图 figure; polar(theta, speed); % 设置极轴的最大值和最小值 rmax(max_speed); rmin(min_speed); % 设置极角的最大值和最小值 thetamax(max_direction .* pi/180); thetamin(min_direction .* pi/180); % 添加玫瑰图标题 title('Wind rose plot'); % 添加风向标签 rlbl = repmat(sprintf('%d', min_speed), length(theta), 1); tlbl = arrayfun(@num2str, direction, 'UniformOutput', false); tlbl{1} = [tlbl{1}, '^\circ']; tlbl{end} = [tlbl{end}, '^\circ']; text(theta, speed, rlbl, 'HorizontalAlignment', 'center', 'VerticalAlignment', 'middle'); text(theta, max_speed*ones(size(speed)), tlbl, 'HorizontalAlignment', 'center', 'VerticalAlignment', 'top'); % 设置极径网格线的样式 rticks([min_speed:1:max_speed]); rticklabels({num2str(min_speed), '', '', '', '', '', '', '', '', num2str(max_speed)}); ``` 此代码将生成一个风速风向玫瑰图,其中每个扇形表示一个风向区间,扇形的颜色深浅表示该区间内的风速大小。在中,每个扇形的半径表示该区间内的最大风速,而每个扇形的中心角表示该区间内的风向范围。同时,中也添加了风向标签和极径网格线的样式设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值