爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 17437|回复: 7

[脚本编辑] nc4格式数据处理求助

[复制链接]

新浪微博达人勋

发表于 2021-2-7 12:19:29 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
在论坛里拜读了诸位大神的帖子,然小生愚钝,还是无法弄清楚nc4格式的数据该如何处理。跪求大神指导!
我的想法如下:首先在grads官网查了xdfopen命令,然后写出相应描述文件。但是失败了!!!
附件里是数据文件和最新的ncdump.exe。

下面是利用ncdump命令获取的数据文件头文件信息:
  1. netcdf \3B42_Daily.19980101.7 {
  2. dimensions:
  3.     lon = 1440 ;
  4.     lat = 400 ;
  5. variables:
  6.     float precipitation(lon, lat) ;
  7.         string precipitation:units = "mm" ;
  8.         string precipitation:long_name = "Daily accumulated precipitation (combined microwave-IR) estimate with gauge calibration over land" ;
  9.         string precipitation:coordinates = "lat lon" ;
  10.         precipitation:_FillValue = -9999.9f ;
  11.     byte precipitation_cnt(lon, lat) ;
  12.         string precipitation_cnt:units = "count" ;
  13.         string precipitation_cnt:long_name = "Count of valid 3-hr (combined microwave-IR) precipitation retrievals for the day" ;
  14.         string precipitation_cnt:coordinates = "lat lon" ;
  15.     float IRprecipitation(lon, lat) ;
  16.         string IRprecipitation:units = "mm" ;
  17.         string IRprecipitation:long_name = "Daily accumulated precipitation (IR) with HQ calibration" ;
  18.         string IRprecipitation:coordinates = "lat lon" ;
  19.         IRprecipitation:_FillValue = -9999.9f ;
  20.     byte IRprecipitation_cnt(lon, lat) ;
  21.         string IRprecipitation_cnt:units = "count" ;
  22.         string IRprecipitation_cnt:long_name = "Count of valid 3-hr IR precipitation retrievals for the day" ;
  23.         string IRprecipitation_cnt:coordinates = "lat lon" ;
  24.     float HQprecipitation(lon, lat) ;
  25.         string HQprecipitation:units = "mm" ;
  26.         string HQprecipitation:long_name = "Daily accumulated High Quality (microwave) precipitation" ;
  27.         string HQprecipitation:coordinates = "lat lon" ;
  28.         HQprecipitation:_FillValue = -9999.9f ;
  29.     byte HQprecipitation_cnt(lon, lat) ;
  30.         string HQprecipitation_cnt:units = "count" ;
  31.         string HQprecipitation_cnt:long_name = "Count of valid 3-hr HQ (microwave) precipitation retrievals for the day" ;
  32.         string HQprecipitation_cnt:coordinates = "lat lon" ;
  33.     float randomError(lon, lat) ;
  34.         string randomError:units = "mm" ;
  35.         string randomError:long_name = "Daily total error of combined microwave-IR precipitation estimate" ;
  36.         randomError:_FillValue = -9999.9f ;
  37.     byte randomError_cnt(lon, lat) ;
  38.         string randomError_cnt:units = "count" ;
  39.         string randomError_cnt:long_name = "Count of valid 3-hr error retrievals for the day" ;
  40.         string randomError_cnt:coordinates = "lat lon" ;
  41.     float lon(lon) ;
  42.         string lon:units = "degrees_east" ;
  43.         string lon:long_name = "Longitude" ;
  44.     float lat(lat) ;
  45.         string lat:units = "degrees_north" ;
  46.         string lat:long_name = "Latitude" ;

  47. // global attributes:
  48.         :BeginDate = "1998-01-01" ;
  49.         :BeginTime = "01:30:00.000Z" ;
  50.         :EndDate = "1998-01-02" ;
  51.         :EndTime = "01:29:59.999Z" ;
  52.         :FileHeader = "StartGranuleDateTime=1998-01-01T01:30:00.000Z;\nStopGranuleDateTime=1998-01-02T01:29:59.999Z" ;
  53.         :InputPointer = "3B42.19980101.03.7.HDF;3B42.19980101.06.7.HDF;3B42.19980101.09.7.HDF;3B42.19980101.12.7.HDF;3B42.19980101.15.7.HDF;3B42.19980101.18.7.HDF;3B42.19980101.21.7.HDF;3B42.19980102.00.7.HDF" ;
  54.         :title = "TRMM (TMPA) L3 Daily 0.25 x 0.25 degree (TRMM_3B42_Daily)" ;
  55.         :ProductionTime = "2016-07-20T13:48:20.000Z" ;
  56. }
复制代码




根据上述信息,我写出了描述文件如下:
DSET ^3B42_Daily.19981213.7.nc4
TITLE TRMM (TMPA) L3 Daily 0.25 x 0.25 degree (TRMM_3B42_Daily)
UNDEF -9999.9
XDEF lon 1440 LINEAR -179.875 0.25
YDEF lat  400 LINEAR -59.875 0.25
TDEF  1 LINEAR 0Z13DEC1998 6hr
VARS 1
precipition=>pcp 1 99 rain
ENDVARS



然后xdfopen 命令打开描述文件,出现了错误如下,请问该如何处理呢?

捕获.PNG

ncdump.exe

70.5 KB, 下载次数: 9, 下载积分: 金钱 -5

3B42_Daily.19980101.7.nc4

2.39 MB, 下载次数: 5, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-2-7 16:09:20 | 显示全部楼层
本帖最后由 苏拉苏拉 于 2021-2-7 16:55 编辑

tdef后面是不是少time
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-2-7 20:28:50 | 显示全部楼层
苏拉苏拉 发表于 2021-2-7 16:09
tdef后面是不是少time

加上了time,虽然没有上面的问题了,但出现了一堆not supported。最后一行是sdf descriptor file test. ctl was not successfully opened&parsed
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-2-8 01:16:32 | 显示全部楼层
Linux 发表于 2021-2-7 20:28
加上了time,虽然没有上面的问题了,但出现了一堆not supported。最后一行是sdf descriptor file test. ct ...

endvars 后面或另起一行加上;(英文分号)试试
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-2-9 09:11:47 | 显示全部楼层
苏拉苏拉 发表于 2021-2-8 01:16
endvars 后面或另起一行加上;(英文分号)试试

现在搞定了,能打开。
但是因为文件的dimensions只有两个: lon = 1440 ; lat = 400 。这样是不是就不能定义tdef了,也就不能进行批处理了?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-2-9 13:29:40 | 显示全部楼层
Linux 发表于 2021-2-9 09:11
现在搞定了,能打开。
但是因为文件的dimensions只有两个: lon = 1440 ; lat = 400 。这样是不是就不能 ...

时间维度也不能算没有吧,只是只有1个,tdef在ctl里还是要写的。批处理的话也是可以的,文件名有规律就行。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-2-10 06:47:03 | 显示全部楼层
苏拉苏拉 发表于 2021-2-9 13:29
时间维度也不能算没有吧,只是只有1个,tdef在ctl里还是要写的。批处理的话也是可以的,文件名有规律就行 ...

我要是加上时间维度,ctl就打不开了。有没有time都是,各种打不开。请问您是怎么操作的?能针对附件数据给个描述文件吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-2-10 13:49:25 | 显示全部楼层
Linux 发表于 2021-2-10 06:47
我要是加上时间维度,ctl就打不开了。有没有time都是,各种打不开。请问您是怎么操作的?能针对附件数据 ...

我没弄过,只是根据你给的错误提示猜问题出在哪。TDEF  time 1 LINEAR 13DEC1998 1dy 这样试试呢。你多试试啊,根据报错。加油。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表