爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: MeteoInfo

MeteoInfoLab脚本示例:同时加载多个文件

[复制链接]

新浪微博达人勋

 楼主| 发表于 2017-2-13 12:49:53 | 显示全部楼层
良辰 发表于 2017-2-13 10:58
王老师,程序还是不通呀,能帮忙测试一下吗?

我测试过了,没有问题呀
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-2-13 13:42:44 | 显示全部楼层
MeteoInfo 发表于 2017-2-13 12:49
我测试过了,没有问题呀

我用的1.4r3最新版本呀。脚本我发您私信了!为啥我的运行不了哪?老师您有时间看一下私信呗!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-2-13 13:51:28 | 显示全部楼层
良辰 发表于 2017-2-13 13:42
我用的1.4r3最新版本呀。脚本我发您私信了!为啥我的运行不了哪?老师您有时间看一下私信呗!

我测试用的脚本供参考:

  1. datadir = r'U:\data\ARL\2016'
  2. fns = []
  3. for i in range(1, 5):
  4.     fn = os.path.join(datadir, 'gdas1.jun16.w' + str(i))
  5.     print fn
  6.     fns.append(fn)

  7. fs = addfiles(fns)

  8. latlim = [10,60]
  9. lonlim = [60,140]
  10. v = fs['RELH']
  11. rh = v[:,:,latlim,lonlim]
  12. nx = rh.dimlen(3)
  13. ny = rh.dimlen(2)
  14. nz = rh.dimlen(1)
  15. nt = rh.dimlen(0)
  16. uwnd = fs['UWND'][:,:nz-1,latlim,lonlim]
  17. vwnd = fs['VWND'][:,:nz-1,latlim,lonlim]
  18. vort = np.hcurl(uwnd, vwnd)
  19. prs = zeros([nt,nz,ny,nx])
  20. prs = dim_array(prs, rh.dims)


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

新浪微博达人勋

发表于 2017-2-13 15:40:45 | 显示全部楼层
MeteoInfo 发表于 2017-2-13 13:51
我测试用的脚本供参考:

好的,我再试一试,谢谢王老师!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-2-13 16:08:58 | 显示全部楼层
本帖最后由 良辰 于 2017-2-13 16:11 编辑
MeteoInfo 发表于 2017-2-13 13:51
我测试用的脚本供参考:
王老师,用你的脚本我再次测试了一下:

  1. # Set working directory
  2. trajDir = 'D:/Temp/HYSPLIT'
  3. datadir = r'D:\Temp\arl'
  4. # Open meteorological data file
  5. print 'Open meteorological data file...'
  6. fns = []
  7. for i in range(1, 5):
  8.     fn = os.path.join(datadir, 'gdas1.jul09.w' + str(i))
  9.     print fn
  10.     fns.append(fn)
  11. fs = addfiles(fns)

  12. #print 'Meteorological file: ' + meteof
  13. # Read data
  14. print 'Read data...'
  15. latlim = [10,60]
  16. lonlim = [60,140]
  17. v = fs['RELH']
  18. rh = v[:,:,latlim,lonlim]
  19. nx = rh.dimlen(3)
  20. ny = rh.dimlen(2)
  21. nz = rh.dimlen(1)
  22. nt = rh.dimlen(0)
  23. lat = rh.dimvalue(2)
  24. lev = rh.dimvalue(1)
  25. t0 = fs['TEMP'][:,:nz-1,latlim,lonlim]
  26. uwnd = fs['UWND'][:,:nz-1,latlim,lonlim]
  27. vwnd = fs['VWND'][:,:nz-1,latlim,lonlim]
  28. vort = np.hcurl(uwnd, vwnd)
  29. #divg = np.hdivg(uwnd, vwnd)
  30. prs = zeros([nt,nz,ny,nx])
  31. prs = dim_array(prs, rh.dims)
复制代码


错误提示如下:
>>> run script...
Open meteorological data file...
D:\Temp\arl\gdas1.jul09.w1
D:\Temp\arl\gdas1.jul09.w2
D:\Temp\arl\gdas1.jul09.w3
D:\Temp\arl\gdas1.jul09.w4
Read data...
Traceback (most recent call last):
  File "<iostream>", line 29, in <module>
  File "D:\MeteoInfo\pylib\mipylib\numeric\minum.py", line 1564, in hcurl
    r = ArrayMath.hcurl(u.asarray(), v.asarray(), xdim.getDimValue(), ydim.getDimValue())
        at ucar.ma2.ArrayDouble.<init>(ArrayDouble.java:103)
        at ucar.ma2.ArrayDouble$D4.<init>(ArrayDouble.java:341)
        at ucar.ma2.ArrayDouble$D4.<init>(ArrayDouble.java:333)
        at ucar.ma2.ArrayDouble.factory(ArrayDouble.java:64)
        at ucar.ma2.ArrayDouble.factory(ArrayDouble.java:49)
        at ucar.ma2.Array.factory(Array.java:110)
        at ucar.ma2.Array.factory(Array.java:92)
        at org.meteoinfo.data.ArrayMath.cdiff(ArrayMath.java:2941)
        at org.meteoinfo.data.ArrayMath.hcurl(ArrayMath.java:3055)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)

java.lang.OutOfMemoryError: java.lang.OutOfMemoryError: Java heap space
是不是因为版本问题,而且只读入了四个数据文件,我这的确有5个文件。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-2-13 16:19:07 | 显示全部楼层
良辰 发表于 2017-2-13 16:08
王老师,用你的脚本我再次测试了一下:

要包括w5需要将第7行range(1, 5)改为range(1, 6)

错误信息提示内存溢出,应该是你的机器内存不够大。一次加载多个文件需要较大内存。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-2-13 16:23:53 | 显示全部楼层
MeteoInfo 发表于 2017-2-13 16:19
要包括w5需要将第7行range(1, 5)改为range(1, 6)

错误信息提示内存溢出,应该是你的机器内存不够大。 ...

哦,原来是这个原因,王老师,您用的多大内存跑的呀?还是用服务器跑?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-2-13 16:41:03 | 显示全部楼层
良辰 发表于 2017-2-13 16:23
哦,原来是这个原因,王老师,您用的多大内存跑的呀?还是用服务器跑?

我的机器内存8G,MeteoInfoLab.exe最多用到2G(这个例子应该够了),Java程序可以在启动的时候设置最大使用的内存。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-2-13 16:59:16 | 显示全部楼层
MeteoInfo 发表于 2017-2-13 16:41
我的机器内存8G,MeteoInfoLab.exe最多用到2G(这个例子应该够了),Java程序可以在启动的时候设置最大使 ...

我的电脑是4g内存,不应该呀!我一会儿换个16g内存的服务器试一下,要是还有问题还要骚扰您!呜呜
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-2-13 18:42:27 | 显示全部楼层
本帖最后由 良辰 于 2017-2-13 18:43 编辑
MeteoInfo 发表于 2017-2-13 16:41
我的机器内存8G,MeteoInfoLab.exe最多用到2G(这个例子应该够了),Java程序可以在启动的时候设置最大使 ...


王老师,的确是您说的问题,我在服务器上可以正常运行!但是最新版本里这个tostation这个功能改变了吗?代码为:
142       temp = fs.tostation(tvar, lon, lat, pres, t)
143       rh = fs.tostation(rhvar, lon, lat, pres, t)
提示如下错误:
Traceback (most recent call last):
  File "<iostream>", line 142, in <module>
AttributeError: 'DimDataFiles' object has no attribute 'tostation'
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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