爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: 珮瑶瑶

[源代码] 利用python画等温图

[复制链接]
发表于 2019-8-23 09:16:50 | 显示全部楼层
忽如一夜春风来 发表于 2019-8-22 10:21
emmmmm,怎么说呢,你需要让lon.shape和lat.shape 还有value.shape是一样的,就是360*181个点,每个点给 ...

感谢 最后终于成功了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-24 16:26:33 | 显示全部楼层
咖喱嫑洋葱 发表于 2019-8-23 09:16
感谢 最后终于成功了

我在插值的时候也出现了同样的问题,你最后怎么解决的?能讲一下吗?谢谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2019-8-26 09:48:41 | 显示全部楼层
珮瑶瑶 发表于 2019-8-24 16:26
我在插值的时候也出现了同样的问题,你最后怎么解决的?能讲一下吗?谢谢

把经纬度meshgrid成和value的shape一样
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-27 20:29:07 | 显示全部楼层
咖喱嫑洋葱 发表于 2019-8-26 09:48
把经纬度meshgrid成和value的shape一样

新手不太理解,请把代码贴出来吧,谢谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2019-8-28 08:39:56 | 显示全部楼层
珮瑶瑶 发表于 2019-8-27 20:29
新手不太理解,请把代码贴出来吧,谢谢
  1. lon,lat = np.meshgrid(lon,lat)
  2. olon = np.linspace(lon_min,lon_max,插值格点数)
  3. olat = np.linspace(同上)
  4. olon,olat = np.meshgrid(olon,olat)
  5. func = Rbf(lon, lat, value,function='linear')
  6. value_new = func(olon, olat)
复制代码


lon,lat,value的形状要一样
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-8-28 11:30:23 | 显示全部楼层
咖喱嫑洋葱 发表于 2019-8-28 08:39
lon,lat,value的形状要一样

#-------------------------读取NC资料-------------------------
nc_obj = nc.Dataset('D:/DataCeshi/air.mon.mean.nc')
lon = nc_obj.variables['lon']
lon = np.array(lon)
lat = nc_obj.variables['lat']
lat = np.array(lat)
temperature = nc_obj.variables['air']
temperature = np.array(temperature)
time =  nc_obj.variables['time']
time =  np.array(time)
#插值
lon,lat = np.meshgrid(lon,lat)
olon = np.linspace(5,55,500)
olat = np.linspace(87,137,500)
olon,olat = np.meshgrid(olon,olat)
func = Rbf(lon, lat,temperature,function='linear')
value_new = func(olon, olat)

插值这段我这样写的,还是报一样的错误啊
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2019-8-28 16:15:49 | 显示全部楼层
珮瑶瑶 发表于 2019-8-28 11:30
#-------------------------读取NC资料-------------------------
nc_obj = nc.Dataset('D:/DataCeshi/a ...

这是我的  你参考下
  1. ds = xr.open_dataset('D:\\WORK\\analysis\\fnl_20190721_00_00.grib2.nc')
  2. lat = ds.lat_0
  3. lon = ds.lon_0
  4. qhdivg=np.loadtxt('D:\\WORK\\analysis\\qhdivg7002118.txt')
  5. qhdivg1=qhdivg[::-1]

  6. lon1,lat1 = np.meshgrid(lon,lat)
  7. olon = np.linspace(99,118,20*3)
  8. olat = np.linspace(24,45,22*3)
  9. olat1 = olat[::-1]
  10. func = Rbf(lon1[45:67,99:119],lat1[45:67,99:119],qhdivg1[45:67,99:119],function='cubic')
  11. olon1,olat1 = np.meshgrid(olon,olat1)
  12. value_new = func(olon1,olat1)
复制代码
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-28 17:40:01 | 显示全部楼层
咖喱嫑洋葱 发表于 2019-8-28 16:15
这是我的  你参考下

谢谢,我试试看。您的fnl_20190721_00_00.grib2.nc是怎样转化来的呢,我的是win10系统,一直没有找到转化的方法
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2019-8-29 09:11:12 | 显示全部楼层
珮瑶瑶 发表于 2019-8-28 17:40
谢谢,我试试看。您的fnl_20190721_00_00.grib2.nc是怎样转化来的呢,我的是win10系统,一直没有找到转化 ...

fnl下载网站上可以get converted files,下下来就是nc
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-6 17:21:43 | 显示全部楼层
咖喱嫑洋葱 发表于 2019-8-29 09:11
fnl下载网站上可以get converted files,下下来就是nc

谢谢指点              
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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