;
; Open file containing surface pressure data for the entire globe.
;
a = addfile("data/94072700_aP.cdf","r")
;
; Convert pressure to millibars.
p = a->Psl/100.0
frtime = a->frtime
tmp = new(dimsizes(p(0,:,:)),float)
ind = 0
;
; Sort pressure so that timesteps are 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
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
;
; Determine extents of latitude and longitude coordinate.
;
lat = a->lat
if(lat(0) .lt. lat(dimsizes(lat)-1)) then
ymin = lat(0)
ymax = lat(dimsizes(lat)-1)
else
ymax= lat(0)
ymin = lat(dimsizes(lat)-1)
end if
lon = a->lon
if(lon(0) .lt. lon(dimsizes(lon)-1)) then
xmin = lon(0)
xmax = lon(dimsizes(lon)-1)
else
xmax= lon(0)
xmin = lon(dimsizes(lon)-1)
end if
;
; Set up the scalar field needed by the contour object with the first
; pressure time step.
;
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
wks = create "wks" xWorkstationLayerClass noparent end create
wks1 = create "wks1" ncgmWorkstationLayerClass noparent end create
map = create "map" mapPlotLayerClass wks
"vpXF": .1
"vpYF": .9
"vpWidthF": .8
"vpHeightF": .8
"mpCenterLatF": -89.5
"mpCenterLonF": 90.0
"mpProjection": "ORTHOGRAPHIC"
end create
map1 = create "map1" mapPlotLayerClass wks1
"vpXF": .1
"vpYF": .9
"vpWidthF": .8
"vpHeightF": .8
"mpCenterLatF": -89.5
"mpCenterLonF": 90.0
"mpProjection": "ORTHOGRAPHIC"
end create
con1 = create "con1" contourLayerClass wks1
"cnScalarFieldData" : field1
"tfOverlayPlotBase": "True"
"cnMonoFillPattern": "False"
"cnLevelSelectionMode" : "MANUAL"
"cnMinLevelValF" : 960.0
"cnMaxLevelValF" : 1040.0
"cnLevelSpacingF" : 5.0
"cnMaxLevelCount" : 25
"trYMinF": ymin
"trYMaxF": ymax
"trXMinF": xmin
"trXMaxF": xmax
"cnMonoFillPattern" : "True"
"cnFillPatterns" : 0
"cnMonoLineColor" : "True"
"cnFillOn" : "True"
"cnLineColors" : 0
"tiMainString" : "Forcast time " + 0 + " hours"
"cnLowLabelsOn" : "False"
"cnHighLabelsOn" : "False"
"cnLineLabelsOn" : "False"
end create
con = create "con" contourLayerClass wks
"cnScalarFieldData" : field1
"tfOverlayPlotBase": "True"
"cnMonoFillPattern": "False"
"cnLevelSelectionMode" : 1
"cnMinLevelValF" : 960.0
"cnMaxLevelValF" : 1040.0
"cnLevelSpacingF" : 5.0
"cnMaxLevelCount" : 25
"trYMinF": ymin
"trYMaxF": ymax
"trXMinF": xmin
"trXMaxF": xmax
"cnMonoFillPattern" : 1
"cnFillPatterns" : 0
"cnFillOn" : "True"
"cnMonoLineColor" : 1
"cnLineColors" : -1
"tiMainString" : "Forcast time " + 0 + " hours"
"cnLowLabelsOn" : "False"
"cnHighLabelsOn" : "False"
"cnLineLabelsOn" : "False"
end create
overlay(map,con)
overlay(map1,con1)
maps = (/map,map1/)
cons= (/con,con1/)
works= (/wks,wks1/)
draw(maps)
frame(works)
do i = 1, dimsizes(frtime) - 1
setvalues field1
"sfDataArray" : p(i,:,:)
end setvalues
setvalues cons
"tiMainString" : "Forcast time " + frtime(i) + " hours"
end setvalues
draw(maps)
frame(works)
end do
;
; Free variables used in this script.
;
delete(frtime)
delete(a)
delete(p)
delete(tmp)