爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 15273|回复: 9

中国气象局grd数据,CMORPH逐小时做图

[复制链接]

新浪微博达人勋

发表于 2020-4-16 15:57:53 | 显示全部楼层 |阅读模式

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

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

x
和官网给的图对比完全一致,借鉴了前人做的0.5*0.5的数据,改一改就成0.1*0.1的了
  1. ;load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
  2. ;load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
  3. load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
  4. load "$NCARG_ROOT/lib/ncarg/nclscripts/cnmap/cnmap.ncl"
  5. begin
  6.   
  7.   ;fName = "2019082000.grd"  
  8.   myfile = systemfunc("ls *.grd")
  9.   nfile = dimsizes(myfile)
  10.                      
  11.   nlat  = 450                               ; YDEF
  12.   mlon  = 700
  13.   ntime = nfile
  14.                             ; XDEF

  15.                                           ; create an array to contain data
  16. rain   = new ( (/nlat,mlon/), double)
  17. hour_rain = new ( (/ntime,nlat,mlon/), double)
  18.   ;rain@units     = "0.1mm"

  19.     do i=0, nfile-1                              
  20.      setfileoption("bin","ReadByteOrder","LittleEndian")
  21.                                          
  22.      rain(:,:) = fbindirread(myfile(i),0, (/nlat,mlon/), "float")
  23.      hour_rain(i,:,:) = rain(:,:)
  24.      rain = 0
  25.      ;print(myfile(i))
  26.     end do
  27.    
  28.   printVarSummary(hour_rain)
  29.   printMinMax(hour_rain, 1)

  30. lat=15+ispan(0,nlat-1,1)*0.1
  31. lon=70+ispan(0,mlon-1,1)*0.1
  32. time = ispan(0, nfile-1, 1)

  33. lat!0= "lat"
  34. lat@long_name = "latitude"
  35. lat@units = "degrees_north"
  36. lon!0= "lon"
  37. lon@units = "degrees_east"
  38. lon@long_name = "longitude"
  39. rain!0 = "lat"
  40. rain!1 = "lon"
  41. rain&lat = lat
  42. rain&lon = lon
  43. rain@_FillValue =-999
  44. time!0= "time"
  45. time@long_name = "time"
  46. time@units = "hour"
  47. hour_rain!0 = "time"
  48. hour_rain!1 = "lat"
  49. hour_rain!2 = "lon"
  50. hour_rain&time = time
  51. hour_rain&lat = lat
  52. hour_rain&lon = lon
  53. hour_rain@_FillValue =-999  
  54. sumrain = dim_sum_n(hour_rain, 0)
  55. copy_VarMeta(rain, sumrain)
  56. printMinMax(sumrain, 1)
  57. delete(hour_rain)
  58. ;print(lat)
  59. ;smthrain = smth9(sumrain, 0.5, 0.25, False)
  60. ;copy_VarMeta(rain, smthrain)
  61. delete(rain)
  62.   wks = gsn_open_wks("pdf","00")     ; Open a workstation
  63.   gsn_define_colormap(wks,"precip3_16lev")      ; define a different colormap.
  64.   res = True
  65.   res@gsnAddCyclic  = False      
  66.   res@gsnDraw               = False
  67.   res@gsnFrame = False
  68.   res@gsnRightString = "mm/day"
  69.       
  70.   ; Don't draw yet
  71.   res@mpDataSetName         = "Earth..4"   ; This new database contains
  72.                                            ; divisions for other countries.
  73.   res@mpDataBaseVersion     = "MediumRes"  ; High resolution database
  74.   res@mpOutlineOn           = True         ; Turn on map outlines
  75.   res@mpOutlineSpecifiers   = (/"China:states","Taiwan"/)       ;China:states
  76.   res@mpGeophysicalLineThicknessF= 2.      ; double the thickness of geophysical boundaries
  77.   res@mpNationalLineThicknessF= 2.         ; double the thickness of national boundaries
  78.   ;res@mpProjection = "LambertConformal"
  79.   res@mpLambertMeridianF = 105.0
  80.   res@mpLimitMode = "LatLon"
  81.   res@cnFillOn = True
  82.   res@cnSmoothingOn = True
  83.   res@cnSmoothingDistanceF = 0.01
  84.   res@cnSmoothingTensionF = 2.5
  85.   res@cnLevelSelectionMode = "ExplicitLevels"
  86.   res@cnLevels = (/0.1,10,20,30,40,50,60,70,80,90,100,110/)
  87.   ;res@cnFillColors = (/0,128,96,64,48,32,144,160,176,192,208,244,255/)
  88.   res@mpMinLatF             =  20        ; Asia limits
  89.   res@mpMaxLatF             =  30
  90.   res@mpMinLonF             =  100
  91.   res@mpMaxLonF             =  112

  92.   res@mpAreaMaskingOn = True   
  93.   res@mpMaskAreaSpecifiers = (/"China:states","Taiwan"/)   ;China:states
  94.   res@mpOceanFillColor = 0  
  95.   res@mpInlandWaterFillColor = 0  
  96.   res@cnFillOn      = True
  97.   res@cnFillMode="AreaFill"
  98.   ;res@cnRasterSmoothingOn = True
  99.   res@cnConstFEnableFill=False
  100.   res@cnLinesOn     =False
  101.   res@cnLineLabelsOn = False
  102.   ;res@cnFillDrawOrder = "PreDraw"         ; draw contours first   
  103.   res@lbLabelBarOn = True       ;
  104.   res@tiMainFont            = "helvetica"
  105.   res@tiMainOffsetYF        = 0.02  ;set place for main title along   Y,offset
  106.   res@tiMainFontHeightF     = 0.02   ;set main title font size
  107.   res@tiMainString          = "rain"
  108.   plot= gsn_csm_contour_map(wks,sumrain,res)
  109.   lat1 = (/25.7,27.3,27.3,25.7,25.7/)
  110.   lon1 = (/103,103,105.5,105.5,103/)
  111.   plres = True
  112.   plres@gsLineThicknessF = 2.0
  113.   plres@gsLineColor = "grey20"
  114.   plot_1 = gsn_add_polyline(wks, plot, lon1, lat1, plres)
  115.   draw(plot)

  116.   ;frame(wks)

  117.    end

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

新浪微博达人勋

发表于 2020-5-31 22:13:13 | 显示全部楼层
大佬,代码我看了,不怎么懂,想问一下如何读取这个数据每个网格用到的站点数?我在matlab中只能读取降水数据
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-6-1 14:43:01 | 显示全部楼层
pokerface 发表于 2020-5-31 22:13
大佬,代码我看了,不怎么懂,想问一下如何读取这个数据每个网格用到的站点数?我在matlab中只能读取降水数 ...

这不是站点数据,这是网格数据
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-11-16 10:31:47 | 显示全部楼层
本帖最后由 立夏 于 2020-11-16 11:10 编辑

做出来只有一张空白图,没有降水数据呢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-11-17 21:16:18 | 显示全部楼层
立夏 发表于 2020-11-16 10:31
做出来只有一张空白图,没有降水数据呢

你的图片格式是什么。png要frame(wks)
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-11-24 16:32:48 | 显示全部楼层
{:5_213:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-11-24 17:23:29 | 显示全部楼层
谢谢楼主的分享!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-1-11 20:53:41 | 显示全部楼层
请问中国自动站和cmorph融合降水资料,最新到哪个时段?谢谢,想要2020年10月份的数据。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-4-15 09:50:51 | 显示全部楼层
感谢楼主分享
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-4-20 13:34:20 | 显示全部楼层
pokerface 发表于 2020-5-31 22:13
大佬,代码我看了,不怎么懂,想问一下如何读取这个数据每个网格用到的站点数?我在matlab中只能读取降水数 ...

大佬,matlab怎么打开这个grd的数据啊,我读取怎么都是乱码啊
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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