全文放在这里方便查找关于netCDF格式数据http://bbs.06climate.com/forum.php?mod=viewthread&tid=1267#lastpost
netCDF数据格式在气象中有广泛的应用,这种格式有一定的复杂性。作为数据的使用者可以不用对数据格式了解得很详细,不过大致的了解还是有必要的。
netCDF是自描述的二进制数据格式,也就是说数据本身包含了相关的数据信息。经典的netCDF格式是由维(dimensions)、全局属性
(global
attribute)和变量(variations)组成的,netCDF4.0以后开始向HDF格式靠拢。下面是一个简单的netCDF数据的自描述信
息。格点气象数据通常是4维,包括空间3维和时间维(x, y, z,
t),如果把变量也算作一维也可以认为是5维。netCDF可以有一个无限长度的维(unlimited dimension),通常是时间维。
File Name: E:\Temp\nc\output.nc
Dimensions: 3
longitude = 240;
latitude = 121;
time = 12;
Global Attributes: 2
: Conventions = "CF-1.0";
: history = "2011-07-22 15:15:21 GMT by mars2netcdf-0.92";
Variations: 4
NC_FLOAT longitude(longitude);
longitude: units = "degrees_east";
longitude: long_name = "longitude";
NC_FLOAT latitude(latitude);
latitude: units = "degrees_north";
latitude: long_name = "latitude";
NC_INT time(time);
time: units = "hours since 1900-01-01 00:00:0.0";
time: long_name = "time";
time: avg_period = "0000-01-00 00:00:00";
NC_SHORT q(time,latitude,longitude);
q: scale_factor = 3.07609393740706E-07;
q: add_offset = 0.0101016578590996;
q: _FillValue = -32767;
q: missing_value = -32767;
q: units = "kg kg**-1";
q: long_name = "Specific humidity";
Unlimited dimension: 2
netCDF格式非常灵活,用程序自动判断维和变量等信息的前提条件是数据必须遵循某种约定(convensions)。气象上最常用的约定是CF(COARDS可以看作CF约定的子集),对于维、变量、属性有详细的规定,这样以来软件才能通过约定对数据进行正确的判读。
GrADS中netCDF数据可以通过三种方式打开:(1)sdfopen,只限于符合COARDS约定(
http://ferret.wrc.noaa.gov/noaa_coop/coop_cdf_profile.html)
的nc数据。GrADS不支持CF约定(COARDS约定过于简单,无法描述复杂的数据),因此sdfopen能打开的数据十分有限。
(2)xdfopen,对于非COARDS约定的nc数据可以尝试xdfopen来打开,需要一个简单的control文件,具体可以看官方说明
http://www.iges.org/grads/gadoc/gradcomdxdfopen.html。(3)open,如同打开GrADS二进制文件,需要一个完整的control文件,详见
http://www.iges.org/grads/gadoc/SDFdescriptorfile.html。第2和3种打开nc文件的方法都需要control文件,是为了软件能够正确读取维和变量等信息。
MeteoInfo打开nc文件的方式类似sdfopen,无需control文件,不过MeteoInfo支持CF约定(包含了COARDS约定)、
WRF Out约定(WRF模式输出)和IOAPI约定(用于CMAQ模式)。因此可以在不需要control文件的情况下打开更多的nc数据文件。