爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5158|回复: 10

用meteoinfo制作gif时 图像出现叠加而不是更新

[复制链接]

新浪微博达人勋

发表于 2016-9-6 20:19:50 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 cny 于 2016-9-7 10:02 编辑

源码是参考官网帖子,也添加了cll(),但还是错误
求教
V_vis_20150201--loop-.gif







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

新浪微博达人勋

 楼主| 发表于 2016-9-6 21:38:40 | 显示全部楼层
{:lxm_27:} 求教(~ ̄▽ ̄)~*
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-9-6 22:46:13 | 显示全部楼层
参考此脚本:
  1. #Set data folders
  2. obsdir = 'U:/data/micaps'
  3. mapdir = 'T:/verification/map'
  4. outdir = 'C:/Temp/test'

  5. #Set time
  6. st = datetime.datetime(2015,11,1,0)
  7. sbjt = st + datetime.timedelta(hours=8)

  8. #Plot
  9. figure(figsize=[768,480], newfig=False)
  10. axesm(position=[0,0,1,1], xyscale=1.2, tickfontsize=12)
  11. lworld = shaperead(os.path.join(mapdir, 'country1.shp'))
  12. lchina = shaperead(os.path.join(mapdir, 'bou2_4p.shp'))
  13. geoshow(lchina)
  14. geoshow(lworld, edgecolor='k')
  15. #Set weather list - haze, mist and fog
  16. weathers = [5,10,11,12,40,41,42,43,44,45,46,47,48,49]
  17. ls = weatherspec(weathers)
  18. #Add south China Sea
  19. lscs = shaperead(os.path.join(mapdir, 'bou1_4l.shp'))
  20. axesm(position=[0.76,0.09,0.16,0.22], axison=False, xyscale=1.2)
  21. geoshow(lscs, facecolor=(0,0,255))
  22. xlim(106, 123)
  23. ylim(2, 23)
  24. #Set current plot to 1
  25. currentplot(1)

  26. #Create gif animation
  27. giffn = os.path.join(outdir, 'V_vis_' + st.strftime('%Y%m%d') + '--loop-.gif')
  28. print giffn
  29. animation = gifanimation(giffn)

  30. #Loop
  31. nn = 0
  32. bjt = sbjt
  33. for t in range(1, 25):
  34.     if nn > 0:
  35.         cll()
  36.     bjt = bjt + datetime.timedelta(hours=3)
  37.     obsfn = os.path.join(obsdir,  str(bjt.year) + '/plot/' + bjt.strftime('%y%m%d%H.000'))
  38.     if os.path.exists(obsfn):
  39.         print 'Observation data file: ' + obsfn
  40.         obsf = addfile_micaps(obsfn)
  41.         odata = obsf.stationdata('WeatherNow')
  42.         lobs = scatterm(odata, symbolspec=ls)
  43.         title('CUACE/Haze-Fog visibility (km) ' + sbjt.strftime('%Y-%m-%d %H:00') + \
  44.                 ' +' + str(t*3) + ' (' + bjt.strftime('%Y-%m-%d %H:00') + ')', \
  45.                 bold=False)
  46.         xlim(68.6, 140.5)
  47.         ylim(17.3, 54)
  48.         #Add frame to gif animation
  49.         gifaddframe(animation)
  50.         nn += 1

  51. #Finish gif animation
  52. animation.finish()
  53. print 'Finished...'


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

新浪微博达人勋

 楼主| 发表于 2016-9-7 09:58:29 | 显示全部楼层
本帖最后由 cny 于 2016-9-7 10:01 编辑
  1. basedir = 'G:\desktop\meteinfo'
  2. obsdir =os.path.join( basedir, 'micaps/')
  3. mapdir = os.path.join(basedir, 'MeteoInfo/map')
  4. outdir = 'G:/desktop/'
  5. st = datetime.datetime(2015,2,1,2)
  6. sbjt = st + datetime.timedelta(hours=0)
  7. #Plot
  8. figure(figsize=[768,480], newfig=False)
  9. axesm(position=[0,0,1,1], xyscale=1.2, tickfontsize=12)
  10. lworld = shaperead(os.path.join(mapdir, 'country1.shp'))
  11. lchina = shaperead(os.path.join(mapdir, 'bou2_4p.shp'))
  12. geoshow(lchina)
  13. geoshow(lworld, edgecolor='k')

  14. #Add south China Sea
  15. lscs = shaperead(os.path.join(mapdir, 'bou1_4l.shp'))
  16. axesm(position=[0.76,0.09,0.16,0.22], axison=False, xyscale=1.2)
  17. geoshow(lscs, facecolor=(0,0,255))
  18. xlim(106, 123)
  19. ylim(2, 23)
  20. #Set weather list - haze, mist and fog
  21. weathers = [6,7,31]
  22. ls = weatherspec(weathers)
  23. #Set current plot to 1
  24. currentplot(1)
  25. giffn = os.path.join(outdir, 'V_vis_' + st.strftime('%Y%m%d') + '--loop-.gif')
  26. print giffn
  27. animation = gifanimation(giffn,delay=500)
  28. nn=0
  29. bjt= sbjt
  30. for t in range(1,50):
  31.     if nn > 0:
  32.         cll()
  33.     bjt = bjt + datetime.timedelta(hours=3)
  34.     obsfn = os.path.join(obsdir,  str(bjt.year) + '/plot/' + bjt.strftime('%y%m%d%H.000'))
  35.     if os.path.exists(obsfn):
  36.         print 'Observation data file: ' + obsfn   
  37.         obsf = addfile_micaps(obsfn)      
  38.         odata = obsf.stationdata('WeatherNow')
  39.         lobs = scatterm(odata, symbolspec=ls)
  40.         title('Dust Event ' + sbjt.strftime('%Y-%m-%d %H:00') + \
  41.                 ' +' + str(t*3) + ' (' + bjt.strftime('%Y-%m-%d %H:00') + ')', \
  42.                 bold=False)
  43.         xlim(68.6, 140.5)
  44.         ylim(17.3, 54)
  45.         #colorbar(lfcst, extendrect=False, shrink=0.6)
  46.         #Add frame to gif animation
  47.         gifaddframe(animation)
  48.         nn += 1
  49. animation.finish()
  50. print 'Finished...'
复制代码


V_vis_20150201--loop-.gif

出来的图跟上一张一样,weather symbol 只是不停叠加,最后就越来越多,越来越密。

不知道错在哪?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-9-7 10:15:12 | 显示全部楼层
cny 发表于 2016-9-7 09:58
出来的图跟上一张一样,weather symbol 只是不停叠加,最后就越来越多,越来越密。

不知道错在 ...

你用的什么版本的MeteoInfo?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-9-7 10:39:58 | 显示全部楼层
MeteoInfo 发表于 2016-9-7 10:15
你用的什么版本的MeteoInfo?

Java里的meteoinfo lab跑出来的,版本号是0.8.2
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-9-7 11:38:52 | 显示全部楼层
cny 发表于 2016-9-7 10:39
Java里的meteoinfo lab跑出来的,版本号是0.8.2

请下载最新版本试试
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-9-7 19:18:11 | 显示全部楼层
本帖最后由 cny 于 2016-9-7 19:20 编辑
MeteoInfo 发表于 2016-9-7 11:38
请下载最新版本试试

按您说的下载版本后能跑了,但是跑到nn=137时,提示出现错误,这可怎么办
Capture.PNG
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-9-7 19:34:16 | 显示全部楼层
cny 发表于 2016-9-7 19:18
按您说的下载版本后能跑了,但是跑到nn=137时,提示出现错误,这可怎么办

应该是15031714.000数据文件有问题,里面有".00**********",需要进行修改。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2022-2-20 22:55:48 | 显示全部楼层
MeteoInfo 发表于 2016-9-7 19:34
应该是15031714.000数据文件有问题,里面有".00**********",需要进行修改。

王老师,参考了汇总帖里王老师的程序,但是出来的gif动图是模糊的,想知道怎么能保存比较清楚的图片啊
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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