文章目录
m_map工具箱
-
m_map是 MATLAB 中用于制作地图和地理数据可视化的工具包。这个工具包提供了一组函数和工具,使得用户能够在 MATLAB 中轻松创建地图,并在地图上显示各种地理和气象数据。以下是 m_map 工具包的一些主要特性和功能:
-
地图投影: m_map 支持多种地图投影,包括等距圆柱投影、等距伪圆柱投影、等距锥形投影等。这些投影方式允许用户选择最适合其数据的投影方式。
-
绘制地图要素: 用户可以使用 m_coast、m_grid 等函数绘制海岸线、经纬网格等地图要素。这些函数使得用户能够轻松创建具有标准地图元素的地图。
-
地理数据可视化: m_map 提供了一组用于在地图上可视化地理和气象数据的函数。用户可以使用 m_contour、m_contourf、m_quiver 等函数在地图上绘制等高线图、矢量场等。
-
支持多种数据格式: m_map 支持处理多种地理和气象数据的数据格式,包括常见的NetCDF、GRIB等格式。
-
交互式工具: m_map 具有一些交互式工具,如平移、缩放、选择等,使得用户能够更灵活地查看和操作地图。
-
Matlab绘制研究区域
matlab
%% Figure1 研究区域
clear;clc;close all
load('.\data\Arctic_depth');
load('.\data\napa025_lat_lon');
load('.\data\oceandeep_ws.mat')
load('.\data\depthmap2.mat')
depth(depth==0)=nan;
siz=25;lind=1.5;lind1=3;
x_0=0.1;
y_0=0.56;
len=0.85;
width=0.40;
d_x=0.43;
d_y=-0.46;
px=[0 0 0 1];
py=[0 1 1 1];
lon=lon_napa025;lat=lat_napa025;
lat_napa025(lat_napa025<68|lat_napa025>77)=nan;
lon_napa025(lat_napa025<68|lat_napa025>77)=nan;
lon_napa025(lon_napa025<205|lon_napa025>240)=nan;
lat_napa025(lon_napa025<205|lon_napa025>240)=nan;
x1=[25 50:50:200 500:500:2000 3000];
x2=[50:50:200 500:500:2000 3000 6000];
C1=0;C2=length(x1);
Datajet=zeros(528,735);
for ii=1:length(x1)
Datajet(depth>=x1(ii)&depth<x2(ii))=ii-0.5;
end
xx1=[0 20 50:50:300 400 500:500:3000 4000 4500 5000];
xx2=[20 50:50:300 400 500:500:3000 4000 4500 5000 5500];
CC1=0;CC2=length(xx1);
Datajet1=zeros(528,735);
for ii=1:length(xx1)
Datajet1(depth>=xx1(ii)&depth<xx2(ii))=ii-0.5;
end
% 北冰洋
set(gcf,'color',[1 1 1],'position',[10 45 800 800*1.2]);%get(0,'screensize')
axes('position',[0.05 0.58 0.4 0.4]);
m_proj('azimuthal equal-area','latitude',90,'radius',40,'rectbox','on','rotagnle',90);
% m_coast 低精度;m_gshhs_i 中精度;m_gshhs_f 高精度
m_coast('patch',[.5 .5 .5],'linestyle','none');
for ii=1:length(xx2)
hold on
D_contour1=[xx2(ii) xx2(ii)];%定义等值线插值范围
[c,hs]=m_contour(lon,lat,depth,D_contour1,'color',depthmap(3*ii,:),'linewidth',0.5);
end
m_grid('box','on','xtick',6,'tickdir','in','ytick',4,'yticklabel',[],'fontsize',siz-10,'fontname','Times New Roman');
hold on
x1=[205:240];y1=68*ones(1,length(x1));y2=[68:1:77];x2=240*ones(1,length(y2));
y3=77*ones(1,length(x1));x3=205*ones(1,length(y2));
m_plot(x1,y1,'linewidth',2,'color','k');
m_plot(x2,y2,'linewidth',2,'color','k');
m_plot(x1,y3,'linewidth',2,'color','k');
m_plot(x3,y2,'linewidth',2,'color','k');
hold on
m_text(140,60,'(a)','color','k','fontname','Times New Roman','fontweight','bold','fontsize',siz-5);
% 波弗特海
hold on
% axes('position',[x_0+d_x*px(1), y_0+d_y*py(1), len, width]);
axes('position',[0.2713 0.5444 0.6737 0.3975]);
m_proj('lambert','lon',[205 240],'lat',[68 77]);
shading flat
hold on
x1=[210:235];y1=68*ones(1,length(x1));y2=[68:1:75];x2=235*ones(1,length(y2));
y3=75*ones(1,length(x1));x3=210*ones(1,length(y2));
m_plot(x2,y2,'linewidth',2,'color','r');
m_plot(x1,y3,'linewidth',2,'color','r');
m_plot(x3,y2,'linewidth',2,'color','r');
hold on
m_gshhs_f('patch',[.6 .6 .6]);
m_grid('box','fancy','xtick',[210 235],'tickdir','in',...
'ytick',[71 75],'yaxislocation','right',...
'fontname','Times New Roman','fontsize',siz-10,'fontweight','bold','linestyle','none')
% 等深线
hold on
for ii=1:length(xx2)
hold on
D_contour1=[xx2(ii) xx2(ii)];%定义等值线插值范围
[c,hs]=m_contour(lon,lat,depth,D_contour1,'color',depthmap(3*ii,:),'linewidth',0.5);
clabel(c,hs,'rotation',0,'fontname','Times New Roman','Labelspacing',400,...
'fontweight','bold','FontSize',siz-15,'color',depthmap(3*ii,:));%画等值线上的数值同上
end
hh1=annotation('arrow',[0.2025 0.4150],[0.7135 0.9396],'linewidth',lind1-1);
hh2=annotation('arrow',[0.1700 0.2875],[0.6667 0.5854],'linewidth',lind1-1);
hold on
colormap(oceandeep_ws);
caxis([C1 C2]);
hold on
m_text(207,69,'(b)','color','k','fontname','Times New Roman','fontweight','bold','fontsize',siz-5);
m_text(215,72.5,'\it波弗特海','color','k','fontname','宋体','fontweight','bold','fontsize',siz-5);
m_text(210,69,'\it阿拉斯加','color','k','fontname','宋体','fontweight','bold','fontsize',siz-5);
m_text(230,69,'\it加拿大','color','k','fontname','宋体','fontweight','bold','fontsize',siz-5);
m_text(235.8,73,'\it班克','color','k','fontname','宋体','fontweight','bold','fontsize',siz-10);
m_text(235.8,72.5,'\it斯岛','color','k','fontname','宋体','fontweight','bold','fontsize',siz-10);
m_text(235.8,70.8,'\it阿蒙','color','k','fontname','宋体','fontweight','bold','fontsize',siz-10);
m_text(235.8,70.4,'\it森湾','color','k','fontname','宋体','fontweight','bold','fontsize',siz-10);
m_text(210,75.5,'\it加拿大海盆','color','k','fontname','宋体','fontweight','bold','fontsize',siz-5);
% export_fig(['.\map\','Figure1.png'],'-r200')
% export_fig(['.\map\','Figure1.tif'],'-r200')
% close all