;
; Open file containing surface pressure data for the
; entire globe.
;
a = addfile("data/94072700_aP.cdf","r")
;
; Open X workstation.
;
wks = create "wks" xWorkstationLayerClass noparent end create
;
; Read in surface pressure and convert it to millibars.
;
p = a->Psl/100.0
frtime = a->frtime
tmp = new(dimsizes(p(0,:,:)),float)
ind = 0
;
; Sort timesteps to put them in order.
;
do i = 0, dimsizes(frtime) - 2
ind = i
do j = i + 1, 10
if(frtime(j) .lt. frtime(ind))
ind = j
end if
end do
;
; Swap 2D subsection with 2D subsection.
;
if(ind.ne.i)
tmp = p(ind,:,:)
p(ind,:,:) = p(i,:,:)
p(i,:,:) = tmp
tmp2 = frtime(ind)
frtime(ind) = frtime(i)
frtime(i) = tmp2
end if
end do
;
; Create scalar field configured with first time step
; of pressure data.
;
field1 = create "field1" scalarFieldLayerClass noparent
"sfDataArray" : p(0,:,:)
"sfMissingValueV" : p@_FillValue
"sfXCStartV" : a->lon(0)
"sfXCEndV" : a->lon(dimsizes(a->lon)- 1)
"sfYCStartV" : a->lat(0)
"sfYCEndV" : a->lat(dimsizes(a->lon) - 1)
end create
;
; Create contour object using manual level spacing and solid
; color fill.
;
con1 = create "con1" contourLayerClass wks
"cnScalarFieldData" : field1
"cnLevelSelectionMode" : "MANUAL"
"cnMinLevelValF" : 960.0
"cnMaxLevelValF" : 1040.0
"cnLevelSpacingF" : 5.0
"cnMaxLevelCount" : 25
"cnInfoLabelOn" : "OFF"
"cnHighLabelsOn" : "OFF"
"cnLowLabelsOn" : "OFF"
"cnLineLabelsOn" : "False"
"cnMonoFillPattern" : "True"
"cnFillPatterns" : 0
"cnMonoLineColor" : "True"
"cnLineColors" : 0
"cnMonoLevelFlag" : "True"
"cnLevelFlags" : 0
"tiMainString" : "Forcast Time " + 0
end create
;
; Draw first frame.
;
draw(con1)
frame(wks)
;
; Loop and draw remaining frames, resetting the scalar field object
; with a new array for each iteration.
;
do i = 1, dimsizes(frtime) - 1
setvalues field1
"sfDataArray" : p(i,:,:)
end setvalues
setvalues con1
"tiMainString" : "Forcast Time " + frtime(i)
end setvalues
draw(con1)
frame(wks)
end do
;
; Free variables used in this script.
;
delete(tmp)
delete(a)
delete(con1)
delete(wks)
delete(field1)
delete(i)
delete(j)
delete(p)
delete(frtime)
delete(ind)