爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
12
返回列表 发新帖
楼主: weety9394

画模式850hpa风场图,为何青藏高原这里很奇怪

[复制链接]

新浪微博达人勋

 楼主| 发表于 2017-3-29 18:22:08 | 显示全部楼层
u850_JJA@_FillValue = -9.96921e+36
v850_JJA@_FillValue = -9.96921e+36

MASK_INSIDE = False    ; Whether to mask data inside or outside the given geographical area.

minlat      = -25
maxlat      =  45
minlon      =  60
maxlon      =  160
nlat        =  71
nlon        =  101
;---Create dummy 1D lat/lon arrays
lat1d       = fspan(minlat,maxlat,nlat)
lon1d       = fspan(minlon,maxlon,nlon)
lat1d@units = "degrees_north"
lon1d@units = "degrees_east"
printVarSummary(lat1d)
printVarSummary(lon1d)

;Open shapefile and read Qinghai Tibet Plateau lat/lon values.
f  = addfile("/lustre/home/niehw/moshi/wind1/Qinghai-Tibet_Plateau/Qinghai-Tibet_Plateau.shp","r")
;dir = "/lustre/home/niehw/moshi/wind1/DBATP/"
;filename = dir + "DBATP_Polygon.shp"
mrb_lon = f->x
mrb_lat = f->y
printVarSummary(mrb_lon)
printVarSummary(mrb_lat)
nmrb    = dimsizes(mrb_lon)

min_mrb_lat = min(mrb_lat)
max_mrb_lat = max(mrb_lat)
min_mrb_lon = min(mrb_lon)
max_mrb_lon = max(mrb_lon)

if(MASK_INSIDE) then
;---Start with data filled in.
  data_mask1 = u850_JJA
  data_mask2 = v850_JJA  
else
;---Start with data all missing
  data_mask1 = new(dimsizes(u850_JJA),typeof(u850_JJA),u850_JJA@_FillValue)
  copy_VarCoords(u850_JJA,data_mask1)
  data_mask2 = new(dimsizes(v850_JJA),typeof(v850_JJA),v850_JJA@_FillValue)
  copy_VarCoords(v850_JJA,data_mask2)  
end if
  
printVarSummary(data_mask1)
printVarSummary(data_mask2)

ilt_mn = ind(min_mrb_lat.gt.lat1d)
ilt_mx = ind(max_mrb_lat.lt.lat1d)
iln_mn = ind(min_mrb_lon.gt.lon1d)
iln_mx = ind(max_mrb_lon.lt.lon1d)
ilt1   = ilt_mn(dimsizes(ilt_mn)-1)    ; Start of lat box
iln1   = iln_mn(dimsizes(iln_mn)-1)    ; Start of lon box
ilt2   = ilt_mx(0)                     ; End of lat box
iln2   = iln_mx(0)                     ; End of lon box

if(MASK_INSIDE) then
;---Put missing values in the areas that we want masked.
    do ilt=ilt1,ilt2
      do iln=iln1,iln2
        if(gc_inout(lat1d(ilt),lon1d(iln),mrb_lat,mrb_lon)) then
          data_mask1(ilt,iln) = u850_JJA@_FillValue
          data_mask2(ilt,iln) = v850_JJA@_FillValue
        end if
      end do
    end do
else
;---Put data back in the areas that we don't want masked.
    do ilt=ilt1,ilt2
      do iln=iln1,iln2
        if(gc_inout(lat1d(ilt),lon1d(iln),mrb_lat,mrb_lon)) then
          data_mask1(ilt,iln) = u850_JJA(ilt,iln)
          data_mask2(ilt,iln) = v850_JJA(ilt,iln)
        end if
      end do
    end do
end if
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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