- 积分
- 55946
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-6-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 MeteoInfo 于 2020-4-10 14:43 编辑
MeteoInfoLab软件中自带一个toolbox(也就是插件),在Apps菜单中可以打开相关界面。模式检验的介绍可以看此网页:http://www.cawcr.gov.au/projects/verification/。这里简单说一下脚本的使用。在MeteoInfoLab启动时会加载toolbox目录中的toolbox.py模块,主要是加载了一个verify模块用于模式检验。toolbox -> verification -> sample目录中有一个简单的示例数据ex1.csv,包含了观测和预报数据。
- datadir = r'D:\MyProgram\Distribution\Java\MeteoInfo\MeteoInfo\toolbox\imep\sample'
- fn = os.path.join(datadir, 'ex1.csv')
- table = readtable(fn, delimiter=',', format='%3i%5f%i')
- obs = table['Obs']
- fcst = table['GFSMean']
- scatter(obs, fcst, fill=False)
- xlabel('Observation')
- ylabel('Forecast')
- ylim(-4, 18)
- x = [-4, 18]
- y = [-4, 18]
- plot(x, y)
- title('Most Basic')
进行模式检验:
1、读取观测和模式预报数据,形成相应的数组obs和fcst。
2、设定模式检验方法(verify模块的verifymethod()方法),比如连续数据检验(method='continuous')或有无检验(method='dichotomous'),有无检验方法还需要设定数值范围(本例中>8)。
3、获取检验结果表,使用verify模块的verifytable()方法,参数分别是观测数据、预报数据和上一步设定的检验方法。
4、输出检验结果,在Console中打印,或者输出到文件中。
示例脚本:
- import imep
- datadir = 'D:/MyProgram/java/MeteoInfoDev/toolbox/IMEP/imep/sample'
- fn = os.path.join(datadir, 'ex1.csv')
- table = DataFrame.read_table(fn, delimiter=',', format='%3i%5f%i')
- obs = table['Obs'].values
- fcst = table['GFSMean'].values
- print 'Continuous verification...'
- cmethod = imep.verifymethod(method='continuous')
- ctable = imep.verifytable(obs, fcst, cmethod)
- print ctable
- print 'Dichotomous verification...'
- dr = imep.datarange(min=8) # >= 8
- dmethod = imep.verifymethod(method='dichotomous', drange=dr)
- dtable = imep.verifytable(obs, fcst, dmethod)
- print dtable
在Console中输出的结果:
>>> run script...
Continuous verification...
Score Value
MAE 2.20
R 0.69
MeanErr 0.58
Bias 1.09
RMSE 2.76
MSE 7.62
Dichotomous verification...
Hit: 58
Miss: 24
False alarm: 30
Correct negative: 123
---------------------------
Score Value
Accuracy 0.77
HK 0.51
OR 9.91
POD 0.71
ETS 0.34
Bias 1.07
FAR 0.34
ORSS 0.82
POFD 0.20
HSS 0.50
SR 0.66
TS 0.52
|
|