dayon的个人博客分享 http://blog.sciencenet.cn/u/dayon

博文

对待.grd文件,用什么fread,应该最先想到importdata!

已有 4514 次阅读 2020-9-28 19:34 |个人分类:科研笔记|系统分类:科研笔记| matlab, grd, 读取, matlab, matlab

用 importdata 读取.grd文件

       还是花点时间记录一下,搞了好大一会儿,发现还是最简单的方式解决了看似复杂的问题

对于.grd文件,应该是经常会遇到,今年就是不想简单人工手动解决,就是想万一后面遇到批量处理的grd文件,也好用代码处理。

      有人推荐用fopen, fread方式结合去读取,试过之后发现有以下问题:

      (1)对于有NODATA的空值,通常都是-9999等数值替代,但对于其他有数据的值,格式多为浮点型(float 或者 double类型),字符读取长度的不一致导致 fread 函数中的 precision 参数不确定如何设置;

      (2)fread 貌似是从后向前读,所以对于头几行的跳过,参数设置一直不太成功(个人尝试)


       (1)直接将grd文件拖入matlab中是可以打开的,如下图,通过把头几行砍掉,复制粘贴到矩阵中是可以解决问题的,但这需要 手动;

image.png

       

      (2)matlab 的 importdata函数可以直接以矩阵方式读入,且可以设置“间隔符(DelimiterIn)”和”跳行(HeaderlinesIn)“

Description

example

A = importdata(filename) loads data into array A.

example

A = importdata('-pastespecial') loads data from the system clipboard rather than from a file.

A = importdata(___,delimiterIn) interprets delimiterIn as the column separator in ASCII file, filename, or the clipboard data. You can use delimiterIn with any of the input arguments in the above syntaxes.

example

A = importdata(___,delimiterIn,headerlinesIn) loads data from ASCII file, filename, or the clipboard, reading numeric data starting from line headerlinesIn+1.

example

[A,delimiterOut,headerlinesOut] = importdata(___) additionally returns the detected delimiter character for the input ASCII file in delimiterOut and the detected number of header lines in headerlinesOut, using any of the input arguments in the previous syntaxes. additionally returns the detected delimiter character for the input ASCII file in delimiterOut and the detected number of header lines in headerlinesOut, using any of the input arguments in the previous syntaxes.


所以直接用 importdata 函数读取即可

image.pngimage.png



可以看到数据形状是一致的,但需要注意的是:矩阵可能是倒置的

image.png

因此可以通过 pcolor() 函数进行查看,用 flip函数进行倒置转换!




https://blog.sciencenet.cn/blog-3425629-1252473.html

上一篇:[转载]气象数据来源
下一篇:Sublime 中配置 NCL 的语法规则
收藏 IP: 218.19.145.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-22 22:09

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部