- 积分
- 32400
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-12-11
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2018-3-18 20:58:04
|
显示全部楼层
本帖最后由 chongzika 于 2018-3-18 21:02 编辑
- <div class="blockcode"><blockquote>
复制代码- load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
- load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
- begin
- files = systemfunc("ls -1 wrfout_d02*")
- a = addfiles(files,"r")
- xlon = wrf_user_getvar(a, "XLONG",0)
- xlat = wrf_user_getvar(a, "XLAT",0)
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ll_res= True
- lon0=79.5
- lat0=37
- lon1=80
- lat1=37
- loc0= wrf_user_ll_to_ij(a[0],lon0,lat0,ll_res)
- ;print(loc0)
- loc1= wrf_user_ll_to_ij(a[0],lon1,lat1,ll_res)
- ;---------------------------------------------------------------
- plane = new(4,float)
- plane = (/loc0(0),loc1(0),loc0(1), loc1(1)/) ;(/58,65/) ;
- opts = True
- angle=0.
- lat_plane = wrf_user_intrp2d(xlat,plane,angle,opts)
- lon_plane = wrf_user_intrp2d(xlon,plane,angle,opts)
- dimsX = dimsizes(lat_plane)
- loc2=wrf_user_ij_to_ll(a[0],lon_plane(0),lat_plane(0),ll_res)
- loc3=wrf_user_ij_to_ll(a[0],lon_plane(dimsX-1),lat_plane(dimsX-1),ll_res)
- loc4= wrf_user_ll_to_ij(a[0],loc2(0),loc2(1),ll_res)
- loc5= wrf_user_ll_to_ij(a[0],loc3(0),loc3(1),ll_res)
- print("lon0 lat0 lon1 lat1")
- print (sprintf("%6.2f", lon0) +" " \
- +sprintf("%6.2f", lat0) +" " \
- +sprintf("%6.2f", lon1) +" " \
- +sprintf("%6.2f", lat1) )
- print("loc0_x loc0_y loc1_x loc1_y")
- print (sprintf("%6.2f", loc0(0)) +" " \
- +sprintf("%6.2f", loc0(1)) +" " \
- +sprintf("%6.2f", loc1(0)) +" " \
- +sprintf("%6.2f", loc1(1)) )
- print("loc0_x1 loc0_y1 loc1_x1 loc1_y1")
- print (sprintf("%6.2f", lon_plane(0)) +" " \
- +sprintf("%6.2f", lat_plane(0)) +" " \
- +sprintf("%6.2f", lon_plane(1)) +" " \
- +sprintf("%6.2f", lat_plane(1)) )
- print("lon0_x lat0_y lon1_x lat1_y")
- print (sprintf("%6.2f", loc2(0)) +" " \
- +sprintf("%6.2f", loc2(1)) +" " \
- +sprintf("%6.2f", loc3(0)) +" " \
- +sprintf("%6.2f", loc3(1)) )
- print("loc0_x2 loc0_y2 loc1_x2 loc1_y2")
- print (sprintf("%6.2f", loc4(0)) +" " \
- +sprintf("%6.2f", loc4(1)) +" " \
- +sprintf("%6.2f", loc5(0)) +" " \
- +sprintf("%6.2f", loc5(1)) )
- end
复制代码
输出对比一看,经过坐标转化再插值再转换后完全对不上了
lon0 lat0 lon1 lat1
79.50 37.00 80.00 37.00
loc0_x loc0_y loc1_x loc1_y
132.00 133.00 136.00 132.00
loc0_x1 loc0_y1 loc1_x1 loc1_y1
79.52 37.30 79.56 37.21
lon0_x lat0_y lon1_x lat1_y
75.27 27.80 75.29 27.78
loc0_x2 loc0_y2 loc1_x2 loc1_y2
80.00 37.00 80.00 37.00
|
|