; ; 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)