爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 22600|回复: 18

[作图] 假相当位温剖面图不正确,是计算有问题吗

[复制链接]

新浪微博达人勋

发表于 2020-4-8 20:45:57 | 显示全部楼层 |阅读模式

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

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

x
数据是era5的,时间24个小时,高度24层的
  1. begin
  2. f=addfile("qt.nc", "r")
  3. tem=short2flt(f->t(:,:,::-1,:))
  4. q=short2flt(f->q(:,:,::-1,:))
  5. lev=f->level
  6. ose = new((/24,24,121,81/),float)
  7. ;;;;;;;;;;;;;;;;;;;计算各个高度层的假相当位温
  8. do i = 0,23

  9. e = lev(i)*q(:,i,:,:)/(0.622+q(:,i,:,:))
  10. copy_VarMeta(q(:,0,:,:), e)
  11. tlcl=55.0+2840.0/(3.5*log(tem(:,i,:,:))-log(e)-4.805)
  12. copy_VarMeta(e, tlcl)
  13. theta = tem(:,i,:,:)*((1000/lev(i))^(0.2854*(1.0-0.28*q(:,i,:,:))))
  14. copy_VarMeta(e, theta)
  15. ose(:,i,:,:) = theta*exp(((3376./tlcl)-2.54)*q(:,i,:,:)*(1.0+0.81*q(:,i,:,:)))
  16. copy_VarMeta(q, ose)

  17. ;e=0
  18. end do
  19. printVarSummary(ose)
  20. printMinMax(ose, 1)
  21. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  22. delete(tem)
  23. delete(q)
  24. delete(tlcl)
  25. delete(theta)

  26. wks = gsn_open_wks("pdf", "ose850")
  27. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;剖面图
  28. vores = True
  29.    vores@gsnAddCyclic = False
  30.    vores@gsnDraw = False
  31.    vores@gsnFrame = False
  32.    vores@cnLineLabelsOn       = False                 ; turn on line labels
  33.    ;vores@cnLevelSelectionMode = "ManualLevels"
  34.    ;vores@cnMinLevelValF = 270
  35.    ;vores@cnMaxLevelValF = 410
  36.    ;vores@cnLevelSpacingF = 14
  37.    vores@cnFillOn             = True  
  38.    vores@cnFillPalette        = "BlWhRe"             ; choose colormap               ; turn on color fill
  39.   ; plot = gsn_csm_pres_hgt(wks, vvo(:,{20:30},64), vores)
  40.    plot = gsn_csm_pres_hgt(wks, ose(16,:,{10:40},{106}), vores) ;剖面图

  41. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;单层
  42. cnres = True
  43. ;cnres@gsnMaximize = True
  44. cnres@gsnAddCyclic = False
  45. cnres@gsnDraw = False
  46. cnres@gsnFrame = False
  47. cnres@cnFillOn = True
  48. cnres@cnLevelSelectionMode = "ManualLevels"              ; add common colorbar
  49.   cnres@cnMinLevelValF = 320
  50. cnres@cnMaxLevelValF = 360
  51. cnres@cnLevelSpacingF = 4
  52. ;cnres@cnFillPalette = "WhiteGreen"
  53. ;cnres@tiMainString  = "850hPa vapor_flux"
  54. cnres@gsnLeftString = ""
  55. cnres@gsnRightString = ""
  56. cnres@cnLinesOn = False
  57. cnres@cnLineLabelsOn = False
  58. cnres@lbLabelBarOn = True
  59. ;cnres@cnLevelSelectionMode = "ManualLevels"
  60. ;cnres@cnMinLevelValF = 0
  61. ;cnres@cnMaxLevelValF = 16
  62. ;cnres@cnLevelSpacingF = 4
  63. cnres@mpDataBaseVersion = "Ncarg4_1";这一步和下一步必须要,否则加载中国地图的时候会出错(找不到地图库)
  64. cnres@mpDataSetName="Earth..4";这步加上步再加下面那个China:state和Taiwan就可以画出中国轮廓边界了
  65. ;cnres@mpOutlineOn=True
  66. cnres@mpOutlineSpecifiers=(/"China:states","Taiwan"/);在这个地图库里我们绘制中国和台湾的区域边界

  67. cnres@mpGeophysicalLineThicknessF = 1      ; double the thickness of geophysical boundaries
  68. cnres@mpNationalLineThicknessF    = 5      ; double the thickness of national boundaries
  69. cnres@mpMinLonF            =  95              ; select a subregion
  70. cnres@mpMaxLonF            =  110
  71. cnres@mpMinLatF            =  23
  72. cnres@mpMaxLatF            =  38

  73. ;plot = gsn_csm_contour_map(wks, ose(15,{850},:,:), cnres) ;850单层
  74. draw(plot)
  75. delete(ose)
  76. frame(wks)
  77. end
复制代码

850hPa的

850hPa的

106°E剖面图

106°E剖面图
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-4-15 15:52:22 | 显示全部楼层
如果你用的是ec_era5的数据,你有两点错误:
1、纬度是反着的你没有必要人工纠正,这不影响绘图。
2、era5的要素值不是真实值,要经过转换才是真实值。转换步骤是原始值乘以该要素的系数因子,然后加上偏移量。以比湿q为例,真实的q值应该这样计算:
q = (f->q(time_index, high_index, :, :) * f->q@scale_factor + f->q@add_offset)
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-4-8 20:49:16 | 显示全部楼层
变量只有温度t(时间*24,高度*24,维度,经度),比湿q(时间*24,高度*24,维度,经度),era5现在可以选择区域下载了,不过选择区域下载下来的数据中纬度是反着的,所以::-1。高度是从100hPA到1000hPa的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-4-9 09:59:22 | 显示全部楼层
顶一下,这垂直剖面为啥会是这样啊
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-4-11 16:38:28 | 显示全部楼层
没人鸟我。。。。。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-4-15 17:15:05 | 显示全部楼层
tornadoarps 发表于 2020-4-15 15:52
如果你用的是ec_era5的数据,你有两点错误:
1、纬度是反着的你没有必要人工纠正,这不影响绘图。
2、era ...

谢谢,请问一下是不是直接下载grib格式就不需要做这些工作了,还有就是这个系数因子是怎么一回事呢,我没找到呢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-4-15 17:34:57 | 显示全部楼层
还有就是加上系数因子和偏移量,感觉数据差距也很小啊,第一张是没有乘系数因子,第二张是乘了以后的
1.png
2.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-4-15 17:42:24 | 显示全部楼层
woshiwzm 发表于 2020-4-15 17:34
还有就是加上系数因子和偏移量,感觉数据差距也很小啊,第一张是没有乘系数因子,第二张是乘了以后的

如果是温度,差距是不大。要是其他要素就不一定了,不信你试试比湿。
反正你记住我说的话,保证正确,era5的数据就是这么用的,否则画什么图都是错的!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-4-15 18:00:17 | 显示全部楼层
比湿q算出来差距也差不多,很小的差距.
1.png
2.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-4-15 18:02:26 | 显示全部楼层
tornadoarps 发表于 2020-4-15 17:42
如果是温度,差距是不大。要是其他要素就不一定了,不信你试试比湿。
反正你记住我说的话,保证正确,er ...

比湿算出来也一样呢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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