爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4595|回复: 2

micaps4转netcdf格式请教

[复制链接]

新浪微博达人勋

发表于 2020-12-16 10:57:45 | 显示全部楼层 |阅读模式

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

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

x
大家好我是一个giser,对气象数据不了解。 我现在拿到了一份说是micaps4格式的降雨数据,我下载下来,数据格式是.dat。完整文件名类似:202012091000_360_1km.dat,打开后这样

                               
登录/注册后可看大图
,我想转成netcdf。在.net平台中 怎么操作,或者你上面给出的脚本我可以用c#直接调用吗,还是这个脚本只能在meteoinfo中运行
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-12-16 14:39:45 | 显示全部楼层
格式转换难在对“格式”的理解,“.dat”不是格式,而是扩展名,本质上是ASCII码构成的第4类数据。
格式转换其实就两步:1、读取A格式,暂存到内存中。2、写入B格式。语言只是工具而已,而已。。。
1、关于第4类数据的格式,文件头信息要读懂,其次主体部分就是经纬度存储
     文件头:diamond  4  数据说明(字符串)  年  月  日  时次  时效  层次(均为整数)经度格距  纬度格距  起始经度  终止经度  起始纬度  终止纬度(均为浮点数) 纬向格点数  经向格点数(均为整数)  等值线间隔  等值线起始值  终止值  平滑系数 加粗线值(均为浮点数)
     数据按先纬向后经向放(直角坐标网格时为先X方向后Y方向),均为浮点数。
     有了起始、结束经纬度和分辨率,就知道数据数组的大小了,就可以读取所有数据成一个数组arr存到内存中。
     C#可以用File.Readlines()方法读取所有内容,再用空白符分隔split(),之后赋值给一个数组double[] balance
2、对于通用格式(比如netcdf),各种语言都能写入,度娘搜“C# netcdf  读写”就会出现一大堆。有些语言有封装好的包(比如Python的netcdf或者xarray都能一行输出netcdf格式文件)。把arr作为变量传递到搜到的方法中去就完成了。



密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-12-17 08:30:57 | 显示全部楼层
edwardli 发表于 2020-12-16 14:39
格式转换难在对“格式”的理解,“.dat”不是格式,而是扩展名,本质上是ASCII码构成的第4类数据。
格式转 ...

特地上来给大佬手动点赞!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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