找出指定网格的风向风速

2020-05-15  本文已影响0人  Aerosols

为了与观测的风向风速进行比较。

; These files are loaded by default in NCL V6.2.0 and newer
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

  filename = "/NJ/read_fnl_loc.csv" 

  values_1d = asciiread(filename,-1,"string")
  ncols     = dimsizes(str_split(values_1d(0),","))
  nrows     = dimsizes(values_1d)
  values_2d = onedtond(asciiread(filename,-1,"integer"),(/nrows,ncols/))
  ;;print(values_2d)

;;;-------------------------------Write a new array-------------------------------;;;;
result = new((/nrows,ncols+2/),float)

path="/NJ/"
h_pick=(/"h10.csv","h20.csv","h30.csv","h40.csv","h50.csv","h80.csv","h100.csv"/)

;;;----------------------------------Read fnl---------------------------------------------;;;;;
 files    = systemfunc("ls /NJ/fnl_2020_4/fnl_202001*.grib2")
  f       = addfiles(files,"r")
  HH      = f[0]->lv_HTGL8    ;;;七个数  10,20,30,40,50,80,100
  ; print(HH)
  ; exit()

;;;;--------------------------------Cycle---------------------------------------------------;;;;;

do multih = 0,6  ;;;;; Different from python .

  Height  = HH(multih)

  do i=0,20
  
        lon_find = values_2d(i,1)
        lat_find = values_2d(i,0)
       
      
      
        u    = f[i]->UGRD_P0_L103_GLL0({Height},{lat_find},{lon_find})
        v    = f[i]->VGRD_P0_L103_GLL0({Height},{lat_find},{lon_find})
        
        result(i,0)=u
        result(i,1)=v
        result(i,2)=wind_speed(u, v)
        result(i,3)=wind_direction(u, v,1)
  
  end do
  
  ;;;;-------------------------------Write result--------------------------------------;;;;
  
   uu=result(:,0)
   vv=result(:,1)
   ws=result(:,2)
   wd=result(:,3)
   alist=[/uu,vv,ws,wd/]
   
  
   csv_filename = path+h_pick(multih)   ;;;;  "+" to cat strs.
   system("rm -rf " + csv_filename)
   format = "%g,%g,%g,%g"
   write_table(csv_filename, "a", alist, format)

  end do

end

上一篇 下一篇

猜你喜欢

热点阅读