第2章数据处理

上传人:aa****6 文档编号:57529533 上传时间:2018-10-22 格式:PPT 页数:73 大小:5.16MB
返回 下载 相关 举报
第2章数据处理_第1页
第1页 / 共73页
第2章数据处理_第2页
第2页 / 共73页
第2章数据处理_第3页
第3页 / 共73页
第2章数据处理_第4页
第4页 / 共73页
第2章数据处理_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《第2章数据处理》由会员分享,可在线阅读,更多相关《第2章数据处理(73页珍藏版)》请在金锄头文库上搜索。

1、第2章 数据处理,在使用GrADS绘图前,必须使所用数据文件满足GrADS的数据格式要求。,2.1 各类数据格式的特点,一般二进制无格式直接或者顺序记录的数据格式:可以是格点数据或站点数据,可以用Fortran或者C语言读写。需要数据描述文件.ctl,GRIB码数据格式:是自定义的数据格式,压缩率高,占用空间小。例如NCEP提供的数据资料。 NETCDF(.nc)等通用数据格式:自定义数据格式,精确性好,便于传输。 文件中自带描述文件。,2.2 数据文件的转换,1. 转换方法转换文件的数据存放格式,一般是通过Power Station或Visual Fortran等软件使用Fortran或者C

2、语言来编程转换。,2.数据存放形式,二进制数据排放顺序 从内循环到外循环依次是: x(经度):从西到东y(纬度):从南到北z(高度层数):从低层到高层vars(各种物理变量)t(时次) x(lon) y(lat) z(lev) vars(不同变量) time 任何一维可省略。,1 2 3 4 5 x,y5 4 3 2 1,Z,3. 举例(格点资料),现有ASCII码(十进制存放格式)数据资料文件u.dat、v.dat和sst.dat,其空间范围:60-150E,0-40N;层次:u、v为850、 200hPa;时段:1982.1-1985.12;分辨率:2.5*2.5。要求编写出将这三个文件转

3、换成二进制无格式直接存取(Grads格式.grd)文件的Fortran程序。,编程时数组大小:X方向:150-60=90,90/2.5+1=37 Y方向:40-0=40,40/2.5+1=17 Z方向: u、v为850、 200hPa ,Z为2sst为海表温度,只有一层,Z为1 T时次:月资料,4年,共48个月,Fortran程序编写如下:,! 定义一个X,Y,Z方向的格点数以及总时次ntparameter(nx=37,ny=17,nz=2,nt=48) ! 定义数组dimension u(nx,ny,nz,nt),v(nx,ny,nz,nt),sst(nx,ny,nt),! 打开原始数据文件

4、,如果数据文件和Fortran程序在一个文件夹下,打开数据文件时可以不写路径。open(1,file=u.dat)open(2,file=v.dat)open(3,file=sst.dat) ! 打开目标文件,recl为记录的长度,对于直接存取文件必须指定记录长度 。open(12,file=mhy.grd,form=unformatted, #access=direct, recl=nx*ny*4),! 把数据文件读入 do 100 it=1,ntdo 50 iz=1,nz read(1,*) (u(i,j,iz,it),i=1,nx),j=1,ny) 50 continuedo 51 iz

5、=1,nz read(2,*) (v(i,j,iz,it),i=1,nx),j=1,ny) 51 continue read(3,*) (sst(i,j,it),i=1,nx),j=1,ny) 100 continue,!将数据资料写入新文件中, irec重新进行记录累加 irec=0 do 200 it=1,ntdo 30 iz=1,nz irec=irec+1write(12,rec=irec) (u(i,j,iz,it),i=1,nx),j=1,ny) 30 Continuedo 31 iz=1,nzirec=irec+1write(12,rec=irec) (v(i,j,iz,it),

6、i=1,nx),j=1,ny) 31 continueirec=irec+1write(12,rec=irec) (sst(i,j,it),i=1,nx),j=1,ny) 200 continue end,irec=0 do 200 it=1,ntdo 30 iz=1,nz irec=irec+1write(12,rec=irec) (u(i,j,iz,it),i=1,nx),j=1,ny) 30 Continuedo 31 iz=1,nzirec=irec+1write(12,rec=irec) (v(i,j,iz,it),i=1,nx),j=1,ny) 31 continueirec=ir

7、ec+1write(12,rec=irec) (sst(i,j,it),i=1,nx),j=1,ny) 200 continue,如果不考虑采用无格式直接方式存取文件的话,可以使用下面的编程形式,较为简单。,parameter(nx=37,ny=17,nz=2,nt=48) dimension u(nx,ny,nz,nt),v(nx,ny,nz,nt),sst(nx,ny,nt) open(1,file=u.dat) open(2,file=v.dat) open(3,file=sst.dat) open(12,file=mhy.grd,form=binary),do 100 it=1,ntd

8、o 50 iz=1,nz read(1,*) (u(i,j,iz,it),i=1,nx),j=1,ny) 50 continuedo 51 iz=1,nz read(2,*) (v(i,j,iz,it),i=1,nx),j=1,ny) 51 continue read(3,*) (sst(i,j,it),i=1,nx),j=1,ny) 100 continue,do 200 it=1,ntdo 30 iz=1,nz write(12) (u(i,j,iz,it),i=1,nx),j=1,ny) 30 Continuedo 31 iz=1,nz write(12) (v(i,j,iz,it),i

9、=1,nx),j=1,ny) 31 continue write(12) (sst(i,j,it),i=1,nx),j=1,ny) 200 continue end,注意事项:,二进制写入的数据必须是实型的(real) 若数据为整型,写入时要转换成实型的real(iu(i,j,k,it),2.2 数据描述文件(.ctl),GrADS绘图不能直接使用“数据文件”,而是通过“数据描述文件”间接使用“数据文件”。,1. 数据描述文件的概念,数据描述文件是原始数据文件的描述文件。用以描述原始数据集的基本信息,包括数据集文件名、数据类型、数据结构、变量描述等等 。,2. 数据描述文件的形式,以下是另一个

10、格点数据描述文件的例子: * this is an example to demonstrate the data descriptor file DSET ua.dat TITLE Upper Air Data DTYPE grid OPTION byteswapped UNDEF -9.99E33,二进制数据的位存放顺序取反序,*注释行,XDEF 80 LINEAR -140.0 1.0 YDEF 50 LINEAR 20.0 1.0 ZDEF 10 LEVELS 1000 850 700 500 400 300 250 200 150 100 TDEF 4 LINEAR 0Z10apr1

11、991 12hr,西经140度,vars 6 slp 0 99 sea level pressure z 10 99 heights t 10 99 temps td 6 99 dewpoints u 10 99 u winds v 10 99 v winds endvars,3.数据描述文件的构成,(1)每个数据描述文件一般包含以下几项: 被描述的数据文件名(dset) 该数据说明文件的标题(title) 数据类型、格式和选项(dtype, format, option) 时间、空间维数环境设置(xdef, ydef, zdef, tdef) 变量定义(vars, endvars),(2)数

12、据描述文件中各记录的含义:,DSET 数据文件名 给定与此数据描述文件相对应的二进制原始数据文件名(可包含路径)。 若两者位于同一目录,前面的路径可以省略或以“”开始,代表两者位于同一目录。若不在同一目录下,应给出路径参数。如:d:/mydata/test.grd,TITLE string用字符串string简略描述数据文件的内容。即:数据的标题 UNDEF value定义缺测值。一般给一很大的正值或负值。GrADS在运算操作和图形操作时将忽略这些值点。,OPTIONS 定义数据格式选项,keywords 有:缺省时为 direct 直接记录格式(form=binary)自北向南的数据自高层到

13、低层的数据顺序无格式存贮的数据,二进制数据的位存放顺序取 反序 在SUN, SGI等机器上生成 的数据 在PC, DEC等机器上生成的数据,服务器,个人电脑,big-endian、little-endian 用于自动改变二进制位存放顺序, 多个时间序列原始数据文件用一个数据描述文件统一地描述描述这些原始数据时采用的选项,这些数据文件的文件名形式由 dset 定义的形式命名文件名,提示所含数据的时次。 例如:一个逐小时的数据集每 24小时数据放到一个文件中,每个文件名形式为:1may92.dat ,2may92.dat,3 may92.dat dset %d1%mc%y2.dat options

14、 template tdef 72 linear 0Z1may1992 1hr定义时间范围和增量,例如:,正确的替换为: %y2 两位数年 %y4 4 位数年 %m1 1 或2 位数月 %m2 2 位数月(用 0补齐 1 位数) %mc 3 字符月份缩写 %d1 1 或2 位数天 %d2 2 位数天 %h1 1 或2 位数小时 %h2 2 位小时,设置X方向格点与经度的对应关系 XDEF number 或 XDEF number number(=1)给定格点数,整形;LINEAR指明是等间隔分布格点,Start起点坐标,负数表示西经;increment网格间距。 LEVELS参数指明是不等间隔

15、分布格点,列出具体每个格点的坐标值(以空格分开)。,设置Y方向格点与纬度的对应关系 YDEF number 或 YDEF number 或 YDEF number mapping表示映射方式,有以下几种: GAUSR15 - 高斯R15 纬度 (Gaussian) GAUSR20 - 高斯R20 纬度 GAUSR30 - 高斯R30 纬度 GAUSR40 - 高斯R40 纬度 在linear中,Start起点坐标负数表示南纬; 在高斯映射中, Start起点坐标表示高斯纬度。,方向: 自西向东, 自南向北 (永远不变!) 单位: 个 纬度/经度 正负值: 以东为正/以北为正,xdef 144

16、linear 0 2.5 ydef 73 linear -90 2.5,方向维数定义,格点数,坐标值线性 增加,起始 坐标,坐标间隔,YDEF 20 GAUSR40 15 表示共有20个Y方向网格点,起始点为高斯R40网格下的高斯纬度15(即64.100S),实际这20个网格点对应的纬度值为: -64.10, -62.34, -60.58, -58.83, -57.07, -55.32, -53.56, -51.80, -50.05, -48.29, -46.54, -44.78, -43.02, -41.27, -39.51, -37.76, -36.00, -34.24, -32.49, -30.73,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号