爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 10875|回复: 3

[参考资料] 引用matlab关于m_map运用

 关闭 [复制链接]

新浪微博达人勋

发表于 2016-10-18 15:12:50 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
M_Map:映射方案Matlab

                               
登录/注册后可看大图

你收集了数据,加载它Matlab,分析了一切,现在你想要一个简单的地图如何与世界。
但是你不能。
相反,你必须找出如何保存所有数据,然后读到另一个程序(例如,格林尼治时间),然后花额外的时间找出为什么它不给你预期会……或者你可以投资于Matlab工具箱的映射(同样陡峭的学习曲线)……不信!


宣布M_Map v1.4h !(2014年9月/更新)

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图

                               
登录/注册后可看大图


M_Map是一组映射工具Matlab v5和后写的。这些包括:
  • 例程在19个不同的球形预测项目数据(和确定的逆映射)
  • 网格生成程序,使好轴与限制在纬度/经度条款或平面X / Y。
  • 海岸线数据库(1/4度分辨率)
  • 全球高程数据库(1度分辨率)
  • 钩到免费提供高分辨率的海岸线和深度测量法数据库
新版本1.4 h
  • ETOPO2v2和ETOPO1支持。
  • 处理一些关于BITMAX警告出现在Matlab 2014 b。注意——我只能修复或解决方案中的一些非常糟糕的错误2014 b。小心使用(或更好的是不使用)。EPS输出特别是真的很糟糕,即使屏幕图看起来是“好”。幸运的是mathworks“可能会考虑在将来的版本中解决这个”。
  • 添加选项输出只有在国家+国家或国家边界 m_gshhs.
新版本1.4 g
  • m_ellipse。潮汐省略号(说,从m阴谋T_Tide )
  • 选择使用十进制度或度/十进制分网格轴标签
  • Matlab 2013 b有一个糟糕的错误dataaspectratio轴属性影响几乎所有的图形。这个版本的M_Map有一个变通方法,主要作品,但是最好避免使用2013 b。
新版本1.4 f
  • m_shaperead。我读shapefile !(所以自然地球可用于政治界限而不是起重集团其他机会)
  • gshhs版本2的支持
  • 部分八度兼容性
新版本1.4 e
  • GSHHS现在有WDB河流和边界数据库,通过m_gshhs.m和链接已经添加
  • 包括椭圆形阿尔伯斯和兰伯特圆锥投影
新版本1.4 d
  • 修改工作在bug matlab7 contourf
  • 罗宾逊投影
  • 一些与当前matlab版本兼容性问题
  • 升级钩到一些数据库。
新版本1.4 b
  • m_hatch孵化和斑点补丁
  • 老式的斑点海岸线(适合黑白照片示例13).
  • 大圆m_lldist现在也返回点测地线。
  • m_fdist、m_idist m_geodesic椭圆地球上测地线。
新的1.4版本的
  • m_pcolor
  • m_coord(允许地理和地磁坐标系)
  • 为数不多的小bug修复。
  • 一些提示和示例的卫星图像数据添加到你的地图。


如何让M_Map你可以下载M_Map工具箱gzip tar文件,或者zip归档(点击这些链接下载)。如果你解压zip文件确保你也打开子目录!都是在650 k大小。一旦你有存档,阅读开始部分的用户指南正确安装这个工具箱,部分910.1分别安装TerrainBase和GSHHS。
大量的例子被强调的各种功能M_Map(缩略图如上所示)。
你也可以m_namebox(一组实用程序来自动将名称添加到您的地图),通过它的主页http://www.nersc.no/ ~甚至/。

用户指南
  • 开始
  • 指定的预测
    • 方位的预测
    • 圆柱和变形的预测
    • 二次曲线预测
    • 杂项全球预测
    • 是的,但我应该使用投影?
    • 地图范围
    • 地图坐标系统地理和地磁
  • 海岸线和深度测量法
    • 海岸线选项
    • 地形水深选项/
  • 定制轴
    • 网格线和标签

                                     
      登录/注册后可看大图
    • 标题和x / ylabels
    • 传说的盒子
    • 规模的酒吧
  • 添加您自己的数据
    • 画线条、文字、箭头,补丁,舱口,斑点和轮廓
    • 绘制图像和p_color
    • 画tracklines
    • 图纸范围环和测地线
    • 将经度/纬度转换为投影坐标
    • 将投影坐标转换为经度/纬度
    • 计算点之间的距离
  • 更复杂的情节
  • 从一块删除数据
  • 添加你自己的海岸线
    • 起重集团政治界限
    • ESRI shapefile地球和自然政治界限
  • 添加你自己的地形/深度测量法
    • 桑德维尔史密斯和深度测量法
  • 使用TerrainBase 5分钟或ETOPO 2 - 1分钟的全球海洋测深学/地形
  • 使用GSHHS高分辨率海岸线数据库
    • 安装GSHHS
    • 有效利用GSHHS
  • M_Map工具箱内容和描述
  • 已知问题和错误
  • 八度兼容性问题

                                   
    登录/注册后可看大图
  • 改变自去年发布
信息、帮助、建议或bug报告,接触丰富Pawlowicz , (rich@eos.ubc.ca )


确认许多人帮助和建议,代码修复,等等。我尤其感激所做的功e .解雇d·伯恩·m·曼j .普林格尔和j . e .流行病学所有贡献代码。

例子1。M_Map标志m_proj('ortho','lat',48','long',-123');
m_coast('patch','r');
m_grid('linest','-','xticklabels',[],'yticklabels',[]);
patch(.55*[-1 1 1 -1],.25*[-1 -1 1 1]-.55,'w');
text(0,-.55,'M\_Map','fontsize',25,'color','b',...
   'vertical','middle','horizontal','center');
set(gcf,'units','inches','position',[2 2 3 3]);
set(gcf,'paperposition',[3 3 3 3]);

                               
登录/注册后可看大图
2。兰伯特正形圆锥投影的北美地形m_proj('lambert','long',[-160 -40],'lat',[30 80]);
m_coast('patch',[1 .85 .7]);
m_elev('contourf',[500:500:6000]);
m_grid('box','fancy','tickdir','in');
colormap(flipud(copper));

                               
登录/注册后可看大图
3所示。极射赤面投影的北极地区% Note that coastline is drawn OVER the grid because of the order in which
% the two routines are called

m_proj('stereographic','lat',90,'long',30,'radius',25);
m_elev('contour',[-3500:1000:-500],'edgecolor','b');
m_grid('xtick',12,'tickdir','out','ytick',[70 80],'linest','-');
m_coast('patch',[.7 .7 .7],'edgecolor','r');

                               
登录/注册后可看大图
4所示。两个中断预测世界上的海洋subplot(211);
Slongs=[-100 0;-75 25;-5 45; 25 145;45 100;145 295;100 290];
Slats= [  8 80;-80  8; 8 80;-80   8; 8  80;-80   0;  0  80];
for l=1:7,
m_proj('sinusoidal','long',Slongs(l,:),'lat',Slats(l,:));
m_grid('fontsize',6,'xticklabels',[],'xtick',[-180:30:360],...
        'ytick',[-80:20:80],'yticklabels',[],'linest','-','color',[.9 .9 .9]);
m_coast('patch','g');
end;
xlabel('Interrupted Sinusoidal Projection of World Oceans');
% In order to see all the maps we must undo the axis limits set by m_grid calls:
set(gca,'xlimmode','auto','ylimmode','auto');

subplot(212);
Slongs=[-100 43;-75 20; 20 145;43 100;145 295;100 295];
Slats= [  0  90;-90  0;-90   0; 0  90;-90   0;  0  90];
for l=1:6,
m_proj('mollweide','long',Slongs(l,:),'lat',Slats(l,:));
m_grid('fontsize',6,'xticklabels',[],'xtick',[-180:30:360],...
        'ytick',[-80:20:80],'yticklabels',[],'linest','-','color','k');
m_coast('patch',[.6 .6 .6]);
end;
xlabel('Interrupted Mollweide Projection of World Oceans');
set(gca,'xlimmode','auto','ylimmode','auto');

                               
登录/注册后可看大图
5。斜轴墨卡托投影颤抖和轮廓数据%% Nice looking data
[lon,lat]=meshgrid([-136:2:-114],[36:2:54]);
u=sin(lat/6);
v=sin(lon/6);

m_proj('oblique','lat',[56 30],'lon',[-132 -120],'aspect',.8);

subplot(121);
m_coast('patch',[.9 .9 .9],'edgecolor','none');
m_grid('tickdir','out','yaxislocation','right',...
       'xaxislocation','top','xlabeldir','end','ticklen',.02);
hold on;
m_quiver(lon,lat,u,v);
xlabel('Simulated surface winds');

subplot(122);
m_coast('patch',[.9 .9 .9],'edgecolor','none');
m_grid('tickdir','out','yticklabels',[],...
       'xticklabels',[],'linestyle','none','ticklen',.02);
hold on;
[cs,h]=m_contour(lon,lat,sqrt(u.*u+v.*v));
clabel(cs,h,'fontsize',8);
xlabel('Simulated something else');

                               
登录/注册后可看大图
6。米勒和大圆投影% Plot a circular orbit
lon=[-180:180];
lat=atan(tan(60*pi/180)*cos((lon-30)*pi/180))*180/pi;

m_proj('miller','lat',82);
m_coast('color',[0 .6 0]);
m_line(lon,lat,'linewi',3,'color','r');
m_grid('linestyle','none','box','fancy','tickdir','out');

                               
登录/注册后可看大图
7所示。兰伯特正形投影西地中海的高分辨率深度测量法m_proj('lambert','lon',[-10 20],'lat',[33 48]);
m_tbase('contourf');
m_grid('linestyle','none','tickdir','out','linewidth',3);

                               
登录/注册后可看大图
8。演示的向量m_vec   % See code in m_vec.m for details

                               
登录/注册后可看大图
9。放大爱德华王子岛来显示不同的海岸线的决议% Example showing the default coastline and all of the different resolutions
% of GSHHS coastlines as we zoom in on a section of Prince Edward Island.

clf
axes('position',[.35 .6 .37 .37]);
m_proj('albers equal-area','lat',[40 60],'long',[-90 -50],'rect','on');
m_coast('patch',[0 1 0]);
m_grid('linest','none','linewidth',2,'tickdir','out','xaxisloc','top','yaxisloc','right');
m_text(-69,41,'Standard coastline','color','r','fontweight','bold');

axes('position',[.09 .5 .37 .37]);
m_proj('albers equal-area','lat',[40 54],'long',[-80 -55],'rect','on');
m_gshhs_c('patch',[.2 .8 .2]);
m_grid('linest','none','linewidth',2,'tickdir','out','xaxisloc','top');
m_text(-80,52.5,'GSHHS\_C (crude)','color','m','fontweight','bold','fontsize',14);

axes('position',[.13 .2 .37 .37]);
m_proj('albers equal-area','lat',[43 48],'long',[-67 -59],'rect','on');
m_gshhs_l('patch',[.4 .6 .4]);
m_grid('linest','none','linewidth',2,'tickdir','out');
m_text(-66.5,43.5,'GSHHS\_L (low)','color','m','fontweight','bold','fontsize',14);

axes('position',[.35 .05 .37 .37]);
m_proj('albers equal-area','lat',[45.8 47.2],'long',[-64.5 -62],'rect','on');
m_gshhs_i('patch',[.5 .6 .5]);
m_grid('linest','none','linewidth',2,'tickdir','out','yaxisloc','right');
m_text(-64.4,45.9,'GSHHS\_I (intermediate)','color','m','fontweight','bold','fontsize',14);

axes('position',[.55 .23 .37 .37]);
m_proj('albers equal-area','lat',[46.375 46.6],'long',[-64.2 -63.7],'rect','on');
m_gshhs_h('patch',[.6 .6 .6]);
m_grid('linest','none','linewidth',2,'tickdir','out','xaxisloc','top','yaxisloc','right');
m_text(-64.18,46.58,'GSHHS\_H (high)','color','m','fontweight','bold','fontsize',14);

                               
登录/注册后可看大图
10。Tracklines和UTM投影m_proj('UTM','long',[-72 -68],'lat',[40 44]);
m_gshhs_i('color','k');
m_grid('box','fancy','tickdir','in');

% fake up a trackline
lons=[-71:.1:-67];
lats=60*cos((lons+115)*pi/180);
dates=datenum(1997,10,23,15,1:41,zeros(1,41));

m_track(lons,lats,dates,'ticks',0,'times',4,'dates',8,...
        'clip','off','color','r','orient','upright');

                               
登录/注册后可看大图
11。范围环    m_proj('hammer','clong',170);
    m_grid('xtick',[],'ytick',[],'linestyle','-');
    m_coast('patch','g');
    m_line(100.5,13.5,'marker','square','color','r');
    m_range_ring(100.5,13.5,[1000:1000:15000],'color','b','linewi',2);
    xlabel('1000km range rings from Bangkok');

                               
登录/注册后可看大图


12。有斑点的边界    bndry_lon=[-128.8 -128.8 -128.3 -128 -126.8 -126.6 -128.8];    bndry_lat=[49      50.33  50.33  50   49.5   49     49];        clf;    m_proj('lambert','long',[-130 -121.5],'lat',[47 51.5],'rectbox','on');    m_gshhs_i('color','k');              % Coastline...    m_gshhs_i('speckle','color','k');    % with speckle added    m_line(bndry_lon,bndry_lat,'linewi',2,'color','k');     % Area outline ...    m_hatch(bndry_lon,bndry_lat,'single',30,5,'color','k'); % ...with hatching added.    m_grid('linewi',2,'linest','none','tickdir','out','fontsize',12);    title('Speckled Boundaries for nice B&W presentation (best in postscript format)','fontsize',14);    m_text(-128,48,5,{'Pacific','Ocean'},'fontsize',18);

                               
登录/注册后可看大图


13。蓝色的海洋    m_proj('miller','lat',[-75 75]);  
    m_coast('patch',[.7 1 .7],'edgecolor','none');
    m_grid('box','fancy','linestyle','none','backcolor',[.9 .99 1]);

    cities={'Cairo','Washington','Buenos Aires'};
    lons=[ 30+2/60  -77-2/60   -58-22/60];
    lats=[ 31+21/60  38+53/60  -34-45/60];

    for k=1:3,
      [range,ln,lt]=m_lldist([-123-6/60 lons(k)],[49+13/60  lats(k)],40);
      m_line(ln,lt,'color','r','linewi',2);
      m_text(ln(end),lt(end),sprintf('%s - %d km',cities{k},round(range)));
    end;

    title('Great Circle Routes','fontsize',14,'fontweight','bold');

                               
登录/注册后可看大图


卫星数据操作的例子1。全球海温(或任何变量在全球纬度/经度网格)
% NOAA / NASA探路者AVHRR SST的产品
% http://podaac.jpl.nasa.gov/sst/

[P,地图]= imread(“. . / m_mapWK / 199911 h54ma-gdm.hdf”);

%为54公里数据集的文档
%这个温度的公式
P = 0.15 * 3双(P);%摄氏度

%……并定义这个纬度/经度网格数据
平台= 90年-[0:359]* 5;Plon = -180 +或25 +(0:719)* 5;

%因为网格rectangluar在纬度/经度(即不是
%是真正的一个投影,尽管它是包含在
% m_map等距cyldindrical的名义),我们
%不想使用“图像”技术。而不是……
%创建一个网格,抵消了一半帐户的网格点
平pcolor %
(身为Plt]= meshgrid(plon - 0.25,平台+ 0.25);

m_proj(' hammer-aitoff ',' clongitude ',-150);

%,而不是重新排列数据匹配的所以它的限制
%画我画两次(你可以看到加入180 w
%的怪癖pcolor)(注意
%的所有全球预测360度模糊)
m_pcolor(身为Plt P);阴影平;colormap(地图);
抓住;
m_pcolor(Plt,身为- 360 P);阴影平;colormap(地图);

m_coast(“补丁”,[。6 1。6);
m_grid(“xaxis”,“中产”);

% colorbar添加一个标准。
h = colorbar(' h ');
集(get(h,“标题”),“字符串”,1999年11月AVHRR SST);

                               
登录/注册后可看大图



2。SSM / I冰盖(数据提供一个固定的网格)
% SSM / I冰浓度网格
%(国家冰雪数据中心)

P = hdfread(“/ mnt / cdrom / nasateam /北/ 1991 / 2月/ 910222。合计”、“8位光栅图像# 2”);
P(P = = 168)= 101;%的土地,没有报道。
P(P = = 157)= 102;%坏数据

% SSM / I冰极极射赤面投影产品。
%的角点网格。在这里我们只
%使用这些角点和一切都会“假设”
%的工作。这不是坏,虽然他们的实际使用投影
%椭圆地球(m_map使用球形地球)。

m_proj(“立体”、“纬度”,90年,“半径”,55岁的rotangle,45);

%转换为指向屏幕坐标下和左角落。这
%当然是组装机。
[MAPX,dm]= m_ll2xy([279.26 - 350.03],[33.92 - 34.35],“剪辑”,“关闭”);
[dm,MAPY]= m_ll2xy([168.35 - 279.26],[30.98 - 33.92],“剪辑”,“关闭”);

clf
%绘制数据作为形象
图像(MAPX MAPY P);设置(gca,‘ydir’,‘正常’);
colormap([喷气(100);0 0 0 1 1 1]);

m_coast(“补丁”,[。6。6。6);
m_grid(' linewi ' 2 ' tickdir ','从');
标题(“SSM / I冰盖1991年2月22日”,“字形大小”,14日“fontweight”,“大胆”);

h = colorbar(' v ');
集(get(h,ylabel),'字符串','冰总浓度(%)');


                               
登录/注册后可看大图




3所示。航拍照片UTM网格
%这张照片来自于TerraServer
%(http://terraserver.microsoft.com/)
%,地理UTM坐标。UTM投影
%使用UTM坐标在屏幕上(只要椭圆
%参数设置为默认)之外的东西。
[P,地图]= imread(“. . / m_mapWK / oncehome.jpeg”);

%设置投影限制图像的纬度/经度
%的角落。
m_proj(“设备”、“长”,[71 - 6/60 30/3600 71 - 4/60 43/3600],…
“纬度”,[42 + 21/60 + 13/3600 42 + 22/60 + 7/3600),“椭圆”、“wgs84”);

clf;
图像(326400[326400],[4692800 4691200],P);设置(gca,‘ydir’,‘正常’);
m_grid(‘tickdir’,‘出来’,‘linewi’,2,字形大小,14);
标题(“家庭对于某些书呆子”,“字形大小”,16);

                               
登录/注册后可看大图



4所示。全球数据集的子集(HDF格式)
[size=-1]%海洋颜色来自http://seawifs.gsfc.nasa.gov/SEAWIFS.html的数据
[size=-1]%
[size=-1]% 4公里弱平均数据,绘制地图的海峡
[size=-1]%格鲁吉亚和外海岸。请注意,其中的大部分代码都是使用
[size=-1]%的阅读和构造子集数据。

[size=-1]LATLIMS =(47 51);
[size=-1]LONLIMS =(-130 - -121);

[size=-1]%注意——这是阅读和可能不是最有效的方法
[size=-1]%处理HDF数据,但我通常不这样做…
[size=-1]%
[size=-1]%,属性数据
[size=-1]π= hdfinfo(“A20040972004104.L3m_8D_CHLO_4KM”);
[size=-1]%和写作结构
[size=-1]销=[];
[size=-1]对于k = 1:59,
[size=-1]海里= PI.Attributes(k)。名称;纳米(纳米= = ' ')=“_”;
[size=-1]如果isstr(PI.Attributes(k)value),
[size=-1]销= setfield(销、纳米、PI.Attributes(k)value);
[size=-1]其他的
[size=-1]销= setfield(销、纳米、双(PI.Attributes(k)value));
[size=-1]结束
[size=-1]结束;

[size=-1]%经度/纬度的网格
[size=-1]朗=[pin.Westernmost_Longitude:pin.Longitude_Step pin.Easternmost_Longitude):;
[size=-1]lat =[pin.Northernmost_Latitude:-pin.Latitude_Step pin.Southernmost_Latitude):;

[size=-1]%得到所需的指标感兴趣的领域
[size=-1](mn,ilt)= min(abs(lat-max(LATLIMS)));
[size=-1](锰、ilg)= min(abs(lon-min(LONLIMS)));
[size=-1]ltlm =修复(diff(LATLIMS)/ pin.Latitude_Step);
[size=-1]lglm =修复(diff(LONLIMS)/ pin.Longitude_Step);

[size=-1]%的子集数据加载所需的地图限制
[size=-1]P = hdfread(“A20040972004104。L3m_8D_CHLO_4KM”、“l3m_data”、“指数”,{[ilt ilg],[],[ltlm lglm]});

[size=-1]%将数据转换成日志(Chla)使用给定的方程。空白没有数据。
[size=-1]P =双(P);
[size=-1]P(P = = 255)=南;
[size=-1]P =(pin.Slope * P + pin.Intercept);% log_10 chla

[size=-1]LT =纬度(ilt +[0:ltlm-1]);LG =经度(ilg +[0:lglm-1]);
[size=-1](身为Plt]= meshgrid(LG、LT);

[size=-1]%画地图…

[size=-1]clf;
[size=-1]m_proj(LONLIMS“兰伯特”,“朗”,“纬度”,LATLIMS);
[size=-1]m_pcolor(身为Plt P);阴影平;
[size=-1]m_gshhs_i(“颜色”、“k”);;
[size=-1]m_grid(' linewi ' 2 ' tickdir ','从');;
[size=-1]h = colorbar;
[size=-1]集(get(h,“ylabel”),“字符串”,“Chla(\杯/ l)');
[size=-1]集(h,ytick,log10([。5 1 2 3 5 10 20 30]),“yticklabel”(。5 1 2 3 5 10 20 30],“tickdir”、“出”);
[size=-1]标题([的MODIS Chla datestr(datenum(pin.Period_Start_Year 1 0)+ pin.Period_Start_Day)“- >”……
[size=-1]datestr(datenum(pin.Period_Start_Year 1 0)+ pin.Period_End_Day)],…
[size=-1]“fontweight”字形大小,14日,“大胆”);


                               
登录/注册后可看大图


最后改变了2014年10月24日。问题和评论rich@eos.ubc.ca
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-10-18 16:41:09 | 显示全部楼层
好东西,收藏一份
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-1-31 19:00:44 | 显示全部楼层
感谢楼主分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-1-31 20:33:34 | 显示全部楼层
缺少bou1_4p.shp数据
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表