爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: biubiubiu123

[参考资料] 分享一套适用大气专业的Python编程经验 (最近更新:2021/10/21)

    [复制链接]

新浪微博达人勋

发表于 2020-3-6 13:27:35 | 显示全部楼层
biubiubiu123 发表于 2020-3-5 10:52
报错信息是什么呢?
```
a = np.array([-999.0,10,11])

我这会再试了一下,a[a==udf] = np.nan 没有问题了,可以替换缺测值,之前的具体报错我找不到了。
但是出现了新的问题,AttributeError: 'module' object has no attribute 'nanmean'。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-3-6 14:00:21 | 显示全部楼层
本帖最后由 lleoiu 于 2020-3-6 14:01 编辑
biubiubiu123 发表于 2020-3-5 13:57
这个函数我并没有使用过,多文件处理我通常使用CDO提前合并,或者使用os.listdir()获取全部文件名然后排 ...
谢谢回复。
简单写了一个计算入偏差的脚本,正常运行。但是结果不对。也不知道哪里出错。

  1. import netCDF4 as nc
  2. import numpy as np
  3. import xarray as xr           
  4.    
  5. dyst = 1
  6. dyed = 7
  7. ndy  = 7
  8.                                     
  9. dir2 = "/mnt/d/data/jra55/daily/surface/"                                                        
  10. dir4 = "/mnt/d/data/jra55/long_term_mean/daily/surface/"                     
  11.                                                                                                                                 
  12. tmfile = dir2 + "air.*.nc"                                                                                                                                                                           
  13. t2mfile = dir4 + "t2m.day.ltm.nc"                                            
  14.                                                                                    
  15. ds  = xr.open_mfdataset(tmfile,concat_dim="time",combine="by_coords", engine="netcdf4")
  16. lon = ds.variables['lon'][:]      
  17. lat = ds.variables['lat'][:]   

  18. data = ds['air']-273.15
  19. ds5  = xr.open_dataset(t2mfile)  
  20. tc   =  ds5.variables['t2m'][dyst:dyed,:,:] - 273.15

  21. airf = data.loc[data.time.dt.month==7]
  22. air  = airf.loc[airf.time.dt.dayofyear<=dyed]

  23. time  = air.time                 
  24. airdt = air.values
  25.                  
  26. nlon = np.shape(air)[2]
  27. nlat = np.shape(air)[1]
  28. ntim = np.shape(air)[0]
  29. nyr  = int(float(ntim)/ndy)

  30. dtm  = np.zeros(np.shape(airdt))   
  31. cdtm = np.zeros(np.shape(airdt))   

  32. for i in range (0,ndy):                 
  33.      cdtm[i:ndy:ntim,:,:] = tc[i,:,:]

  34. dtm = airdt - cdtm   
复制代码


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

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-3-6 14:15:00 | 显示全部楼层
Penny_Kuan 发表于 2020-3-6 13:27
我这会再试了一下,a[a==udf] = np.nan 没有问题了,可以替换缺测值,之前的具体报错我找不到了。
但是 ...

nanmean的话我感觉只能用a = np.nanmean(b) ,用a = b.nanmean就会报错,具体原因我还没找到
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-3-6 15:39:04 | 显示全部楼层
有心了,学习楼主,感谢分享
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-3-6 16:16:44 | 显示全部楼层
感谢楼主分享
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-3-7 09:37:38 | 显示全部楼层
biubiubiu123 发表于 2020-3-6 14:15
nanmean的话我感觉只能用a = np.nanmean(b) ,用a = b.nanmean就会报错,具体原因我还没找到

就是用的np模块里的,可能我系统上这个模块代码有点问题,没有nanmean函数【捂脸】
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-3-7 10:48:10 | 显示全部楼层
谢谢
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-3-7 10:58:22 | 显示全部楼层
给楼主点个赞虽然还在用NCL,想必将来还是要用python的哈哈哈先收藏着
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-3-7 15:53:29 | 显示全部楼层
码住,等学完python基本语法了就来看
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-3-7 19:12:31 | 显示全部楼层
正在学习气象统计方法,这个帖子给力,学习ing
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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