[ncl-talk] vectors won't draw
mberdahl at envsci.rutgers.edu
mberdahl at envsci.rutgers.edu
Wed Dec 2 20:13:12 MST 2015
Hi all,
I have a strange problem where I have a working script and plot with
vectors overlaid on a filled contour. However, when I make a slight
change to how I calculate u and v (I average over levels instead of just
choosing a single level), the vectors won't plot. Below I have the
dysfunctional script where I've commented the section where I just use u
and v at 500mb, and attempt to calculate the average of the u and v over
the troposphere (1000 - 200 mb). I'll also copy the variable summaries
below.
Any help is appreciated.
Thanks,
Mira
My script is:
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
;************************************************
begin
;************************************************
; read in netCDF file s
;************************************************
a = addfile("uwnd.mon.mean.alllevels.nc","r") ; u winds
b = addfile("vwnd.mon.mean.alllevels.nc","r") ; v winds
c = addfile("../PrecipitableWater/pr_wtr.eatm.mon.mean.nc","r") ;
precipitable water content
;************************************************
; read in pwonal [u] and meridional [v] winds (July)
;************************************************
;;;;;; If I just want one level
;u = a->uwnd(0:803,{500},{45:90},{270:357.5})
;v = b->vwnd(0:803,{500},{45:90},{270:357.5}) ; Get u, v, time (1),level
(1000hpa),latitude(-90:90) and lonitude(0:360) data.
;; If I want an average of the levels in the troposphere for instance.
u_trop = a->uwnd(0:803,{1000:200},{45:90},{270:357.5})
v_trop = b->vwnd(0:803,{1000:200},{45:90},{270:357.5}) ; Get u, v, time
(1),level (1000 to 200 hpa),latitude(-90:90) and lonitude(0:360) data.
u = dim_avg_n(u_trop,1) ;==> take the average over levels 200mb - 1000mb
(troposphere)
v = dim_avg_n(v_trop,1) ;==> take the average over levels 200mb - 1000mb
(troposphere)
;; name the dimensions
u!0 = "time"
u!1 = "lat"
u!2 = "lon"
v!0 = "time"
v!1 = "lat"
v!2 = "lon"
pw = c->pr_wtr(0:803,{45:90},{270:357.5}) ; get precipitable water content
printVarSummary(u)
printVarSummary(v)
printVarSummary(pw)
; Calculate the seasonal averages.
uDJF = month_to_season(u, "DJF")
vDJF = month_to_season(v, "DJF")
pwDJF = month_to_season(pw, "DJF")
printVarSummary(uDJF)
printVarSummary(vDJF)
printVarSummary(pwDJF)
; from the matlab script i wrote: findExtremeYrs, i pulled out the extreme
years (> or < 1std) that i want to average and plot here.
;ans = 7 (longitude of IL)
;yearList_hi =1966 1967 1968 1969 1974
1975 1983 1994 1995 2005
;yearList_lo =1963 1964 1985 1987 1991
1992 1996 2002 2003 2006 2009
; this data starts at 1948 (this is index 0), so 1953=5, 1963=15 etc.
uDJF_lon_hi = uDJF((/18,19,20,21,26,27,35,46,47,57/),:,:)
uDJF_lon_lo = uDJF((/15,16,37,38,42,43,47,53,54,57,60/),:,:)
vDJF_lon_hi = vDJF((/18,19,20,21,26,27,35,46,47,57/),:,:)
vDJF_lon_lo = vDJF((/15,16,37,38,42,43,47,53,54,57,60/),:,:)
pwDJF_lon_hi = pwDJF((/18,19,20,21,26,27,35,46,47,57/),:,:)
pwDJF_lon_lo = pwDJF((/15,16,37,38,42,43,47,53,54,57,60/),:,:)
uAvgTime_hi = dim_avg_n_Wrap(uDJF_lon_hi,0)
uAvgTime_lo = dim_avg_n_Wrap(uDJF_lon_lo,0)
printVarSummary(uAvgTime_hi)
printVarSummary(uAvgTime_lo)
vAvgTime_hi = dim_avg_n_Wrap(vDJF_lon_hi,0)
vAvgTime_lo = dim_avg_n_Wrap(vDJF_lon_lo,0)
printVarSummary(vAvgTime_hi)
printVarSummary(vAvgTime_lo)
pwAvgTime_hi = dim_avg_n_Wrap(pwDJF_lon_hi,0)
pwAvgTime_lo = dim_avg_n_Wrap(pwDJF_lon_lo,0)
printVarSummary(pwAvgTime_hi)
printVarSummary(pwAvgTime_lo)
; dirty way to copy metadata over first.
diff_u = uAvgTime_hi;
diff_v = vAvgTime_hi;
diff_pw = pwAvgTime_hi;
diff_u = uAvgTime_lo - uAvgTime_hi
diff_v = vAvgTime_lo - vAvgTime_hi
diff_pw = pwAvgTime_lo - pwAvgTime_hi
printVarSummary(diff_u)
printVarSummary(diff_v)
printVarSummary(diff_pw)
;************************************************
; create plot
;************************************************
wks = gsn_open_wks("eps","Panel_lon_pw_500") ; open a ps file
gsn_define_colormap(wks,"temp1")
plot = new(3,graphic) ; create a plot array
;---- set common resources for all plots
res = True
res at gsnDraw = False ; dont draw
res at gsnFrame = False ; dont advance frame
res at cnInfoLabelOn = False ; trn off cn info label
res at gsnAddCyclic = False ; has to do with wrapping the lonitude at 0/360
res at cnFillPalette = "matlab_jet"
;************************************************
; Choose a subregion
;************************************************
res at mpMaxLatF = 90 ;maximum latitude
res at mpMinLatF = 45 ;minimum latitude
;res at mpMaxLonF = 357.5 ; ;maximum lonitude
;res at mpMinLonF = 270 ;minimum lonitude
res at mpMaxLonF = 0
res at mpMinLonF = -90
;res at mpFillBoundarySets = AllBoundaries
res at mpOutlineBoundarySets = "National"
res at mpOutlineOn = True
res at mpOutlineDrawOrder = "PostDraw"
mpid = gsn_csm_map(wks,res)
mpid2 = gsn_csm_map(wks,res)
mpid3 = gsn_csm_map(wks,res)
;***********************************************
; ----wind vector plot
;***********************************************
vcres = res
vcres at vcRefAnnoOrthogonalPosF = -1.0 ; move ref vector up
vcres at vcRefMagnitudeF = 10.0 ; define vector ref mag
vcres at vcRefLengthF = 0.045 ; define length of vec ref
vcres at vcGlyphStyle = "CurlyVector" ; turn on curly vectors
vcres at vcMinDistanceF = 0.017
vcres at mpFillOn = False ; turn off gray fill
vcres at mpOutlineBoundarySets = "National" ; turn on country boundaries
;vcres at mpFillBoundarySets = AllBoundaries
vcres at mpGeophysicalLineColor = "Navy" ; color of cont. outlines
vcres at mpGeophysicalLineThicknessF = 1.5 ; thickness of outlines
vcres at gsnRightString = "" ; turn off thue units string
;vcres at gsnLeftString = "DJF High lon"
; was previously winds_hi =
gsn_csm_vector_map_ce(wks,uAvgTime_hi,vAvgTime_hi,vcres)
winds_hi = gsn_csm_vector(wks,uAvgTime_hi,vAvgTime_hi,vcres)
;vcres at gsnLeftString = "DJF Low lon"
winds_lo = gsn_csm_vector(wks,uAvgTime_lo,vAvgTime_lo,vcres)
;vcres at gsnLeftString = "Difference of High - Low"
winds_diff = gsn_csm_vector(wks, diff_u, diff_v,vcres)
;************************************************
;---- geopotential height filled contour plot
;***********************************************
pwfres = res
pwfres at cnFillOn = True
;pwfres at cnLevelSelectionMode = "ExplicitLevels
;pwfres at cnLevels = ispan(-20,90,5)
pwfres at lbLabelFontHeightF = 0.015
pwfres at lbOrientation = "Vertical"
pwfres at pmLabelBarOrthogonalPosF = -0.005
pwfres at cnFillPalette = "BlWhRe"
pwfres at cnLinesOn = False ; turn off contour lines
pwfres at cnLevelSelectionMode = "ManualLevels" ;set manual contour levels
pwfres at cnMinLevelValF =0. ; set min contour level
pwfres at cnMaxLevelValF = 20. ; set max contour level
pwfres at cnLevelSpacingF = 2 ; set contour spacing
contour_pwf_hi = gsn_csm_contour(wks,pwAvgTime_hi,pwfres)
contour_pwf_lo = gsn_csm_contour(wks,pwAvgTime_lo,pwfres)
plot(0) = gsn_csm_contour(wks,pwAvgTime_hi,pwfres)
plot(1) = gsn_csm_contour(wks,pwAvgTime_lo,pwfres)
delete(pwfres at cnLevelSpacingF) ;<== delete resource before resetting
pwfres at cnLevelSelectionMode = "AutomaticLevels" ; set back to automatic
levels for third panel.
contour_pwf_diff = gsn_csm_contour(wks,diff_pw,pwfres)
plot(2) = gsn_csm_contour(wks,diff_pw,pwfres)
;overlay(plot(0),winds_hi)
overlay(mpid,plot(0))
overlay(mpid,winds_hi)
;overlay(plot(1),winds_lo)
overlay(mpid2,plot(1))
overlay(mpid2,winds_lo)
;overlay(plot(2),winds_diff)
overlay(mpid3,plot(2))
overlay(mpid3,winds_diff)
;draw(mpid)
;frame(wks)
;************************************************
; create panel
;************************************************
resP = True ; modify the panel plot
resP at txString = "lon 500mb"
gsn_panel(wks,(/mpid,mpid2,mpid3/),(/3,1/),resP) ; now draw as one plot;
end
varPrintSummaries are below:
Variable: v
Type: float
Total Size: 2199744 bytes
549936 values
Number of Dimensions: 3
Dimensions and sizes: [time | 804] x [lat | 19] x [lon | 36]
Coordinates:
time: [1297320..1883904]
lat: [45..90]
lon: [270..357.5]
Number Of Attributes: 14
level : 500
long_name : Monthly mean v wind
units : m/s
precision : 2
least_significant_digit : 1
var_desc : v-wind
dataset : CDC Derived NCEP Reanalysis Products
level_desc : Multiple levels
statistic : Mean
parent_stat : Other
missing_value : -9.96921e+36
valid_range : ( -125, 160 )
actual_range : ( -68.57001, 68.56999 )
_FillValue : -9.96921e+36
Variable: pw
Type: float
Total Size: 2199744 bytes
549936 values
Number of Dimensions: 3
Dimensions and sizes: [time | 804] x [lat | 19] x [lon | 36]
Coordinates:
time: [1297320..1883904]
lat: [45..90]
lon: [270..357.5]
Number Of Attributes: 15
long_name : Monthly Mean of Precipitable Water Content
valid_range : ( -102.2, 102.2 )
units : kg/m^2
add_offset : 0
scale_factor : 1
missing_value : -9.96921e+36
precision : 2
least_significant_digit : 1
var_desc : Precipitable Water Content
dataset : CDC Derived NCEP Reanalysis Products
level_desc : Surface
statistic : Mean
parent_stat : Other
actual_range : ( -3.971937, 69.0658 )
_FillValue : -9.96921e+36
Variable: uDJF
Type: float
Total Size: 183312 bytes
45828 values
Number of Dimensions: 3
Dimensions and sizes: [time | 67] x [lat | 19] x [lon | 36]
Coordinates:
time: [1297320..1875888]
lat: [45..90]
lon: [270..357.5]
Number Of Attributes: 15
level : 500
long_name : DJF: Monthly mean u wind
units : m/s
precision : 2
least_significant_digit : 1
var_desc : u-wind
dataset : CDC Derived NCEP Reanalysis Products
level_desc : Multiple levels
statistic : Mean
parent_stat : Other
missing_value : -9.96921e+36
valid_range : ( -125, 160 )
actual_range : ( -68.04001, 124.4 )
_FillValue : -9.96921e+36
NMO : 0
Variable: vDJF
Type: float
Total Size: 183312 bytes
45828 values
Number of Dimensions: 3
Dimensions and sizes: [time | 67] x [lat | 19] x [lon | 36]
Coordinates:
time: [1297320..1875888]
lat: [45..90]
lon: [270..357.5]
Number Of Attributes: 15
level : 500
long_name : DJF: Monthly mean v wind
units : m/s
precision : 2
least_significant_digit : 1
var_desc : v-wind
dataset : CDC Derived NCEP Reanalysis Products
level_desc : Multiple levels
statistic : Mean
parent_stat : Other
missing_value : -9.96921e+36
valid_range : ( -125, 160 )
actual_range : ( -68.57001, 68.56999 )
_FillValue : -9.96921e+36
NMO : 0
Variable: uAvgTime_hi
Type: float
Total Size: 2736 bytes
684 values
Number of Dimensions: 2
Dimensions and sizes: [lat | 19] x [lon | 36]
Coordinates:
lat: [45..90]
lon: [270..357.5]
Number Of Attributes: 16
NMO : 0
_FillValue : -9.96921e+36
actual_range : ( -68.04001, 124.4 )
valid_range : ( -125, 160 )
missing_value : -9.96921e+36
parent_stat : Other
statistic : Mean
level_desc : Multiple levels
dataset : CDC Derived NCEP Reanalysis Products
var_desc : u-wind
least_significant_digit : 1
precision : 2
units : m/s
long_name : DJF: Monthly mean u wind
level : 500
average_op_ncl : dim_avg_n over dimension(s): time
Variable: uAvgTime_lo
Type: float
Total Size: 2736 bytes
684 values
Number of Dimensions: 2
Dimensions and sizes: [lat | 19] x [lon | 36]
Coordinates:
lat: [45..90]
lon: [270..357.5]
Number Of Attributes: 16
NMO : 0
_FillValue : -9.96921e+36
actual_range : ( -68.04001, 124.4 )
valid_range : ( -125, 160 )
missing_value : -9.96921e+36
parent_stat : Other
statistic : Mean
level_desc : Multiple levels
dataset : CDC Derived NCEP Reanalysis Products
var_desc : u-wind
least_significant_digit : 1
precision : 2
units : m/s
long_name : DJF: Monthly mean u wind
level : 500
average_op_ncl : dim_avg_n over dimension(s): time
Variable: vAvgTime_hi
Type: float
Total Size: 2736 bytes
684 values
Number of Dimensions: 2
Dimensions and sizes: [lat | 19] x [lon | 36]
Coordinates:
lat: [45..90]
lon: [270..357.5]
Number Of Attributes: 16
NMO : 0
_FillValue : -9.96921e+36
actual_range : ( -68.57001, 68.56999 )
valid_range : ( -125, 160 )
missing_value : -9.96921e+36
parent_stat : Other
statistic : Mean
level_desc : Multiple levels
dataset : CDC Derived NCEP Reanalysis Products
var_desc : v-wind
least_significant_digit : 1
precision : 2
units : m/s
long_name : DJF: Monthly mean v wind
level : 500
average_op_ncl : dim_avg_n over dimension(s): time
Variable: vAvgTime_lo
Type: float
Total Size: 2736 bytes
684 values
Number of Dimensions: 2
Dimensions and sizes: [lat | 19] x [lon | 36]
Coordinates:
lat: [45..90]
lon: [270..357.5]
Number Of Attributes: 16
NMO : 0
_FillValue : -9.96921e+36
actual_range : ( -68.57001, 68.56999 )
valid_range : ( -125, 160 )
missing_value : -9.96921e+36
parent_stat : Other
statistic : Mean
level_desc : Multiple levels
dataset : CDC Derived NCEP Reanalysis Products
var_desc : v-wind
least_significant_digit : 1
precision : 2
units : m/s
long_name : DJF: Monthly mean v wind
level : 500
average_op_ncl : dim_avg_n over dimension(s): time
Variable: diff_u
Type: float
Total Size: 2736 bytes
684 values
Number of Dimensions: 2
Dimensions and sizes: [lat | 19] x [lon | 36]
Coordinates:
lat: [45..90]
lon: [270..357.5]
Number Of Attributes: 16
average_op_ncl : dim_avg_n over dimension(s): time
level : 500
long_name : DJF: Monthly mean u wind
units : m/s
precision : 2
least_significant_digit : 1
var_desc : u-wind
dataset : CDC Derived NCEP Reanalysis Products
level_desc : Multiple levels
statistic : Mean
parent_stat : Other
missing_value : -9.96921e+36
valid_range : ( -125, 160 )
actual_range : ( -68.04001, 124.4 )
_FillValue : -9.96921e+36
NMO : 0
Variable: diff_v
Type: float
Total Size: 2736 bytes
684 values
Number of Dimensions: 2
Dimensions and sizes: [lat | 19] x [lon | 36]
Coordinates:
lat: [45..90]
lon: [270..357.5]
Number Of Attributes: 16
average_op_ncl : dim_avg_n over dimension(s): time
level : 500
long_name : DJF: Monthly mean v wind
units : m/s
precision : 2
least_significant_digit : 1
var_desc : v-wind
dataset : CDC Derived NCEP Reanalysis Products
level_desc : Multiple levels
statistic : Mean
parent_stat : Other
missing_value : -9.96921e+36
valid_range : ( -125, 160 )
actual_range : ( -68.57001, 68.56999 )
_FillValue : -9.96921e+36
NMO : 0
More information about the ncl-talk
mailing list