爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: MeteoInfo

MeteoInfoLab脚本示例:获取气团轨迹每个节点的气象数据

[复制链接]

新浪微博达人勋

发表于 2016-7-30 15:40:16 | 显示全部楼层
MeteoInfo 发表于 2016-7-30 13:32
是不是你的轨迹图层没有StartDate这个字段?

轨迹图层?不清楚是哪个文件呀!我是把您的程序拿过来,替换了一下数据而已!就这个样子了!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-7-30 15:50:36 | 显示全部楼层
良辰 发表于 2016-7-30 15:40
轨迹图层?不清楚是哪个文件呀!我是把您的程序拿过来,替换了一下数据而已!就这个样子了!

脚本运行后,你在Console中输入 trajLayer 然后回车看看有什么信息。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-7-30 15:55:45 | 显示全部楼层
MeteoInfo 发表于 2016-7-30 15:50
脚本运行后,你在Console中输入 trajLayer 然后回车看看有什么信息。

Console中输入trajLayer 后
QQ截图20160730155753.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-7-30 16:09:28 | 显示全部楼层
良辰 发表于 2016-7-30 15:55
Console中输入trajLayer 后

StartDate改为Date,StartHour改为Hour。一楼脚本也做了更新。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-7-30 16:14:54 | 显示全部楼层
MeteoInfo 发表于 2016-7-30 16:09
StartDate改为Date,StartHour改为Hour。一楼脚本也做了更新。

非常感谢王老师!辛苦了~~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-7-30 17:46:15 | 显示全部楼层
MeteoInfo 发表于 2016-7-30 16:09
StartDate改为Date,StartHour改为Hour。一楼脚本也做了更新。

王老师脚本通了,想再咨询一下我可以在这里直接进行一些物理量的计算吗?比如
uvar = 'UWND'
vvar = 'VWND'
VORT = hcurl(uvar, vvar)
但是下边这句我不太懂什么意思
vort = meteof.tostation(VORT, lon, lat, pres, t)
请老师指点!
      
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-7-31 07:22:13 | 显示全部楼层
良辰 发表于 2016-7-30 17:46
王老师脚本通了,想再咨询一下我可以在这里直接进行一些物理量的计算吗?比如
uvar = 'UWND'
vvar = 'V ...

参考此贴:MeteoInfoLab脚本汇总贴
http://bbs.06climate.com/forum.p ... 151&fromuid=106
(出处: 气象家园)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-7-31 22:00:35 | 显示全部楼层
MeteoInfo 发表于 2016-7-31 07:22
参考此贴:MeteoInfoLab脚本汇总贴
http://bbs.06climate.com/forum.php?mod=viewthread&tid=36151&from ...

#-----------------------------------------------------
# Author: Yaqiang Wang
# Date: 2015-9-30
# Purpose: Get meteorological data along trajectory
# Note: Sample
#-----------------------------------------------------
# Set working directory
trajDir = 'D:/Temp/HYSPLIT'
meteoDir = 'D:/Temp/arl'
# Open trjactory data file
print 'Open trajectory data file ...'
trajfn = os.path.join(trajDir, 'traj_20150331')
print 'Trajectory file: ' + trajfn
trajf = addfile_hytraj(trajfn)
# Create trajectory layer
trajLayer = trajf.trajlayer()
# Open meteorological data file
print 'Open meteorological data file...'
meteofn = os.path.join(meteoDir, 'gdas1.mar15.w5')
print 'Meteorological file: ' + meteofn
meteof = addfile(meteofn)
# Get meteorological data along trajectory
print 'Get meteorological data along trajectory...'
outfn = os.path.join(trajDir, 'traj.txt')
outf = open(outfn, 'w')
outf.write('Lon,Lat,Time,Heigh,pres,PBLH,UWND,VWND,WWND,HGTS,TEMP,RELH,CAPE\n')
pblvar = 'PBLH'
uvar = 'UWND'
vvar = 'VWND'
wvar = 'WWND'
hvar = 'HGTS'
tvar = 'TEMP'
rhvar = 'RELH'
capevar = 'CAPE'
#VORT = hcurl(uvar, vvar)
#divg = hdivg(uvar, vvar)
idx = 0
for tline in trajLayer.shapes():
    t = trajLayer.cellvalue('Date', idx)
    h = trajLayer.cellvalue('Hour', idx)   
    t.replace(hour=h)
    for ps in tline.getPoints():
        lon = ps.X
        lat = ps.Y
        z = ps.M
        pres = ps.Z
        pbl = meteof.tostation(pblvar, lon, lat, None, t)
        uwnd = meteof.tostation(uvar, lon, lat, pres, t)
        vwnd = meteof.tostation(vvar, lon, lat, pres, t)
        wwnd = meteof.tostation(wvar, lon, lat, pres, t)
        hgt = meteof.tostation(hvar, lon, lat, pres, t)
        temp = meteof.tostation(tvar, lon, lat, pres, t)
        rh = meteof.tostation(rhvar, lon, lat, pres, t)
        cape = meteof.tostation(capevar, lon, lat, None, t)
#        vort = meteof.tostation(vortvar, lon, lat, pres, t)
        print 'lon: %.3f; lat: %.3f; time: %s; height: %.1f; pres:%.1f; PBLH: %.1f; UWND: %.1f;VWND: %.1f;WWND: %.1f;HGTS: %.1f;TEMP: %.1f;RELH: %.1f;CAPE: %.1f' % (lon, lat, t.strftime('%Y%m%d_%H:%M'), z, pres, pbl, uwnd, vwnd, wwnd, hgt, temp, rh, cape)
        line = '%.3f,%.3f,%s,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f' % (lon,lat,t.strftime('%Y%m%d_%H:%M'),z,pres,pbl,uwnd,vwnd,wwnd,hgt,temp,rh,cape)
        outf.write(line + '\n')
        t = t + datetime.timedelta(hours=-1)
    idx += 1
outf.close()
print 'Finish...'
王老师,我输出了大部分资料。发现如下几个问题:
1.HGTS与height差异较大,而且有负值的存在。
2.温度的输出结果,与HYSPLIT自身输出结果不一致。
3.相对湿度存在负值的。
4.其他资料正确与否无法验证。

结果对比

结果对比

traj_20150331_all

8.69 KB, 下载次数: 1, 下载积分: 金钱 -5

hysplit模型输出结果

traj.txt

4.12 KB, 下载次数: 0, 下载积分: 金钱 -5

王老师脚本输出结果

traj_20150331

4.64 KB, 下载次数: 1, 下载积分: 金钱 -5

轨迹数据资料

traj.py

2.45 KB, 下载次数: 3, 下载积分: 金钱 -5

所用脚本

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

新浪微博达人勋

 楼主| 发表于 2016-8-1 11:30:39 | 显示全部楼层
良辰 发表于 2016-7-31 22:00
#-----------------------------------------------------
# Author: Yaqiang Wang
# Date: 2015-9-30 ...

这个轨迹节点数据文件有很多气象要素,一个时次分了两行,之前只考虑了一个时次一行数据的情况,需要更新MeteoInfo库中读取轨迹数据的程序来处理这种情况。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-8-1 12:00:55 | 显示全部楼层
MeteoInfo 发表于 2016-8-1 11:30
这个轨迹节点数据文件有很多气象要素,一个时次分了两行,之前只考虑了一个时次一行数据的情况,需要更新 ...

那个多要素的轨迹节点数据文件是hysplit模型算出来的(traj_20150331_all)在您的脚本中没有使用 !为了和您的脚本计算结果进行对比,traj.txt是您的脚本运行结果!
所用的轨迹节点数据文件为traj_20150331!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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