爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 17421|回复: 21

[作图] ncl处理GPM三级产品HDF5格式数据

[复制链接]

新浪微博达人勋

发表于 2018-10-23 08:02:11 | 显示全部楼层 |阅读模式

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

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

x
问题是我运行写的脚本时,出现如下图warning,而且有核心转储的问题。
核心转储的问题我觉得应该不是数据过大的原因,因为我在下载数据的时候发现它大概只有5MB左右。
还请各位大神帮忙看看,感激不尽。


QQ图片20181023080048.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-10-23 08:04:18 | 显示全部楼层
脚本如下:
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"


begin

    cmap = (/(/255,255,255/),\
                (/0,0,0/),\
                (/255,255,255/),\
                (/186,222,130/),\
                (/145,222,7/),\
                (/102,209,10/),\
                (/30,186,12/),\
                (/255,255,0/),\
                (/255,166,0/),\
                (/255,0,0/)/) /255.0
                  
          
            filename =  "3B-HHR.MS.MRG.3IMERG.20170714-S233000-E235959.1410.V05B.HDF5"       
    h5_file  =  addfile(filename,"r")
    lat1     =  3.86
    lat2     =  53.55
    lon1     =  73.66
    lon2     =  135.03
  data_raw = h5_file->/NS/SLV/precipRateESurface
  data_raw@_FillValue = data_raw@CodeMissingvalue
  printVarSummary(data_raw)
  printMinMax(data_raw,0)
  longitude=h5_file->/NS/Longitude
  latitude=h5_file->/NS/Latitude
  longitude@units = "degrees_east"
  latitude@units = "degrees_north"
  nsizescan=dimsizes(data_raw(:,0))
  nsizeray=dimsizes(data_raw(0,:))
  print(nsizescan)
  print(nsizeray)
   sumdata=0.0
   do ns=0,nsizescan-1  
     do nr=0,nsizeray-1
     if (latitude(ns,nr).ge.lat1.and.latitude(ns,nr).le.lat2) then
     if (longitude(ns,nr).ge.lon1.and.longitude(ns,nr).le.lon2) then  
       sumdata=sumdata+data_raw(ns,nr)
     end if
   end if
     end do
   end do
  print(sumdata)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;  yearb=h5_file->/NS/ScanTime/Year(0)
; monb=h5_file->/NS/ScanTime/Month(0)
;  dayb=h5_file->/NS/ScanTime/DayOfMonth(0)
;  hourb=h5_file->/NS/ScanTime/Hour(0)
;  minuteb=h5_file->/NS/ScanTime/Minute(0)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;  yeare=h5_file->/NS/ScanTime/Year(nsizescan-1)
;  mone=h5_file->/NS/ScanTime/Month(nsizescan-1)
;  daye=h5_file->/NS/ScanTime/DayOfMonth(nsizescan-1)
;  houre=h5_file->/NS/ScanTime/Hour(nsizescan-1)
;  minutee=h5_file->/NS/ScanTime/Minute(nsizescan-1)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;  date_b_str = sprinti("%0.4i", yearb)+sprinti("%0.2i", monb)+sprinti("%0.2i", dayb)+\
;             sprinti("%0.2i", hourb)+sprinti("%0.2i", minuteb)
;  print(date_b_str)
;
;  date_e_str = sprinti("%0.4i", yeare)+sprinti("%0.2i", mone)+sprinti("%0.2i", daye)+\
;             sprinti("%0.2i", houre)+sprinti("%0.2i", minutee)
;  print(date_e_str)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  data = data_raw
  data@long_name = "precipRate"
  data@_FillValue = -9999.9
  data@units = data_raw@Units
  data@lat2d = latitude
  data@lon2d = longitude
  printVarSummary(data)
  wks = gsn_open_wks("png", "GPM"+"PRE") ; open workstation
  gsn_define_colormap(wks,cmap)

  res=True
  res@gsnMaximize=True   ;make plot large
;  res@gsnPaperOrientation = "portrait"    ;force portrait orientation
;;set map
   res@mpSpecifiedFillColors     = (/"white","transparent","white"/) ;鑳屾櫙
   res@mpLandFillColor             = -1     ; transparent
   res@mpOutlineOn                 = True
   res@mpDataBaseVersion       = "MediumRes"
   res@mpDataSetName           = "Earth..4"
   res@mpOutlineBoundarySets = "GeophysicalAndUSStates"
   res@mpOutlineSpecifiers   = (/"China:states","Taiwan"/)
   res@mpGeophysicalLineThicknessF= 2.
   res@mpNationalLineThicknessF= 2.
   res@pmTickMarkDisplayMode = "Always"
; now change the size of the tickmark labels
   res@tmXBLabelFontHeightF = 0.02                 ; resize tick labels
   res@tmYLLabelFontHeightF = 0.02
; now change the thickness of the X-Y axis   
   res@tmBorderThicknessF=4
   res@tmXBMajorThicknessF=4
   res@tmXBMajorThicknessF=4
   res@tmYLMajorThicknessF=4
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

res@gsnMaximize          = True     ; maximize plot in frame
res@cnFillOn             = True     ; turn on contour fill
res@cnLinesOn            = False   ; turn off contour lines
res@cnLineLabelsOn       = False   ; turn off line labels
res@gsnAddCyclic          = False   ; set to False if plotting ;regional ;data
;res@tiMainString         = times(nt)+"_1h precipitation"
res@cnLevelSelectionMode = "ExplicitLevels"
res@cnFillMode="RasterFill"   ;faster
;rescources@cnMinLevelValF = 0.1
;rescources@cnMaxLevelValF = 250
;rescources@cnLevelSpacingF=0.1-250
res@cnLevels             = (/1,2.5,5,10,20,30,40/)
;rescources@cnFillColors         =(/62,92,97,80,83,87,18,21,23,48,52,54,36,41/)

  res@lbLabelAutoStride= True
  res@lbOrientation="vertical" ;vertical labels
  res@trGridType = "TriangularMesh"
;  res@tiMainString = "GPM"+"PRE"+date_b_str+"-"+date_e_str
  res@mpMinLatF  = lat1
  res@mpMaxLatF  = lat2
  res@mpMinLonF  = lon1
  res@mpMaxLonF  = lon2
  res@lbLabelBarOn = True



  res@gsnLeftStringFontHeightF = 12 ; make font smaller
  res@gsnRightStringFontHeightF = 12 ; make font smaller
  res@gsnLeftString = "surfacePrecipitationRate"
  
  plot=gsn_csm_contour_map_ce(wks,data,res)



  mkres               = True
  mkres@gsMarkerIndex = 2
  mkres@gsMarkerColor = "black"

  
  draw(plot)

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

新浪微博达人勋

 楼主| 发表于 2018-10-23 09:22:03 | 显示全部楼层
找到了一些问题,现在在重写脚本当中
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-10-23 09:49:59 | 显示全部楼层
之前的问题已经解决了,出现了另外的问题,还在解决当中
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-2-19 10:13:08 | 显示全部楼层
请问您的GPM三级产品是如何下载的呢,我现在无法下载(自动回复:请不要使用迅雷等下载工具,点我查看下载帮助)呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2019-3-3 09:15:52 | 显示全部楼层
小梅子 发表于 2019-2-19 10:13
请问您的GPM三级产品是如何下载的呢,我现在无法下载(自动回复:请不要使用迅雷等下载工具,点我查看下载 ...

进入网站,需要账号下载
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-3-7 15:20:39 | 显示全部楼层
浮生。 发表于 2019-3-3 09:15
进入网站,需要账号下载

好好,谢谢您,我再试试。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-4-10 14:20:28 | 显示全部楼层
您好,请问怎么批量下载呢?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-4-14 09:01:41 | 显示全部楼层
Lily311311 发表于 2019-4-10 14:20
您好,请问怎么批量下载呢?

有些账号可以批量下载,但有些账号只能一个个下。批量下载应该直接点全部下载就可以。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-4-14 14:41:57 | 显示全部楼层
浮生。 发表于 2019-4-14 09:01
有些账号可以批量下载,但有些账号只能一个个下。批量下载应该直接点全部下载就可以。

我的就是我吧那个下载链接全部拖到迅雷里面下不成功呀
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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