matlab画中国近海有效波高时遇到的问题及m_map的用法注意事项
数据问题
这个数据很不友好,它的纬度从大到小,经度又从小到大。
这需要笔者转置数据。
先定位数据在矩阵的位置。最高的纬度是50°N,lat_min=1,是lat矩阵里的第一行。
lat_min = find(lat==50);%最小是最大,坐标,50°N,1
lat_max = find(lat==10);%10,321
lon_min = find(lon==105);%最小是最小,坐标,105,121
lon_max = find(lon==135);%135,361
因为索引必须是整数,不能是经纬度,所以确定海域的位置如下
lon = lon(lon_min:lon_max);
lat = lat(lat_min:lat_max);
lon lat是纬度,不是整数。间隔0.125
打点是不需要整数的,纬度打点坐标就能对上,否则坐标也是整数
[X, Y] = meshgrid(lon,lat);
swh_avg_year_china_nearshore = swh_avg_year(lon_min:lon_max,...
lat_min:lat_max);
最后可以画图了
figure
m_proj('lambert','long',[105 135],'lat',[5 44]);
m_coast('patch',[.7 .7 .7],'edgecolor','b');
m_grid('linest','none','box','fancy','tickdir','in');
xlabel('longitude');
ylabel('latitude');
title({'significant wave height(m)','1979'});
colorbar
hold on
m_pcolor(X,Y,swh_avg_year_china_nearshore');
%保存
saveas(gcf,"1979_year_avg.png");
m_proj坐标是纬度,不是整数
m_coast可以设定颜色RGB,(0~1)
m_grid可以用none不显示
title的{}用于多行显式
要转置swh
保存是gcf+文件名.格式即可。