- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CTD数据处理及可视化.doc
第7周上机操作
一、大家以前接触过CTD数据,关于CTD数据的导出各位同学已有基础,不知道的同学可以向同学学一下,这里我们用CTD导出的ASCII码数据(后缀名为*.cnv),进行读取等简单的处理画图。
要求:
1 用fopen、fgetl、fscanf以及fclose命令实现数据的读入压力、温度及盐度;
2、 首先看文件的格式,弄清楚:数据从多少行开始,多少行结束、有多少列 以及数据的各列含义;
3. 实现操作为
fid=fopen(v,r);
for i=1:96
fgetl(fid); %把文件的说明部分略过
end
data=scanf(fid,%f,[12 inf]);% 把数据读入到矩阵,注意为什么行要用12?
data=data;
%%% 大家注意 name 0 对应于v数据的第一列
d_pressure=data(:,2); % 压力(等价于深度),也即说明文件的 name 1 对应于第2列
T=data(:,3); %温度, 也即说明文件的 name 2 对应于第3列
S=data(:,8); %盐度, 也即说明文件的 name 7 对应于第8列
%绘出温度-深度图、盐度深度图以及T-S散点图
subplot(2,2,1)
plot(t,dpth,--k);
set(gca,ydir,reverse,fontsize,15);
title(Depth-Temp Diagram)
xlabel(Temperature (^0C));
ylabel(Depth (m));
ylim([0 100])
subplot(2,2,2)
plot(s,dpth,--b)
set(gca,ydir,reverse,fontsize,15);
title(Depth-Salinity Diagram)
xlabel(Salinity (psu));
ylabel(Depth (m));
ylim([0 100])
subplot(2,2,3)
scatter(s,t)
4 要求对其余几个数据做同样操作,绘出相应的图给我看。记得用figure打开新的图形窗口
二、 HDF数据的加载:
什么是HDF?
HDF是一个能够自我描述、多目标、用于科学数据存储和分发的数据格式/view/5055223.htm)。S20020322002059.L3m_MO_PIC_pic_9km为例):
首先用hdftool看文件的格式(或用hdfview),知道第一维、第二维内容,
维数“(主要查看:Northernmost Latitude; Southernmost Longitude;Western Longitude;以及Latitude step以及Longitude step);理解数据是由北向南,由东向西排列,这很重要。
用hdftool浏览: 1)在命令行敲入 hdftool回车
2)当出现HDF Import Tool界面时,在File里选择Open File工具条;3)选择要打开的文件,如果文件类型部分没有显示,直接把文件类型改为All Files,再点击需打开文件(双击或者点击在点打开)
4)在新界面左上角,点l3m_data,然后在右下角得到一个读写的语句。5)直接点击Import,则l3m_data就以矩阵格式导入matlab工作空间
5’)把左下方的命令语句拷出,用于下面操作。
3、得到读取命令如l3m_data = hdfread(S20020322002059.L3m_MO_PIC_pic_9km, /l3m_data, Index, {[1 1],[1 1],[2160 4320]});
4)hdfread命令理解
dataset_name =hdfread(file,dataset_name, Index, {start,stride,edge});
file:要读取的文件名;dataset_name:要读取的变量名;‘Index‘:要读取的范围,其中start表示读取的起始点,stride表示读取间隔(如果为 1则表示按原间隔),edge表示每一维的读取长度。对照3,理解命令之;
5)如果截取我们想要的区域,以下是一个例子:截取(0-25N,45-125E)区域的数据
lat=89.9583:-0.0833333:-89.9583; %% 根据1中内容,得到第一维(纬度)格点
lon=-179.9583:0.0833333:179.9583; %%根据1中内容,得到第二维(经度)格点
大家思考一下理解一下,为什么?
lt1=find((25-lat)==-min(abs(25-lat)));%%%注意,数据是由北向南排,
%因此较大纬度对应较小的顺序…
lt2=find((lat-0)==-m
文档评论(0)