使用GRADS读取转换nc文件的方法
ncep资料介绍
美国国家环境预报中心(NCEP)和国家大气研究中心(NCAR)联合执行的全球大气40年资料再分析计划通过CDC(Climate Dianogistic Center)利用磁带的形式向外发行。
南京大气资料服务中心通过NCEP朱跃建获得了磁带形式的40年再分析逐日资料。
现在把资料的基本情况作一简单的介绍。
1资料分类该资料集分:等压面资料、地面资料、通量资料1.1等压面资料资料格距:2.50 * 2.50的经纬网格网格点数:144* 73个格点资料范围:900N~900S,O0E~357.50E等压面层:共17层(hPa),1000,925,850,700,600,500,400,300,250,200,150,100,70,50,30,20,10资料文件:文件名由变量名的缩写和年份组成,如:air.83,表示1983年各等压面温度。
资料内容:各资料的说明见表1资料存放方式:每一个要素一年为一个数据文件;在文件中,先存放第1天第1层(l000)的值、…、第17层(10)的值;第2天第1~17层的值、…、该年最后一天第1~17层的值。
1.2地面资料资料格距:2.50 *2.50的经纬网格网格点数:144 *73个格点资料范围:900N~900S,00 E~357.50E资料层:地面或近地层(0.995层)表1等压面资料说明变量名缩写物理量单位air温度0.1Khgt位势高度m rhum相对湿度% shum比湿0.00001 kg/kgomega垂直速度0.001 Pa/suwnd纬向风速0.1m/svwnd经向风速0.1m/s资料文件:文件名由变量名的缩写、层和年份组成,如:air.Sig995.83,表示1983年地面温度。
资料内容:各资料的说明见表2资料存放方式:每一个要素一年为一个数据文件;在文件中,先存放第1天的值、第2天的值、…、该年最后一天的值。
表2地面资料说明变量名缩写和层物理量单位air.sig995温度0.1Klftx.sfc地面抬升指数0.1Klftx4.sfc最佳(4层)地面抬升指数0.1K omega.sig995垂直速度0.001Pa/spottmp.sig995位温0.1Kpr-wtr.eatm可降水量(整层气柱)0.1kg/m2 pres.sfc地面气压10Parhum.sig995相对湿度%slp海平面气压10Pauwnd.Sig995纬向风速0.1m/svwnd.sig995经向风速0.1m/shgt.sfc地形高度mland海陆分布1.3通量资料资料网格:T62高斯格点,192 *94个格点资料范围:88.5420N~88.5420S,00E~358.1250E资料文件:文件名由变量名的缩写和年份组成,如:pres.hcb.83,表示1983年高云底的气压。
【grads】ncdump的使用总结
【grads】ncdump的使⽤总结1、参数ncdumpncdump [-c] [-h] [-v var1,...] [-b lang] [-f lang] [-l len] [-n name] [-d f_digits[,d_digits]] fileWhere:-cShow the values of coordinate variables (variables that are also dimensions) as well as the declarations of all dimensions, variables, and attribute values. Data values of non-coordinate variables are not included in the output. This is the most suitable option to use for a brief look at the structure and contents of a netCDF file.-hShow only the header information in the output, that is the declarations of dimensions, variables, and attributes but no data values for any variables. The output is identical to using the -c option except that the values of coordinate variables are not included. (At most one of -c or -h options may be present.)-v var1,...,varnThe output will include data values for the specified variables, in addition to the declarations of all dimensions, variables, and attributes. One or more variables must be specified by name in the comma-delimited list following this option. The list must be a single argument to the command, hence cannot contain blanks or other white space characters. The named variables must be valid netCDF variables in the input-file. The default, without this option and in the absence of the -c or -h options, is to include data values for all variables in the output.-b langA brief annotation in the form of a CDL comment (text beginning with the characters ``//'') will be included in the data section of the output for each `row' of data, to help identify data values for multidimensional variables. If lang begins with C or c, then C language conventions will be used (zero-based indices, last dimension varying fastest). If lang begins with F or f, then Fortran language conventions will be used (one-based indices, first dimension varying fastest). In either case, the data will be presented in the same order; only the annotations will differ. This option is useful for browsing through large volumes of multidimensional data.-f langFull annotations in the form of trailing CDL comments (text beginning with the characters ``//'') for every data value (except individual characters in character arrays) will be included in the data section. If lang begins with C or c, then C language conventions will be used (zero-based indices, last dimension varying fastest). If lang begins with F or f, then Fortran language conventions will be used (one-based indices, first dimension varying fastest). In either case, the data will be presented in the same order; only the annotations will differ. This option may be useful for piping data into other filters, since each data value appears on a separate line, fully identified.-l lenChanges the default maximum line length (80) used in formatting lists of non-character data values.-n nameCDL requires a name for a netCDF data set, for use by ncgen -b in generating a default netCDF file name. By default, ncdump constructs this name from the last component of the pathname of the input netCDF file by stripping off any extension it has. Use the -n option to specify a different name. Although the output file name used by ncgen -b can be specified, it may be wise to have ncdump change the default name to avoid inadvertantly overwriting a valuable netCDF file when using ncdump, editing the resulting CDL file, and using ncgen -b to generate a new netCDF file from the edited CDL file.-d float_digits[,double_digits]Specifies default number of significant digits to use in displaying floating-point or double precision data values for variables that don't have a `C_format' attribute. Floating-point data will be displayed with float_digits significant digits. If double_digits is also specified, double-precision values will be displayed with that many significant digits. If a variable has a `C_format' attribute, that overrides any specified floating-point default. In the absence of any -d specifications, floating-point and double-precision data are displayed with 7 and 15 significant digits respectively. CDL files can be made smaller if less precision is required. If both floating-point and double-presision precisions are specified, the two values must appear separated by a comma (no blanks) as a single argument to the command. If you really want every last bit of precision from the netCDF file represented in the CDL file for all possible floating- point values, you will have to specify this with -d 9,17.Usage Notesncdump generates an ASCII representation of a specified netCDF file on standard output. The ASCII representation is in a form called CDL (``network Common Data form Language'') that can be viewed, edited, or serve as input to ncgen. ncgen is a companion program that can generate a binary netCDF file from a CDL file. Hence ncgen and ncdump can be used as inverses to transform the data representation between binary and ASCII representations. See ncgen for a description of CDL and netCDF representations.ncdump defines a default format used for each type of netCDF data, but this can be changed if a `C_format' attribute is defined for a netCDF variable. In this case, ncdump will use the `C_format' attribute to format each value. For example, if floating-point data for the netCDF variable Z is known to be accurate to only three significant digits, it would be appropriate touse the variable attributeZ:C_format = "%.3g"ncdump may also be used as a simple browser for netCDF data files, to display the dimension names and sizes; variable names, types, and shapes; attribute names and values; and optionally, the values of data for all variables or selected variables in a netCDF file.ExamplesLook at the structure of the data in the netCDF file foo.nc:ncdump -c foo.ncProduce an annotated CDL version of the structure and data in the netCDF file foo.nc, using C-style indexing for the annotations:ncdump -b c foo.nc > foo.cdlOutput data for only the variables uwind and vwind from the netCDF file foo.nc, and show the floating-point data with only three significant digits of precision:ncdump -v uwind,vwind -d 3 foo.ncProduce a fully-annotated (one data value per line) listing of the data for the variable omega, using Fortran conventions for indices, and changing the netCDF dataset name in the resulting CDL file to omega:ncdump -v omega -f fortran -n omega foo.nc > Z.cdl2、注意①它是在dos底下⽤的,如果在gradsnc中⽤,请在命令前加感叹号。
GrADS学习资料:第2章 数据处理
big-endian、little-endian 用于自动改变二进制位存放顺序
<template> 多个时间序列原始数据文件用一个数据描 述文件统一地描述描述这些原始数据时采用的选项, 这些数据文件的文件名形式由 dset 定义的形式命名 文件名,提示所含数据的时次。
例如:
正确的替换为: %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 <LINEAR Start increment> 或 XDEF number <LEVELS value-list>
number(>=1)给定格点数,整形; LINEAR指明是等间隔分布格点, Start起点坐标,负数表示西经; increment网格间距。 LEVELS参数指明是不等间隔分布格点,列 出具体每个格点的坐标值(以空格分开)。
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,nt do 50 iz=1,nz
read(1,*) ((u(i,j,iz,it),i=1,nx),j=1,ny) 50 continue
nc文件资料地读取与处理
.nc 文件的查看和处理2013-08-04 12:45阅读:2,168最近在学习冰后回弹模型(.atmosp.physics.utoronto.ca/~peltier/data.php),里面给出的数据为nc(netcdf)格式的,读取是个问题,在言深深的帮助下,成功读取,在这里将其总结出来,以备后用也希望可以方便有用之人。
有两种方式可以进行读取:1、Excel的一个插件,NetCDF4Excel可以完成相关的查看工作,需要的可以进行下载(dl.vmall./c0lngehgha),pan.baidu./share/link? ...416233&third=15(华为网盘太不靠谱,不知道百度靠谱到合适)安装之后,我们可以得到,一个快捷方式,如图:打开之后,我们可以看到下面的情形:然后打开nc文件,我们就可以进行查看操作:2、通过Grads进行相关的读取,主要是在言深深同学的帮助下完成,深深的感谢!第一步,安装相关的grads软件,这个这里不做介绍,相关可以论坛;第二步,打开grads软件,如图,回车之后的那个窗口千万不能关,那个窗口是图像显示的,关闭之后输入命令之后直接就退出了,刚开始我老犯这个低级错误(对菜鸟而言)。
第三步,可以通过两个命令简单的看到数据的头文件包含信息:①sdfopen d:\1.nc②q ctlinfo然后编写gs文件,如下:'reinit''sdfopen D:\1.nc''set gxout fwrite''se t fwrite D:\1.dat''set x 1 360''set y 1 179''set z 1''set t 1 1''d dsea_250''disable fwrite'ps1:路径自己可以按需更改,不要有空格。
grads处理多个ctl文件和nc文件
grads处理多个ctl文件和nc文件2011-10-10 21:03:59| 分类:grads学习| 标签:|举报|字号大中小订阅下载LOFTER我的照片书 |用grads处理多个相同格式的数据时若单个单个处理非常麻烦,当文件非常多的时候是单个处理是不实际的。
下面介绍一种方法;第一步,在这种情况下可以重新写一个ctl描述文件,其文件变量都和已知的ctl相同,若原来的n 文件只是时间不同,那么新描述文件的时间维数是所有原文件的时间的和。
同样,若其他维数不同时也用同样的方法处理。
第二步,在第一行之后添加一行:options template 表示多个时间序列原始数据文件想用一个描述文件统一地描述。
这些原数据的原文件名由dset定义的形势命名文件名。
第三步,修改dset 的文件名。
原路径不变,把文件名用%表示。
其中:%y2 代表两位数年%y4 代表四位数年%m1 代表一位或者两位数的月%m2 代表两位数月(用0补齐1位数)%mc 3个字符月份的缩写%d1 1或2位天%d2 两位天%h1 1或者2位时%h2 2位时例如:原文件其中之一的文件名为gdas2006050812f00,且所有文件只有天和时的变化那么新描述文件的文件名为:gdas200605%d2%h2f00另外如果源文件里有index项的话,需要修改其idx的文件名,假设改成fnl.idx。
并用在dos下用gribmap函数生成一个新的idx文件。
gribmap -e -i fnl.ctl(加绝对路径)open fnl.ctl就可以打开所有文件。
*************************************************************************************************************** *******************若想要提取从1951-2006年56年nc文件中的某些数据,一个一个处理非常麻烦,这里介绍种较为简易的方法。
GrADS站点资料的使用
GrADS站点资料的使用GrADS站点资料的使用台站型离散资料画图的一般原则1、把台站资料r.dat写成二进制文件r.grd一般而言,台站资料都是文本格式的,须用专门的程序写成带有站号、经度、纬度等的二进制文件。
例如:对某一时次的降水资料r.dat有如下形式:lon lat Precipitation119.8 30.6 0119.8 30.616 0119.8 30.632 0119.8 30.648 0119.8 30.664 0119.8 30.68 0119.8 30.696 0119.8 30.712 0119.8 30.728 0119.8 30.744 0119.8 30.76 0119.8 30.776 0。
该数据只有一个时次则相应的程序stn.f如下:parameter(n=10201)integer r1(n)real lat(n),lon(n),r(n)character*8 zh(n)open(1,file='d:\common\1.txt',form='formatted',status='old ')do i=1,nread(1,*)lon(i),lat(i),r1(i)r(i)=r1(i)enddodo i=1,nzh(i)=char(i)enddoopen(9,file='d:\common\r.grd',form='binary',status='unkno wn')open(99,file='d:\common\rr.txt')do 100 i=1,ntim=0.0nlev=1nflag=1write(9)zh(i),lat(i),lon(i),tim,nlev,nflagwrite(9)r(i)write(99,200)lon(i),lat(i),r(i)200 format(f8.3,f8.3,f6.2)100 continuenlev=0write(9)zh(i-1),lat(i-1),lon(i-1),tim,nlev,nflagclose(9)! do i=1,160do i=1,nif(r(i).lt.0.0)thenwrite(*,*)lon(i),lat(i),r(i)endifenddo! write(*,*)i,zh(5000),lat(5000),lon(5000),tim,nlev,nflag,r(5000)pause! enddoend2、编写r.grd数据的数据说明文件r.ctldset d:\common\r.grddtype stationstnmap d:\common\r.mapundef -999.0title station datatdef 1 linear jan1998 1movars 1r 0 99 grid data prepared for oacres functionendvars3、用r.ctl生成r.map文件实际上,是在GrADS中运行可执行文件stnmap.exe,如何运行对于自带显示窗口的GrADS1.8版本的:进入命令窗口后,在提示符下输入“!stnmap”ga_>!stnmap在出现的信息提示处输入r.ctlEnter stn ctl filename: D:\r.ctl4、生成格点文件因为GrADS只识别格点数据,所以需要把站点上的资料通过插值函数插值到某个格点文件上才能被识别。
第四章Grads数据资料转换和数据描述文件2013
G r ADS(Grid Analysis and Display System)讲义(4)内容提要一、GrADS所能处理的数据格式二、数据资料的准备(binary)ASCII码数据文件向二进制数据文件的转换三、数据描述文件的构成四、其它数据文件简介(netCDF/GRIB)五、GrADS控制文件简介一、GrADS所能处理的数据格式--Binary:自制,直接、顺序存取,Fortran 可以读写。
*.grd--netCDF(自描述):精确性好,便于传输;*.nc--GRIB:压缩率高。
*.grb--HDF-SDS(卫星资料)--ASCII(台风路径)--站点--BUFR(V1.9版本):二进制通用数据表示格式(BUFR),用于非格点气象数据的保存,便于网络传输,是世界气象组织(WMO)规定的标准格式,目前使用的常规气象资料数据以及雷达、卫星数据资料转换为BUFR格式二、Binary格式介绍1、简介1)GrADS最基本的数据格式;2)常用后缀:*.grd,.bin,.dat;3)可用fortran读写;4)一般为二进制无格式文件(form=‘unformatted’);5)访问形式直接(access=‘direct’)顺序(access=sequential)--ctl文件中说明6)格式说明由数据描述文件(*.ctl)描述;数据资料———数据描述文件———GrADS翻译器注意:数据文件和数据描述文件是分开的。
后者为纯文本格式,可用一般的编辑器产生(如记事本等);2、GrADS中数据的存放形式1)5-D的数据集(x,y),z,VAR,t排放顺序为先经度、纬度、高度,然后是物理变量,最后是时次变化。
一个x、y数据场构成一个记录。
2)3—D空间的排列x从西---东,y从南---北,z从下--上3、如何由ASCII码数据生成一个直接存取的无格式数据文件----------借助于Fortran程序完成例1:有一个4-D要素场,将其由ASCII码数据转为无格式直接存取文件,Fortran程序如下:Program mainC 定义一个X,Y,Z方向的格点以及总时次ntparameter(nx=144,ny=73,nz=17,nt=48)c 定义数组dimension var(nx,ny,nz,nt)c 打开原数据文件open(1,file='d:\llp\test.dat')!!ccccccccccccccccccccccccccccccccccccccccc!!ccccccc 一定格式把数据文件读入do 100 it=1,ntdo 50 iz=1,nzread(1,*) ((u(i,j,iz,it),i=1,nx),j=1,ny) 50 continue100 continue CCCCCCCCCCCCCCCCCCCccccccccccccccccccccccccccccccccccccccccccc c 打开目标文件,recl为记录的长度。
利用GrADS读取NCEP再分析资料格点数据
收稿日期:2004-08-30第一作者简介:方庆文(1966-),男,高工,副局长,主要从事行政管理工作。
文章编号:1003-6598(2004)05-0034-03利用GrADS 读取NCEP 再分析资料格点数据方庆文1,潘永地2,郑锋3,李波3(11贵州省铜仁地区气象局,贵州铜仁 554300;21浙江省温州市气象局,浙江温州 325003;31贵州省气象台,贵州贵阳 550002) 摘 要:简单介绍了美国国家环境预报中心(NCEP )和美国国家大气研究中心(NCAR )的再分析资料,简明阐述了GrADS 软件的获得、安装、使用,讨论了读取输出NCEP 资料的gs 程序编写,从而为广大基层台站利用NCEP 再分析资料进行研究应用提供参考。
关键词:NCEP ;资料读取;输出 中图分类号:TP319 文献标识码:C1 引言在基层台站的气象研究、气象实际业务应用中常常将气象台站的历史资料仅仅作为资料来源,随着研究的深入,数值预报技术的发展,越来越多的研究需要丰富的格点资料支持。
NCEP/NCAR 再分析资料内容丰富,资料年限包含1948年到现在,成为目前气象研究、业务应用的重要数据来源。
这些资料可以由许多图形软件输出图形,也可以通过Portran 、IDL 等编程实现,但需要Netcdf 库的支持和较高的编程水平。
如何使硬件设备、软件人才配备不足的基层台站方便地利用NCEP/NCAR 再分析资料解决一些实际问题呢?本文针对这一情况阐述如何用可免费得到的GrADS 软件编写读取输出NCEP 资料的gs 程序。
2 NCEP/NCAR 再分析资料介绍美国国家环境预报中心(NCEP )和美国国家大气研究中心(NCAR )对全球从1948年到现在的气象资料进行再分析形成格点资料。
这些资料对外公开,成为广大气象研究者的重要数据来源。
在美国国家环境预报中心网站( )上的搜索栏(Search )中输入ncep ncar 点击GO 按纽,即进入再分析资料的下载地址。
GrADS实习报告
南京信息工程大学 实验(实习)报告实验(实习)名称 基于NCAR/NCEP 再分析资料的降水和气温的气候特征分析日期 2016.10 得分 指导教师 孙晓娟 系 大气科学 专业大气科学班次 长望实验班 姓名 夏新露一、 实习目的(1) 了解NCEP/NCAR 再分析数据记得数据结构。
(2) 通过NCEP/NCAR 再分析数据集,掌握FORTRAN 有格式输入输出语句(Read 、Print 、Write )的读写四维数据的方法。
(3) 掌握FORTRAN 多维数组的定义和使用方法。
(4) 掌握隐式do 循环的使用方法。
(5) 巩固FORTRAN 顺序结构概念和顺序结构程序设计方法。
(6) 掌握GrADS 对“*.nc ”文件的读取方法。
(7) 掌握GrADS 中fwrite 写出二进制数据的方法。
(8) 掌握GrADS 中While 循环的使用方法。
(9) 掌握GrADS 中变量的定义和使用方法。
(10) 掌握四维“*.grd ”数据格式建立数据描述文件(*.ctl )的方法。
(11) 巩固GrADS 的基本操作命令的使用方法。
(12) 掌握GrADS 对contour 和shaded 图形类型的设置方法以及两种绘图类型的图形要素设置方法。
(13) 掌握GrADS 中基础绘图命令的设置方法。
(14) 掌握GrADS 中printim 生成文件(*.gmf 、*gif 、*.png )的方法。
二、 实习内容问题描述利用1948-2010年NCAR/NCEP 月平均气温和降水再分析资料(nc 格式文件),分析1月气温和降水气候特征。
要求利用Fortran 提取1948-2010年1月数据并进行计算,以“*.grd ”格式保存1948-2010年1月气温、降水气候场数据,用GrADS 生成1948-2010年1月气温、降水气候二维等值线和二维填色图两种格式叠加的图像,书写标题,并在高温、低温中心标记“H ”和“L ”。
grads处理多个ctl文件和nc文件解析
grads处理多个ctl文件和nc文件2011-10-10 21:03:59| 分类:grads学习| 标签:|举报|字号大中小订阅下载LOFTER我的照片书 |用grads处理多个相同格式的数据时若单个单个处理非常麻烦,当文件非常多的时候是单个处理是不实际的。
下面介绍一种方法;第一步,在这种情况下可以重新写一个ctl描述文件,其文件变量都和已知的ctl相同,若原来的n文件只是时间不同,那么新描述文件的时间维数是所有原文件的时间的和。
同样,若其他维数不同时也用同样的方法处理。
第二步,在第一行之后添加一行:options template 表示多个时间序列原始数据文件想用一个描述文件统一地描述。
这些原数据的原文件名由dset定义的形势命名文件名。
第三步,修改dset 的文件名。
原路径不变,把文件名用%表示。
其中:%y2 代表两位数年%y4 代表四位数年%m1 代表一位或者两位数的月%m2 代表两位数月(用0补齐1位数)%mc 3个字符月份的缩写%d1 1或2位天%d2 两位天%h1 1或者2位时%h2 2位时例如:原文件其中之一的文件名为gdas2006050812f00,且所有文件只有天和时的变化那么新描述文件的文件名为:gdas200605%d2%h2f00另外如果源文件里有index项的话,需要修改其idx的文件名,假设改成fnl.idx。
并用在dos下用gribmap函数生成一个新的idx文件。
gribmap -e -i fnl.ctl(加绝对路径)open fnl.ctl就可以打开所有文件。
*************************************************************************************************************** *******************若想要提取从1951-2006年56年nc文件中的某些数据,一个一个处理非常麻烦,这里介绍种较为简易的方法。
关于nc文件的读取
关于nc文件的读取2012-11-02 21:47:01| 分类:信号处理DSP | 标签:nc文件 panoply |举报|字号订阅最近在学习冰后回弹模型(http://www.atmosp.physics.utoronto.ca/~peltier/data.php),里面给出的数据为nc(netcdf)格式的,读取是个问题,在言深深的帮助下,成功读取,在这里将其总结出来,以备后用也希望可以方便有用之人。
有几种方式可以进行读取:1、Excel的一个插件,NetCDF4Excel可以完成相关的查看工作,需要的可以进行下载。
安装之后,我们可以得到,一个快捷方式,如图:打开之后,最上面标题栏点击加载项,我们可以看到下面的情形:然后打开nc文件,我们就可以进行查看操作:2、通过Grads进行相关的读取,主要是在言深深同学的帮助下完成,深深的感谢!第一步,安装相关的grads软件,这个这里不做介绍,相关可以参考气象论坛网站;第二步,打开grads软件,如图,回车之后的那个窗口千万不能关,那个窗口是图像显示的,关闭之后输入命令之后直接就退出了,刚开始我老犯这个低级错误(对菜鸟而言)。
第三步,可以通过两个命令简单的看到数据的头文件包含信息:①sdfopen d:\1.nc②q ctlinfo1.nc文件然后编写gs文件,如下:'reinit''sdfopen D:\1.nc''set gxout fwrite''set fwrite D:\1.dat''set x 1 360''set y 1 180''set z 1''set t 1 1''d dsea_250''disable fwrite'ps1:路径自己可以按需更改,不要有空格。
ps2:这里的dsea_250可不是随便取的,看上面的ctlinfo心里里最后一行,必须要一致!然后就可以生成一个1.dat的文件。
grads处理多个ctl文件和nc文件
grads处理多个ctl文件和nc文件2011-10-10 21:03:59| 分类:grads学习| 标签:|举报|字号大中小订阅下载LOFTER我的照片书 |用grads处理多个相同格式的数据时若单个单个处理非常麻烦,当文件非常多的时候是单个处理是不实际的。
下面介绍一种方法;第一步,在这种情况下可以重新写一个ctl描述文件,其文件变量都和已知的ctl相同,若原来的n文件只是时间不同,那么新描述文件的时间维数是所有原文件的时间的和。
同样,若其他维数不同时也用同样的方法处理。
第二步,在第一行之后添加一行:options template 表示多个时间序列原始数据文件想用一个描述文件统一地描述。
这些原数据的原文件名由dset定义的形势命名文件名。
第三步,修改dset 的文件名。
原路径不变,把文件名用%表示。
其中:%y2 代表两位数年%y4 代表四位数年%m1 代表一位或者两位数的月%m2 代表两位数月(用0补齐1位数)%mc 3个字符月份的缩写%d1 1或2位天%d2 两位天%h1 1或者2位时%h2 2位时例如:原文件其中之一的文件名为gdas2006050812f00,且所有文件只有天和时的变化那么新描述文件的文件名为:gdas200605%d2%h2f00另外如果源文件里有index项的话,需要修改其idx的文件名,假设改成fnl.idx。
并用在dos下用gribmap函数生成一个新的idx文件。
gribmap -e -i fnl.ctl(加绝对路径)open fnl.ctl就可以打开所有文件。
****************************************************************************************************** ****************************若想要提取从1951-2006年56年nc文件中的某些数据,一个一个处理非常麻烦,这里介绍种较为简易的方法。
GrADS,NCL一些经验
GrADS,NCL⼀些经验GrADS经纬度⽐例⽅法*取消经纬⽐例⾃动调整'set mproj scaled'设置绘图区域,使得⼀致'set vpage 1 7 1 7'GrADS画特定经线⽅法set clevs 23.5; d latset clevs 120;d lonGrADS 查看多个打开⽂件的ctlq ctlinfo 1q ctlinfo 2...2个不同的缺测值 fwrite更改默认缺测值GrADS⽤fwrite输出时,默认的缺测值是-9.9900000E+08,如果输⼊源的缺测值与之不⼀致,则会出现两种缺测值的情况。
解决的办法,可以在fwrite 声明后⾯设置默认缺测值设置。
⽐如'reinit''open J:/ec79-15/ansnablameansst79_15.ctl''set t 1 12''save=ave(absnablamsst,t+0,t=444,12)''modify save seasonal''set gxout fwrite''set undef 9.999E+20''set x 1 480''set y 1 89''set fwrite J:/ec79-15/seasonal.grd''d save''disable fwrite''reinit';(注:modify save seasonal命令意为将save变量修改成季节变量,⽅便与其它不同⼤⼩的变量计算(⽐如求季节距平),此外modify还有另外⼀个选项diurnal⽇变化)NCL使⽤⾃定义⾊标清风给的调⾊盘确实好⽤,⽣成的rgb格式也可以。
但是最近再次遇到了ncl⽆法正常读取colormap错误的问题,参考了⼀下官⽹。
GrADS
实习一数据文件的转换及数据描述文件的建立1.实习目的:(1)通过编写程序,熟悉数据GrADS的数据格式;(2)熟练编写将ASCII码数据转换为二进制格式的Fortran程序;(3)熟练建立相应的CTL文件。
2. 实习要求:(1)编写Fortran程序,将ASCII码数据资料文件转换成二进制文件:月平均风场(uv.grd)月平均高度场(hgt.grd)(2)写出二进制文件相应的数据描述文件:uv.ctl,hgt.ctl(3)利用GrADS基本操作命令显示该地区850hPa和200hPa uv风场,最后保存图nm形。
3 实习步骤:(1) 利用“写字板”程序打开*.dat数据文件,熟悉该数据资料;(2 )按要求编写Fortran程序,将所给的ASCII码数据资料文件转换成二进制无格式直接存取文件,结果保存为**.grd;(3) 通过“写字板”或“记事本”程序编写相应的数据描述文件,保存为**.ctl;(4) 画出2002年1月850hPa风场图,与图1比较验证数据正确性;4.实习报告1)所用资料“data”文件夹下有ASCII码数据资料文件:月平均风场:u200.dat、u850.dat、v200.dat、v850.dat月平均高度场:hgt500.dat经纬度范围:60-150°E,0-40°N时间范围:2002.1-2005.12 共48个月水平范围:37×17个网格点,分辨率为2.5°×2.5°2)所编写的Fortran程序parameter(nx=37,ny=17,nt=48)dimension u200(nx,ny,nt),v200(nx,ny,nt),h500(nx,ny,nt), u850(nx,ny,nt),v850(nx,ny,nt)open(1,file='e:\dwj\u200.dat')open(2,file='e:\dwj\v200.dat')open(3,file='e:\dwj\u850.dat')open(4,file='e:\dwj\v850.dat')open(5,file='e:\dwj\hgt500.dat')do it=1,ntread(1,*)((u200(i,j,it),i=1,nx),j=1,ny)read(2,*)((v200(i,j,it),i=1,nx),j=1,ny)read(3,*)((u850(i,j,it),i=1,nx),j=1,ny)read(4,*)((v850(i,j,it),i=1,nx),j=1,ny)read(5,*)((h500(i,j,it),i=1,nx),j=1,ny)enddoclose(1);close(2);close(3);close(4);close(5)open(12,file='e:\dwj\uv0.grd',form='binary')do it=1,ntwrite(12) ((u850(i,j,it),i=1,nx),j=1,ny)write(12) ((u200(i,j,it),i=1,nx),j=1,ny)write(12) ((v850(i,j,it),i=1,nx),j=1,ny)write(12) ((v200(i,j,it),i=1,nx),j=1,ny)enddoclose(12)open(12,file='e:\dwj\hgt0.grd',form='binary')do it=1,ntwrite(12) ((h500(i,j,it),i=1,nx),j=1,ny)enddoclose(12)end3)所编写的数据描述文件'reinit''open F:\1\uv.ctl''set lon 60 150''set lat 0 40''set t 1''d u;v''printim F:\1\shuang.jpg';4)所绘制的图形实习二基本命令的上机使用1. 实习目的:熟悉GrADS的工作环境及使用流程,掌握基本操作命令,练习编写和使用gs文件。
GrADS
参考资料
1、GrADS Tutorial 2、GrADS Reference Card 3、LASG: GrADS Mannual 4、LASG: GrADS 实用绘图讲义,funny@动 力论坛 5、动力论坛GrADS中文讨论区
常见软件
运行GrADS
打开数据: ga->open *.ctl ga->sdfopen *.nc ga->xdfopen test.ddf 查询信息:query ga->query ctlinfo ga->q dims ga->q file 关闭数据文件 ga-> close 3 ga-> close 2 Ga-> close 1 设置维数环境 ga-> set x 1 73 ↵ ga-> set lat -20 60 ↵ ga-> set lev 850 ↵ ga-> set time 00z01Apr2007 ↵ 26 LASG动力论坛版 三. 运行GrADS绘图软件包 • 设置维数环境 ga-> set x 1 73 ↵ ga-> set lat -20 60 ↵ ga-> set lev 850 ↵ ga-> set time 00z01Apr2007 ↵
set annot #color(1) thick(6) set frame on | off | circle set xyrev on set zlog { on | off | swap | undefine } set coslat {on | off } set tlsupp { year | month } set grid {on| off| horizontal| vertical } linestyle #color set gridln {auto | off | #color } set xlint int set ylint set xaxis starrt end int set yaxis set vrange vlo vhi set vrange2 set xlpos offset(0) { b | t } set ylpos…{l|r} set xlopts #color(1) thick(4) size(0.12) set clopts #col(-1) thick(-1) size(0.09) set ylopts set ylevs set xlevs x1 x2 x3… set ylabs set xlabs b1|b2|b3|… set ylab set xflip { on | off } set yflip set xlab { on | off | aut draw ylab draw title title_string
grads处理多个ctl文件和nc文件
grads处理多个ctl文件和nc文件2011-10-10 21:03:59| 分类:grads学习| 标签:|举报|字号大中小订阅下载LOFTER我的照片书 |用grads处理多个相同格式的数据时若单个单个处理非常麻烦,当文件非常多的时候是单个处理是不实际的。
下面介绍一种方法;第一步,在这种情况下可以重新写一个ctl描述文件,其文件变量都和已知的ctl相同,若原来的n 文件只是时间不同,那么新描述文件的时间维数是所有原文件的时间的和。
同样,若其他维数不同时也用同样的方法处理。
第二步,在第一行之后添加一行:options template 表示多个时间序列原始数据文件想用一个描述文件统一地描述。
这些原数据的原文件名由dset定义的形势命名文件名。
第三步,修改dset 的文件名。
原路径不变,把文件名用%表示。
其中:%y2 代表两位数年%y4 代表四位数年%m1 代表一位或者两位数的月%m2 代表两位数月(用0补齐1位数)%mc 3个字符月份的缩写%d1 1或2位天%d2 两位天%h1 1或者2位时%h2 2位时例如:原文件其中之一的文件名为gdas2006050812f00,且所有文件只有天和时的变化那么新描述文件的文件名为:gdas200605%d2%h2f00另外如果源文件里有index项的话,需要修改其idx的文件名,假设改成fnl.idx。
并用在dos下用gribmap函数生成一个新的idx文件。
gribmap -e -i fnl.ctl(加绝对路径)open fnl.ctl就可以打开所有文件。
*************************************************************************************************************** *******************若想要提取从1951-2006年56年nc文件中的某些数据,一个一个处理非常麻烦,这里介绍种较为简易的方法。
grads读取nc格式文件
grads读取nc格式⽂件
⼀、通常:
1、grads读取grd和ctl:open ****.ctl
2、执⾏gs脚本:run ****.gs
d命令,display展⽰数据,常⽤来显⽰变量,⽐如rh,rain等
q命令,显⽰数据内容,常⽤来显⽰数据,⽐如时间dim,ctlinfo等
gs脚本中,输出打印变量的值,⽤say命令
⼆、grads也可以读取nc⽂件
1 打开数据
命令:sdfopen +数据存放路径
2 查看nc数据的ctl
命令:q ctlinfo (注意查看缺省值,变量名等。
不同的nc数据缺省值通常不同,这点容易忽略)
3 ⽤fwrite命令提取数据,得到grd⽂件
'set gxout fwrite'
'set fwrite d:\*.grd'
.
'disable fwrite'
4 ⽤fortran读取⼆进制⽂件
读取时要注意,grads写⼊的数据循环从内到外依次为x 、y、z、变量、t,如果你需要确定某个数据的位置,那么,x是从西到东,y是从南到北,z是从地⾯到⾼空,t是从前到后的顺序。
(具体详见⽓象家园‘ grads提取nc数据及进⼀步编程常见问题及解决⽅法’)
三、将nc⽂件转换成grd和ctl。
关于nc文件的读取
关于nc文件的读取2012-11-02 21:47:01| 分类:信号处理DSP | 标签:nc文件 panoply |举报|字号订阅最近在学习冰后回弹模型(http://www.atmosp.physics.utoronto.ca/~peltier/data.php),里面给出的数据为nc(netcdf)格式的,读取是个问题,在言深深的帮助下,成功读取,在这里将其总结出来,以备后用也希望可以方便有用之人。
有几种方式可以进行读取:1、Excel的一个插件,NetCDF4Excel可以完成相关的查看工作,需要的可以进行下载。
安装之后,我们可以得到,一个快捷方式,如图:打开之后,最上面标题栏点击加载项,我们可以看到下面的情形:然后打开nc文件,我们就可以进行查看操作:2、通过Grads进行相关的读取,主要是在言深深同学的帮助下完成,深深的感谢!第一步,安装相关的grads软件,这个这里不做介绍,相关可以参考气象论坛网站;第二步,打开grads软件,如图,回车之后的那个窗口千万不能关,那个窗口是图像显示的,关闭之后输入命令之后直接就退出了,刚开始我老犯这个低级错误(对菜鸟而言)。
第三步,可以通过两个命令简单的看到数据的头文件包含信息:①sdfopen d:\1.nc②q ctlinfo1.nc文件然后编写gs文件,如下:'reinit''sdfopen D:\1.nc''set gxout fwrite''set fwrite D:\1.dat''set x 1 360''set y 1 180''set z 1''set t 1 1''d dsea_250''disable fwrite'ps1:路径自己可以按需更改,不要有空格。
ps2:这里的dsea_250可不是随便取的,看上面的ctlinfo心里里最后一行,必须要一致!然后就可以生成一个1.dat的文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
下面给出使用Grads读取nc格式文件的一个范例脚本文件(.gs文件):
以位势高度场为例
‘reinit’
‘sdfopen d:\xxxx\hgt.mon.mean.nc ‘ (打开需要的nc文件,注意路径)
‘set gxout fwrite’
‘set fwrite d:\xxxxxx\hgt.bin’ (指定要输出的二进制文件名和路径)
t=a (a为起始时次)
while(t<=b)(开始循环,b为结束时次)
‘set t’ t (设定时次)
‘set lev 1000’ (设定要输出的层次)
‘d hgt ‘ (输出)
‘set lev 925’ (设定要输出的层次)
‘d hgt ‘ (输出)
‘set lev 850’ (设定要输出的层次)
‘set lon 0 357.5’
‘set lat -90 90 ‘ (设定写出区域范围,这是全球范围,第一句是必需的,如果是用默认,则会在x方向输出为145个点,要注意)
‘set lev 1000’ (设定要输出的层次)
‘set t 1 640’ (设定时间范围)
‘d hgt’ (输出)
‘reinit’
这样就生成了需要的二进制文件,其对应的ctl文件需要另外给出。
以上是输出单层的二进制文件,把多层的数据放在同一个二进制文件中,就要使用循环,根据grads规定的数据存放次序(依次为经度、纬度、高度、变量、时次),如下:
‘reinit’
‘sdfopen d:\xxxx\hgt.mon.mean.nc’ (打开需要的nc文件,注意路径)
‘set gxout fwrite’
‘set fwrite d:\xxxxxx\hgt.bin’ (指定要输出的二进制文件名和路径)
‘set lon 0 357.5’
‘set lat -90 90’ (设定写出区域范围,这是全球范围,第一句是必需的,如果用默认set lon 0 360,则会在x方向输出为145个点,要注意)
‘d hgt ‘ (输出)
‘set lev 700’ (设定要输出的层次)
‘d hgt ‘ (输出)
‘set lev 600’ (设定要输出的层次)
‘d hgt ‘ (输出)
‘set lev 500’ (设定要输出的层次)
‘d hgt ‘ (输出)
(可以添加任意的层次)
(由于高度分布不连续而且数量有限,所以用这种方法)
t=t 1
endwhile (结束循环)
‘