mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
130 lines
4.5 KiB
Plaintext
130 lines
4.5 KiB
Plaintext
;*****************************************************
|
|
; cru_8.ncl
|
|
;
|
|
; Concepts illustrated:
|
|
; - Plotting CRU (Climate Research Unit)/ BADC data
|
|
; - Selecting a sub-period
|
|
; - calculating a climatology
|
|
; - Drawing raster contours; very basic graphics
|
|
;
|
|
;*****************************************************
|
|
|
|
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" ; not needed 6.20 onward
|
|
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
|
|
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
|
|
|
|
; create references (pointers) to the files
|
|
|
|
diri = "./"
|
|
fcld = addfile(diri+"cru_ts3.21.1901.2012.cld.dat.nc", "r")
|
|
fdtr = addfile(diri+"cru_ts3.21.1901.2012.dtr.dat.nc", "r")
|
|
ffrs = addfile(diri+"cru_ts3.21.1901.2012.frs.dat.nc", "r")
|
|
fpet = addfile(diri+"cru_ts3.21.1901.2012.pet.dat.nc", "r")
|
|
fpre = addfile(diri+"cru_ts3.21.1901.2012.pre.dat.nc", "r")
|
|
ftmn = addfile(diri+"cru_ts3.21.1901.2012.tmn.dat.nc", "r")
|
|
ftmp = addfile(diri+"cru_ts3.21.1901.2012.tmp.dat.nc", "r")
|
|
ftmx = addfile(diri+"cru_ts3.21.1901.2012.tmx.dat.nc", "r")
|
|
fvap = addfile(diri+"cru_ts3.21.1901.2012.vap.dat.nc", "r")
|
|
fwet = addfile(diri+"cru_ts3.21.1901.2012.wet.dat.nc", "r")
|
|
|
|
; specify start & last dates (arbitrary)
|
|
|
|
ymStrt = 199101
|
|
ymLast = 200012
|
|
|
|
; get index values of start/lat dates
|
|
|
|
time = fcld->time
|
|
yyyymm = cd_calendar(time, -1)
|
|
|
|
ntStrt = ind(yyyymm.eq.ymStrt) ; index values
|
|
ntLast = ind(yyyymm.eq.ymLast)
|
|
|
|
; read time segment
|
|
|
|
cld = fcld->cld(ntStrt:ntLast,:,:)
|
|
dtr = fdtr->dtr(ntStrt:ntLast,:,:)
|
|
frs = ffrs->frs(ntStrt:ntLast,:,:)
|
|
pet = fpet->pet(ntStrt:ntLast,:,:)
|
|
pre = fpre->pre(ntStrt:ntLast,:,:)
|
|
tmn = ftmn->tmn(ntStrt:ntLast,:,:)
|
|
tmp = ftmp->tmp(ntStrt:ntLast,:,:)
|
|
tmx = ftmx->tmx(ntStrt:ntLast,:,:)
|
|
vap = fvap->vap(ntStrt:ntLast,:,:)
|
|
wet = fwet->wet(ntStrt:ntLast,:,:)
|
|
|
|
printVarSummary(cld) ; [time | 120] x [lat | 360] x [lon | 720]
|
|
|
|
; calculate monthly climatologies
|
|
|
|
cldclm = clmMonTLL(cld)
|
|
dtrclm = clmMonTLL(dtr)
|
|
frsclm = clmMonTLL(frs)
|
|
petclm = clmMonTLL(pet)
|
|
preclm = clmMonTLL(pre)
|
|
tmnclm = clmMonTLL(tmn)
|
|
tmpclm = clmMonTLL(tmp)
|
|
tmxclm = clmMonTLL(tmx)
|
|
vapclm = clmMonTLL(vap)
|
|
wetclm = clmMonTLL(wet)
|
|
|
|
|
|
printVarSummary(cldclm) ; [month | 12] x [lat | 360] x [lon | 720]
|
|
|
|
;************************************
|
|
; create plots ... very simple
|
|
;************************************
|
|
|
|
nt = 6
|
|
month = "July"
|
|
yrStrt = ymStrt/100
|
|
yrLast = ymLast/100
|
|
title = month+": "+yrStrt+"-"+yrLast
|
|
|
|
wks = gsn_open_wks("ps","cru") ; open a ps file
|
|
gsn_define_colormap(wks,"ncl_default") ; choose colormap; not needed 6.20 onward
|
|
plot = new(2,graphic) ; create graphic array
|
|
|
|
res = True
|
|
res@cnFillOn = True ; turn on color fill; not needed 6.20 onward
|
|
res@cnFillMode = "RasterFill" ; Raster Mode
|
|
res@cnLinesOn = False ; Turn off contour lines
|
|
|
|
res@gsnDraw = False ; do not draw picture
|
|
res@gsnFrame = False ; do not advance frame
|
|
res@lbOrientation = "Vertical" ; vertical label bar
|
|
|
|
resp = True
|
|
resp@gsnMaximize = True ; make ps, eps, pdf large
|
|
|
|
resp@txString = title+": CLD, FRS"
|
|
plot(0)=gsn_csm_contour_map_ce(wks,cldclm(nt,:,:),res)
|
|
plot(1)=gsn_csm_contour_map_ce(wks,frsclm(nt,:,:),res)
|
|
gsn_panel(wks,plot,(/2,1/),resp)
|
|
|
|
resp@txString = title+": PET, VAP"
|
|
plot(0)=gsn_csm_contour_map_ce(wks,petclm(nt,:,:),res)
|
|
plot(1)=gsn_csm_contour_map_ce(wks,vapclm(nt,:,:),res)
|
|
gsn_panel(wks,plot,(/2,1/),resp)
|
|
|
|
resp@txString = title+": TMN, TMX"
|
|
plot(0)=gsn_csm_contour_map_ce(wks,tmnclm(nt,:,:),res)
|
|
plot(1)=gsn_csm_contour_map_ce(wks,tmxclm(nt,:,:),res)
|
|
gsn_panel(wks,plot,(/2,1/),resp)
|
|
|
|
resp@txString = title+": TMP, DTR"
|
|
plot(0)=gsn_csm_contour_map_ce(wks,tmpclm(nt,:,:),res)
|
|
plot(1)=gsn_csm_contour_map_ce(wks,dtrclm(nt,:,:),res)
|
|
gsn_panel(wks,plot,(/2,1/),resp)
|
|
|
|
resp@txString = title+": WET, PRE"
|
|
plot(0)=gsn_csm_contour_map_ce(wks,wetclm(nt,:,:),res)
|
|
|
|
;colors = (/ ... /)
|
|
;res@cnFillPalette = colors ; optional: distinct colors for categories
|
|
res@cnLevelSelectionMode = "ExplicitLevels" ; use unequal spacing
|
|
res@cnLevels = (/2.0,10,25,37.5,50,75,100,125,150,175,200,300,400,500,750/)
|
|
|
|
plot(1)=gsn_csm_contour_map_ce(wks,preclm(nt,:,:),res)
|
|
gsn_panel(wks,plot,(/2,1/),resp)
|