- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Nanjing university of information science technology 阿木
PAGE 1
以下技巧总结都是笔者从学习实践过程中总结出来的,基本的问题。不求全面,希望对读者学习有用,如果有问题,敬请留言指正,以促进交流学习!
软件综述:grads软件是一款绘图软件除了绘制图形,还可以提取数据,主要应用是在大气科学中,当然只要是数据处理成grads能够读取的数据文件就可以进行相关绘图。软件版本问题,软件本身不是很大,我接触到1.8、1.9、2.0版本的,1.8版本的安装很多情况还要修改环境变量、1.9版本的不识别‘sdfopen’命令,最稳定的版本是2.0版本,所以笔者推荐学习者安装2.0版本,选择默认安装路径就可以。
文件类型简述 :grads处理的是网格数据,可以处理的数据类型有:grd、grib、nc(海洋常用的数据),cdf(雷达卫星数据),其中nc、cdf数据都是自带描述文件,不需要ctl,grib数据要通过命令生成ctl、index数据才可以调用,常用的是grd数据,需要ctl。
数据文件转换:grads软件识别的数据是二进制无格式数据,文件类型是‘binary’,写入和生成时是不需要格式的如 read(20) sst(i,j,iz,it),20为文件号,通常是十进制数据与grd数据间转换,这里给一个grd转换成txt数据的fortran程序:
parameter(nx=56,ny=41,nz=1,nt=360)
dimension sst(nx,ny,nz,nt)
real sst
open(15,file=sst.grd,form=binary) !固定的用form=‘binary’就是二进制数据
open(16,file=sst.txt) !新建txt文件
do it=1,nt
do iz=1,nz
read(15) ((sst(i,j,iz,it),i=1,nx),j=1,ny) !read后只有文件号,数据是无格式的
enddo
enddo
do it=1,nt
do iz=1,nz
write(16,*) ((sst(i,j,iz,it),i=1,nx),j=1,ny) !输出时是txt文件可直接看的数据,有格式输出,有 *
enddo
enddo
close(15)
close(16)
end
写程序时:注意格点数要与数据对应,如:上程序对应的数据是 经度90~200,纬度-20~60,时间:1971.01~2000.12共360个月的海面温度数据,数据格点精度 2*2 ,nx=(200-90)/2+1,ny=(60-(-20))/2+1,nt=360,nz=1,大气的数据要根据数据的层次确定几层。
grd 、ctl、、gs、nc详述
grd文件:grd数据不可直接看,为二进制无格式数据,简单的说只有1和0,而且数据间没有间隔,grads识别grd是根据ctl进行划分的,根据ctl中的经度、纬度、层次、时间,精度进行数据分块。ctl实例:
dset C:\data\sst.grd
undef -9.99E+33
title sea surface tempture
xdef 56 linear 90 2
ydef 41 linear -20 2
tdef 360 linear jan1971 1mo
zdef 1 levels 0
vars 1
sst 0 99 surface sea tempture
endvars
上例数据的数据顺序是(以下是数据对应的经纬度)
纬度 经度(t=1)
-20 90~200的 纬度20S的从90E~200的56个数据
-18 90~200的 纬度18S的从90E~200的56个数据
.
.
.
90~200的 纬度60N的从90E~200的56个数据
以上为一层的数据,接下来是t=2,t=3……t=360的数据,每个时间点的每一层是如上格式,
编程时读取和写如的数据循环顺序依次是:时间、层次、纬度、经度,读者参照3中的fortran程序加以理解。
ctl文件:具体其他指导书上都有,我这里强调的是 sst 后面的0表示一层,如果是两层以上则是2,3……,1层是固定用法,sst后面的99是默认设置;undef -9.99E+33 此处的数值决定了软件将文件中的那些值认定为不绘制的数据,所以这个值一定要与数据对应。
gs 文件,批命令文件,与ctl一样是用记事本编写,另存为.gs文件,
文档评论(0)