;
; This script draws a vertical profile of temperature for longitudes
; separated by 5 degrees.
;
;
; Open data file containing grid of global temperatures.
;
a = addfile("data/94062712_aT.cdf","r")
;
; Open an X workstation object.
;
wks = create "wks" xWorkstationLayerClass noparent end create
;
; Set up intial scalar field with longitude of
; temperature data. Convert data to Degrees F
; from Degrees K before assigning them to the
; sfDataArray resource.
;
field1 = create "field1" scalarFieldLayerClass noparent
"sfDataArray" : (a->T(0,:,:,0) - 273.15) * 9 / 5 + 32.0
"sfMissingValueV": a->T@_FillValue
"sfXCStartV" : a->lat(0)
"sfXCEndV": a->lat(dimsizes(a->lat) - 1)
"sfYArray" : a->level
end create
;
; Determine extents of grid.
;
lat = a->lat
if(lat(0) .lt. lat(dimsizes(lat)-1)) then
min_lat = lat(0)
max_lat = lat(dimsizes(lat)-1)
else
max_lat = lat(0)
min_lat = lat(dimsizes(lat)-1)
end if
level = a->level
if(level(0) .lt. level(dimsizes(level)-1)) then
min_level = level(0)
max_level = level(dimsizes(level)-1)
else
max_level = level(0)
min_level = level(dimsizes(level)-1)
end if
;
; Create contour using manual spacing.
;
con1 = create "con1" contourLayerClass wks
"vpXF": .2
"vpYF": .8
"vpWidthF" : .6
"vpHeightF" : .6
"cnScalarFieldData" : field1
"cnLevelSelectionMode" : "MANUAL"
"cnMaxLevelCount" : 25
"cnMinLevelValF" : -80.0
"cnMaxLevelValF" : 110.0
"cnLevelSpacingF" : 10.0
"trXMinF" : min_lat
"trXMaxF" : max_lat
"trYMinF" : min_level
"trYMaxF" : max_level
"trYReverse" : "True"
"tiMainString" : "Longitude " + a->lon(0) + " Degrees"
end create
;
; Draw first step.
;
draw(con1)
frame(wks)
;
; Loop on remaining longitude values and reset the title every iteration.
;
do i = 1, dimsizes(a->lon) - 1
setvalues field1
"sfDataArray" : (a->T(0,:,:,i) - 273.15) * 9 / 5 + 32.0
end setvalues
setvalues con1
"tiMainString" : "Longitude " + a->lon(i) + " Degrees"
end setvalues
draw(con1)
frame(wks)
end do
delete(con1)
delete(field1)
delete(wks)