- 积分
- 26307
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-5-5
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2014-2-26 11:31:25
|
显示全部楼层
freekiller 发表于 2014-2-26 11:13
直接贴脚本
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"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
;=================================================================================
begin
FILES1 = systemfunc (" ls -1 "+"*.nc ") ;从这里开始到下面都是读取文件的命令
numFILES1 = dimsizes(FILES1)
;print(FILES1)
FILES2 = systemfunc (" ls -1 /nuist/p/work/lkl/the_first_paper_data/100year_deviation/"+"*.nc ") ;′óa¿aʼμ½Ïö¼ê¶á¡Î¼tμÄü
numFILES2 = dimsizes(FILES2)
;print(FILES2)
type = "pdf" ;开始指定文件输出的类型
wks = gsn_open_wks(type,"sst_100year_climatecontour_and_deviationshade")
plot1 = new(24,graphic)
plot2 = new(24,graphic)
res2 =True
res2@gsnMaximize = False
res2@gsnDraw = False ; don't draw
res2@gsnFrame = False ; don't advance frame
res=True
res@gsnMaximize = False
res@gsnDraw = False ; don't draw
res@gsnFrame = False ; don't advance frame
res@gsnAddCyclic=False
res@tiMainFontHeightF = 0.035
res@mpCenterLonF = 180
res@cnInfoLabelOn = False
res@lbLabelBarOn = False
res@mpCenterLonF = 180
;=====================================================================================
a1= addfile(FILES1(0),"r")
tos1=a1->tos(:,:,:)
tos_ave1=dim_avg_Wrap( tos1(lat|:, lon|:, time|:) )
lon=a1->lon
lat=a1->lat
tos_ave1@units=" "
tos_ave1@long_name=" "
res@mpMinLonF = min(tos1&lon)
res@mpMinLatF = min(tos1&lat)
res@mpMaxLatF = max(tos1&lat)
res@mpMaxLonF = max(tos1&lon)
res@cnLevelSelectionMode = "ExplicitLevels"
res@cnLevels = (/ -8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6 /)
res@cnFillOn =False
res@cnLinesOn = True
res@cnInfoLabelOn = False
res@mpAreaMaskingOn = True
res@mpLandFillColor = "gray"
res@mpInlandWaterFillColor = "blue"
res@tmYLLabelFontHeightF= 0.03 ;设置字体大小,设置一个y或x就可以把全部的字体重新进行设置
res@tmXBLabelFontHeightF= 0.03
res@tmBorderThicknessF = 0.5
res@tmXBMajorThicknessF = 1 ;Sets linewidth scale factor for bottom major tick marks.ֻ¸ıäÏÖ¿̶èß res@tmYLMajorThicknessF =1
res@gsnMinorLatSpacing =2
res@gsnMinorLonSpacing =2
aa=strlen(FILES1(0))
res@tiMainString = str_get_cols(FILES1(0),0,aa-5)
plot1(0)=gsn_csm_contour_map_ce(wks,tos_ave1(:,:),res)
delete([/tos_ave1/])
delete([/tos1/])
delete(lat)
delete(lon)
delete(res@mpMinLonF)
delete( res@mpMinLatF)
delete(res@mpMaxLatF )
delete( res@mpMaxLonF)
do i =1,numFILES1-1 ; TIME LOOPÕ¸öîҪμģ¬¿aʼѭ»·¶áë¼t£¬nclê′ó¿aʼ£¬μ½Î¼t¼Dù¼têê¼õá
a1 = addfile(FILES1(i),"r") ;°ÑùèμÄļtдèһ¸ööμtÖ
a2 = addfile(FILES2(i-1),"r")
tos1=a1->tos(:,:,:)
tos_ave1=dim_avg_Wrap( tos1(lat|:, lon|:, time|:) )
tos2=a2->tos(:,:,:)
tos_ave2=dim_avg_Wrap( tos2(lat|:, lon|:, time|:) )
lon=a1->lon
lat=a1->lat
tos_ave1@units=" "
tos_ave1@long_name=" "
tos_ave2@units=" "
tos_ave2@long_name=" "
res@mpMinLonF = min(tos1&lon)
res@mpMinLatF = min(tos1&lat)
res@mpMaxLatF = max(tos1&lat)
res@mpMaxLonF = max(tos1&lon)
res@cnLevelSelectionMode = "ExplicitLevels"
res@cnLevels = (/ -8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6 /)
res@cnFillOn =True
res@cnLinesOn = False
res@cnInfoLabelOn = False
res@mpAreaMaskingOn = True
res@mpLandFillColor = "gray"
res@mpInlandWaterFillColor = "blue"
res@tmYLLabelFontHeightF= 0.03 ;设置字体大小,设置一个y或x就可以把全部的字体重新进行设置
res@tmXBLabelFontHeightF= 0.03
res@tmBorderThicknessF = 0.5
res@tmXBMajorThicknessF = 1 ;Sets linewidth scale factor for bottom major tick marks.ֻ¸ıäÏÖ¿̶èß res@tmYLMajorThicknessF =1
res@gsnMinorLatSpacing =2
res@gsnMinorLonSpacing =2
aa=strlen(FILES1(i))
res@tiMainString = str_get_cols(FILES1(i),0,aa-5)
plot1(i)= gsn_csm_contour_map_ce(wks,tos_ave2(:,:),res)
res2@cnFillOn =False
res2@cnLinesOn = True
res2@cnLineLabelPlacementMode = "Computed" ;控制等值线性质
res2@cnInfoLabelOn = False
plot2(i)= gsn_csm_contour(wks,tos_ave1(:,:),res2)
overlay( plot1(i), plot2(i))
;==============================================================================
delete([/tos_ave1, tos_ave2/])
delete([/tos1,tos2/])
delete(lat)
delete(lon)
delete(res@mpMinLonF)
delete( res@mpMinLatF)
delete(res@mpMaxLatF )
delete( res@mpMaxLonF)
;print("==============")
end do ; END OF TIME LOOP
res@cnFillDrawOrder = "PreDraw"
res@mpAreaMaskingOn = True
res@mpLandFillColor = "gray"
res@mpInlandWaterFillColor = "blue"
resP = True ; modify the panel plot
resP@cnLineLabelPlacementMode = "Computed"
resP@txString = "100_year_sst_avg"
resP@gsnPanelLabelBar = True ; add common colorbar
resP@lbLabelFontHeightF = 0.01 ; make labels smaller
resP@vpHeightF =.04 ;设置色标大小
resP@gsnPanelXWhiteSpacePercent = .25 ; set a bit of extra white space between panels in the x and y directions
resP@gsnPanelYWhiteSpacePercent = .25
resP@pmLabelBarOrthogonalPosF = -0.008
gsn_panel(wks,plot1,(/6,4/),resP)
end
|
|