爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 152832|回复: 148

[参考资料] 水深数据+海岸线数据提取绘图(海洋科学)

  [复制链接]

新浪微博达人勋

发表于 2012-10-6 09:03:20 | 显示全部楼层 |阅读模式

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

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

x
最近用matlab画的水深等值线图,在此分享一下~
水深的数据很少(我找的时候),可能现在有两个:一个是海图(没用过),一个是ETOPO1的数据(ETOPO2和ETOPO5不推荐使用)。下面介绍ETOPO1数据下载及绘图过程,有需要的请往下看。
ETOPO1数据下载链接:http://www.ngdc.noaa.gov/mgg/gdas/gd_designagrid.html?dbase=GRDET2
ETOPO1官方介绍:http://www.ngdc.noaa.gov/mgg/global/global.html
海岸线数据(coastline extractor):http://www.ngdc.noaa.gov/mgg/coast/
M_Map工具箱地址:http://www.eos.ubc.ca/~rich/map.html

1.先介绍海岸线数据:
NOAA提供了全球海岸线数据集,进入网站后,中间是选取经纬度。
1.jpg
在coastline database里选取你想要的数据集,如:它默认的World Vector Shoreline(designed for 1:250,000)。
再下面,在coast format options里面选取数据格式,如用matlab,选取matlab。选取matlab下载的数据为两列数据,一列是经度,一列是纬度数据,这样就可以在matlab里面用plot或m_plot(M_Map toolbox)绘制海岸线了。
你也可以选择GMT,预览你想要的海岸线的图形。
如选取渤海范围的经纬度,预览图像:
2.jpg
2.提取海岸线数据后,提取ETOPO1水深数据:
ETOPO1实际上是全球海拔+水深的数据。海拔的数据是正值,水深是负值。
链接到上面的网址后,grid database选择ETOPO1,选择你的经纬度。之后说一下数据格式。
在grid format里面,提供了三种数据,二进制,ascii码和xyz。我用的是xyz的数据,它是个十进制的。在matlab里,直接importdata就可以载入数据了。第一列是经度,第二列是纬度,第三列是水深。有了数据,如何把水深数据转成一个矩阵绘制等值线图呢?
仔细看经纬度数据是有规律的。纬度固定不变时,经度从低到高排列,所以对于一维的水深数据来说,用reshape函数,转成你想要的二维矩阵。矩阵的列是纬度数,行是经度数,再转置就是最后我们要用的矩阵形式了。但是由于我们要画水深,所以把>=0的数设为NaN,你也可以把水深数据变为正数(乘以-1)。这样有了数据再用contour或contourf画等值线图。

下面是我的m文件:
%绘制渤海水深图,由于近岸水深不准确,水深数据小于等于9m的设为NaN,只画10m,20m,30,等值线图
clear all
load bohai.mat %载入海岸线数据,变量名为data,第一列为经度数据,第二列为纬度数据
load depth.mat %载入已处理过的经度,纬度,水深数据
m_proj('miller','lon',[117 123],'lat',[37 41]);
m_grid('linestyle','none','box','fancy');
hold on
m_plot(data(:,1),data(:,2),'k','linewidth',1.5);
[c h]=m_contour(lon,lat,depth,10:10:30,'k');
clabel(c,h,'rotation',0,'linewidth',1);
title('Water depth of Bohai (meter)');
print -dpng -r300 bohai.png

上面的程序用到了M_Map工具箱,用于投影和画地图等使用。
最后的图像:
bohai.png
PS:NOAA(NGDC)有官方的软件——GEODAS,下载数据后,可直接用这个软件打开,直接出图,而且图形美观。软件下载也在上面链接中,大家可自行查找下载。
下面是用GEODAS画的中国海的海拔和水深图:
chinasea.jpg colorbar.jpg
PS:希望大家有关海洋科学画图好的经验及时分享~

评分

参与人数 4金钱 +36 贡献 +5 收起 理由
lotus_1905 + 5 很给力!
小虫小虫 + 1 赞一个!
mofangbao + 10 + 3
wlzhongouc + 20 + 2 赞一个!

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-6 09:18:22 | 显示全部楼层
不错哈 很认真的总结
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-6 09:26:07 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-6 09:31:03 | 显示全部楼层
wlzhongouc 发表于 2012-10-6 09:18
不错哈 很认真的总结

顺便说一下,家园的帖子搜索为什么搜索不了呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-6 10:01:04 | 显示全部楼层
Aires 发表于 2012-10-6 09:31
顺便说一下,家园的帖子搜索为什么搜索不了呢?

暂时的不稳定吧 等 @mofangbao  来看看 呵呵
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-6 11:20:21 | 显示全部楼层
你做的工作很不错,我最近也在搞这块,不知道你用SWAN模型不,可以交流下
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-6 11:31:24 | 显示全部楼层
夏天爱裤衩 发表于 2012-10-6 11:20
你做的工作很不错,我最近也在搞这块,不知道你用SWAN模型不,可以交流下

不好意思,我现在不用模型,只是画了个水深图。你可以和其他海洋系的同学交流。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-10 13:32:20 | 显示全部楼层
skku1分的水深数据不错。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-11 17:19:03 | 显示全部楼层
请问从NOAA网站上下载下来的水深的单位是什么呀?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-11 17:21:08 | 显示全部楼层
lotuslll 发表于 2012-10-11 17:19
请问从NOAA网站上下载下来的水深的单位是什么呀?

海拔高度和水深的单位都是米,正值为海拔高度,负值为水深。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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