请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: MeteoInfo

格点插值为站点数据批量处理

  [复制链接]

新浪微博达人勋

发表于 2018-5-29 18:22:11 | 显示全部楼层
感谢楼主!非常有用
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-6-7 15:37:04 | 显示全部楼层
感谢楼主!

  大连妇科医院哪家较好 http://www.0411bh.com

  大连男科医院哪家好 http://www.lnbohaink.com
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-12-27 19:01:17 | 显示全部楼层
wuyu 发表于 2017-8-25 15:48
王老师,我运行了如下:
#Open station file as table data
stdata = readtable('F:/MeteoInfo/sample/Lo ...

我也遇到了这个问题,请问你的解决了吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-2-1 16:54:20 | 显示全部楼层
多时次的模式资料只能处理成grads的形式吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-2-12 18:42:53 | 显示全部楼层
请教一下,读取ctl时报错。
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "E:\MeteoInfo_1.7.1\MeteoInfo\pylib\mipylib\dataset\midata.py", line 103, in addfile
    return addfile_grads(fname, False)
  File "E:\MeteoInfo_1.7.1\MeteoInfo\pylib\mipylib\dataset\midata.py", line 169, in addfile_grads
    meteodata.openGrADSData(fname)
        at java.lang.NumberFormatException.forInputString(Unknown Source)

        at java.lang.Integer.parseInt(Unknown Source)

        at java.lang.Integer.parseInt(Unknown Source)

        at org.meteoinfo.data.meteodata.grads.GrADSDataInfo.readDataInfo(GrADSDataInfo.java:877)

        at org.meteoinfo.data.meteodata.grads.GrADSDataInfo.readDataInfo(GrADSDataInfo.java:296)

        at org.meteoinfo.data.meteodata.MeteoDataInfo.openGrADSData(MeteoDataInfo.java:503)

        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.NumberFormatException: java.lang.NumberFormatException: For input string: "0,100,50000"

但是用grads是能打开这个ctl,不知道问题出在哪里
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2019-2-12 23:45:39 | 显示全部楼层
gyq1991 发表于 2019-2-12 18:42
请教一下,读取ctl时报错。
Traceback (most recent call last):
  File "", line 1, in

把脚本贴出来看看,不行的话把数据文件贴出来。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-2-13 15:53:44 | 显示全部楼层
本帖最后由 gyq1991 于 2019-2-13 15:56 编辑
MeteoInfo 发表于 2019-2-12 23:45
把脚本贴出来看看,不行的话把数据文件贴出来。

ctl的脚本
dset G:/TCC/GPV_1DAY/GPV_1DAY/20180919/p500_Pahh_em.20180919
index G:/TCC/GPV_1DAY/GPV_1DAY/20180919/p500_Pahh_em.20180919.idx
undef 9.999E+20
title G:/TCC/GPV_1DAY/GPV_1DAY/20180919/p500_Pahh_em.20180919
*  produced by g2ctl v0.0.3d
* griddef=1.1:0:(144 x 73):grid_template=0:winds(N/S): lat-lon grid:(144 x 73) units 1e-06 input WE:NS output WE:SN res 48 lat 90.000000 to -90.000000 by 2.500000 lon 0.000000 to 357.500000 by 2.500000 #points=10512

dtype grib2
ydef 73 linear -90.000000 2.5
xdef 144 linear 0.000000 2.500000
tdef 31 linear 00Z21sep2018 1dy
zdef 1 linear 1 1
vars 1
GPA500mb  0,100,50000   0,3,9,0 ** 500 mb ave Geopotential Height Anomaly [gpm]
ENDVARS

MI的脚本
#Open station file as table data
stdata = readtable('C:/Users/wrcc-gyq/Desktop/China_Prec_2010101420.csv', delimiter=',', format='%s%f%f')
x = stdata['Longitude']
y = stdata['Latitude']
#Add data file
f = addfile('G:/TCC/GPV_1DAY/GPV_1DAY/20180919/p500_Pahh_em.20180919.ctl')
#Get data variable
psv = f['GPA500mb']
#Get time dimension length
tn = psv.dimlen(0)
#Loop
for i in range(0, tn):
    #Get dimension array
    ps = psv[i,'10:60','60:140']
    #Interpolate to stations
    ps_st = ps.tostation(x, y)
    #Add column to table data
    colname = 'PS' + str(i)
    stdata.addcoldata(colname, '%d', ps_st)
#Save table data to a file
fn = 'D:/Temp/test_st.csv'
stdata.savefile(fn)
print 'Finish...'

麻烦您了

p500_Pahh_em.20180919

639.36 KB, 下载次数: 4, 下载积分: 金钱 -5

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

新浪微博达人勋

 楼主| 发表于 2019-2-13 16:52:39 | 显示全部楼层
gyq1991 发表于 2019-2-13 15:53
ctl的脚本
dset G:/TCC/GPV_1DAY/GPV_1DAY/20180919/p500_Pahh_em.20180919
index G:/TCC/GPV_1DAY/GPV ...

这个是grib格式的数据,MeteoInfo打开grib格式数据不需要ctl文件,可以用addfile函数直接打开,参考此脚本:

  1. fn = 'D:/Temp/grib/p500_Pahh_em.20180919'
  2. f = addfile(fn)
  3. data = f['Geopotential_height_anomaly_isobaric_5_Day_Average_unweightedMean'][0,0,:,:]
  4. axesm()
  5. geoshow('country', edgecolor='k')
  6. layer = contourfm(data, 20)
  7. colorbar(layer)


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

新浪微博达人勋

发表于 2019-2-14 16:13:20 | 显示全部楼层
MeteoInfo 发表于 2019-2-13 16:52
这个是grib格式的数据,MeteoInfo打开grib格式数据不需要ctl文件,可以用addfile函数直接打开,参考此脚 ...

感谢老师的帮助,完成了第一个脚本
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-4-24 17:02:45 | 显示全部楼层
老师,我的这个脚本报错您能看一下吗?
#Open station file as table data
stdata = readtable('D:/daqihuanliu/China_Prec_2010101420.csv', delimiter=',', format='%s%f%f')
x = stdata['Longitude']
y = stdata['Latitude']
#Add data file
f = addfile('D:/daqihuanliu/hur_A1_2000_to_2049.nc')
#Get data variable
psv = f['hur']
#Get time dimension length
tn = psv.dimlen(0)
#Loop
for i in range(0, tn):
    #Get dimension array
    ps = psv[i,'10:60','60:140']
    #Interpolate to stations
    ps_st = ps.tostation(x, y)
    #Add column to table data
    colname = 'hur' + str(i)
    stdata.addcoldata(colname, '%d', ps_st)

#Save table data to a file
fn = 'D:/Temp/test_st.csv'
stdata.savefile(fn)
print 'Finish...'
报错如下
>>> run script...
indices must be 4 dimensions!
Traceback (most recent call last):
  File "<iostream>", line 16, in <module>
AttributeError: 'NoneType' object has no attribute 'tostation'
>>>
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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