爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4183|回复: 8

请教王老师:MeteoInfo打开NCEP在分析数据Monthly Long Term Mean的nc文件时候出错

[复制链接]

新浪微博达人勋

发表于 2013-7-15 23:22:15 | 显示全部楼层 |阅读模式

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

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

x
下载的数据文件和出错的截图请看附件,希望老师能解答一下这个问题。
1.jpg

X219.219.124.215.195.8.41.50.nc

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

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

新浪微博达人勋

0
早起挑战累计收入
发表于 2013-7-16 08:35:18 | 显示全部楼层
可能是暂时还没支持,等王老师的消息吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-7-16 09:20:19 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-7-16 09:37:01 | 显示全部楼层
帮你顶一顶,就能早点看到了,哈哈
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-7-16 10:26:26 | 显示全部楼层
看到了,我得调试一下
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-7-16 11:07:37 | 显示全部楼层
MeteoInfo 发表于 2013-7-16 10:26
看到了,我得调试一下

对该问题进行了修正,重新下载、安装MeteoInfo 1.0.9即可。

这个问题是数据和C#中的DateTime类ToOADate方法共同造成的。MeteoInfo里会将数据中的时间转为double数据类型来存储,用的是DateTime类的ToOADate方法(OLE自动化时间),这个方法有最小时间的限制,是0100 年 1 月 1 日午夜,如果时间早于此则会出错。这个NC数据里解出来的日期的年份是0001,当然是早于最小时间的,所以会出错。我觉得0001年应该不是数据的真实年份,这个应该是多年月平均数据,所以用了一个虚假的年。

解决方法我想到两个。一种是当年小于100时人为加个2000年。另一种是舍弃ToOADate方法,用DateTime.Tick(long类型)来将DateTime转为double。第二种方法需要修改类库里的很多代码,所以暂时用了第一种方法,以后有需要可以考虑用第二种方法来解决。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-7-16 11:22:02 | 显示全部楼层
MeteoInfo 发表于 2013-7-16 11:07
对该问题进行了修正,重新下载、安装MeteoInfo 1.0.9即可。

这个问题是数据和C#中的DateTime类ToOADat ...

考虑了一下,觉得还是用DateTime.Tick来解决更好些。数据既然用0001年就是想说明是多年数据,年只是个虚假的值。还需要修改些代码,等弄好了再更新吧。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-7-16 14:02:24 | 显示全部楼层
MeteoInfo 发表于 2013-7-16 11:22
考虑了一下,觉得还是用DateTime.Tick来解决更好些。数据既然用0001年就是想说明是多年数据,年只是个虚假 ...

已经改好了,重新下载、安装MeteoInfo 1.0.9即可。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-7-16 16:36:24 | 显示全部楼层
MeteoInfo 发表于 2013-7-16 14:02
已经改好了,重新下载、安装MeteoInfo 1.0.9即可。

谢谢王老师,王老师辛苦了,现在好使了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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