[ncl-talk] change in vector spacing when taking difference of two wind fields

mberdahl at envsci.rutgers.edu mberdahl at envsci.rutgers.edu
Tue Jun 9 14:42:09 MDT 2015


Hi Alex,
I just tried and the spacing looks to be right now! Thanks very much! The
only thing I don't understand what you mean is to change the long names.
Thanks!
Mira

> Mira,
>
> I don’t know the example pages well so I can’t really point to a specific
> code example but usually lat and lon are stored in your netcdf file just
> like every other variable.
>
> Here is a way we can cheat the system as long as your lats/lons don’t
> change (logically easier but not exactly proper).
>
> You should be able to set diff_u = uAvgTime_hi so that all of the metadata
> is copied over to the new variable.  The issue with this is you would need
> to change long names and other stuff for completeness.  After you do that
> you can do you subtraction and all the metadata should remain with the
> variable: diff_u = uAvgTime_hi - uAvgTime_lo.  Similarly done for diff_v.
>
> Not the clean way of doing it but I’m not the best when pulling variables
> using the named dimension convention, i.e. specifying the lat/lon ranges.
> Maybe one of the NCAR folks can provide some insight to using that way.
>
> This way however should get you what you need with regards to lats/lons
> being associated with your data and hopefully get your plot working.
>
> Hope that helps,
> -Alex
>
>
> On Jun 9, 2015, at 1:34 PM, mberdahl at envsci.rutgers.edu wrote:
>
>>
>> Hi Alex,
>> Thanks for the suggestion.  I was wondering if it had anything to do
>> with
>> that.  When you say pull the lat Lon, I'm not exactly sure what you mean
>> to do.  Do you have an example to point me to?
>> Thanks!
>> Mira
>>> Mira,
>>>
>>> You have lost your lats/lons in the subtraction.  It may have something
>>> to
>>> do with that. You might want to pull them in at the beginning and then
>>> associate them with diff_u and diff_v using:
>>>
>>> diff_u at lon2d  = lon
>>> diff_u at lat2d   = lat
>>>
>>> diff_v at lon2d  = lon
>>> diff_v at lat2d   = lat
>>>
>>> Just pull the lats and lons on the same subsection that you are pulling
>>> u/v.
>>>
>>> -Alex
>>>
>>> On Mon, Jun 8, 2015 at 9:30 PM, <mberdahl at envsci.rutgers.edu> wrote:
>>>
>>>> Hi Alex,
>>>> I changed it so the vectors were appropriately sized.  I just tried
>>>> the
>>>> script with removing the second Magnitude definition and the spacing
>>>> is
>>>> still the same.  Any other thoughts?
>>>> Mira
>>>>> Mira,
>>>>>
>>>>> Why did you change vcres at vcRefMagnitudeF = 10.0 to
>>>> vcres at vcRefMagnitudeF
>>>> =
>>>>> 1.0 after the first 2 plots were made?  This is likely what is
>>>>> causing
>>>> the
>>>>> difference.
>>>>>
>>>>> -Alex
>>>>>
>>>>> On Mon, Jun 8, 2015 at 8:12 PM, <mberdahl at envsci.rutgers.edu> wrote:
>>>>>
>>>>>> Hi all,
>>>>>> I have a 3 panel plot which shows the winds over a region.  The
>>>>>> first
>>>>>> two
>>>>>> panels show averages for selected years, and the third panel shows
>>>> the
>>>>>> difference between the top 2 panels.  My problem is that the spacing
>>>> of
>>>>>> wind vectors is much denser in the first two plots than the third
>>>>>> "difference" plot.  Is there a reason why the grid spacing would
>>>>>> suddenly
>>>>>> be different (more sparse) when displaying the difference of two
>>>>>> wind
>>>>>> fields?  The sizes (dimensions) of the u and v fields remain the
>>>>>> same
>>>>>> for
>>>>>> each panel.
>>>>>> My script and the VarSummaries for some of the variables are below.
>>>>>> I will try to attach the pdf of the figure here if possible.
>>>>>> Thanks very much for any help.
>>>>>> Mira
>>>>>>
>>>>>> ************************************************************
>>>>>>
>>>>>>
>>>>>> 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
>>>>>> ;************************************************
>>>>>> a = addfile("uwnd.mon.mean.nc","r")
>>>>>> print(a)
>>>>>> b = addfile("vwnd.mon.mean.nc","r")
>>>>>>
>>>>>> ;************************************************
>>>>>> ; read in zonal [u] and meridional [v] winds (July)
>>>>>> ;************************************************
>>>>>>
>>>>>> u = a->uwnd(0:803,{45:90},{270:357.5})
>>>>>> v = b->vwnd(0:803,{45:90},{270:357.5}) ; Get u, v, time (1),level
>>>>>> (1000hpa),latitude(-90:90) and longitude(0:360) data.
>>>>>>
>>>>>> printVarSummary(u)
>>>>>> printVarSummary(v)
>>>>>>
>>>>>> ; to take the average over the first dimensions (time)
>>>>>> ;uAvgTime = dim_avg_n_Wrap(u,0)
>>>>>> ;vAvgTime = dim_avg_n_Wrap(v,0)
>>>>>>
>>>>>> ;printVarSummary(vAvgTime)
>>>>>> ;printVarSummary(uAvgTime)
>>>>>>
>>>>>> ; calculate speed from u and v components
>>>>>> ;speed = sqrt(uAvgTime^2+vAvgTime^2)
>>>>>>
>>>>>> ; Calculate the seasonal averages.
>>>>>> uDJF = month_to_season(u, "DJF")
>>>>>> vDJF = month_to_season(v, "DJF")
>>>>>>
>>>>>> printVarSummary(uDJF)
>>>>>> printVarSummary(vDJF)
>>>>>>
>>>>>> ; from the matlab script i wrote: findExtremeYrs, i pulled out the
>>>>>> extreme
>>>>>> years (> or < 1std) that i want to average and plot here.
>>>>>>
>>>>>> ; for ans =   4 (NAO)
>>>>>> ; yearList_hi = 1973        1975        1983        1989        1995
>>>>>> 2000        2007        2012
>>>>>> ; yearList_lo = 1963        1964        1965        1969        1977
>>>>>> 1979        1996        1997        2010        2011
>>>>>>
>>>>>> ; ans = 5 (pressure)
>>>>>> ;yearList_hi = 1963        1965        1968        1969        1970
>>>>>> 1971        1977        1997        2006        2011
>>>>>> ;yearList_lo = 1973        1989        1990        1991        1995
>>>>>> 1999        2000        2007        2012
>>>>>>
>>>>>> ;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=10
>>>>>> etc.
>>>>>>
>>>>>> uDJF_NAO_lo = uDJF((/10,11,12,16,24,26,43,44,57,58/),:,:)
>>>>>> uDJF_NAO_hi = uDJF((/20,22,30,36,42,47,54,59/),:,:)
>>>>>>
>>>>>> vDJF_NAO_lo = vDJF((/10,11,12,16,24,26,43,44,57,58/),:,:)
>>>>>> vDJF_NAO_hi = vDJF((/20,22,30,36,42,47,54,59/),:,:)
>>>>>>
>>>>>> uAvgTime_hi = dim_avg_n_Wrap(uDJF_NAO_hi,0)
>>>>>> uAvgTime_lo = dim_avg_n_Wrap(uDJF_NAO_lo,0)
>>>>>>
>>>>>> printVarSummary(uAvgTime_hi)
>>>>>> printVarSummary(uAvgTime_lo)
>>>>>>
>>>>>> vAvgTime_hi = dim_avg_n_Wrap(vDJF_NAO_hi,0)
>>>>>> vAvgTime_lo = dim_avg_n_Wrap(vDJF_NAO_lo,0)
>>>>>>
>>>>>> printVarSummary(vAvgTime_hi)
>>>>>> printVarSummary(vAvgTime_lo)
>>>>>>
>>>>>>
>>>>>>
>>>>>> ;************************************************
>>>>>> ; create plot
>>>>>> ;************************************************
>>>>>> wks = gsn_open_wks("eps","Panel_NAO")           ; open a ps file
>>>>>> plot = new(3,graphic)                           ; create a plot
>>>>>> array
>>>>>>
>>>>>> vcres                   = True
>>>>>> vcres at gsnDraw           = False                 ; dont draw
>>>>>> vcres at gsnFrame          = False                 ; dont advance frame
>>>>>> vcres at cnInfoLabelOn     = False                 ; trn off cn info
>>>> label
>>>>>>
>>>>>> vcres = True                                    ; plot mods desired
>>>>>> vcres at gsnAddCyclic = False                      ; has to do with
>>>>>> wrapping
>>>>>> the longitude at 0/360
>>>>>> 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
>>>>>>
>>>>>> ;************************************************
>>>>>> ; Choose a subregion
>>>>>> ;************************************************
>>>>>> vcres at mpFillOn = False                          ; turn off gray fill
>>>>>> vcres at mpOutlineBoundarySets = "National"        ; turn on country
>>>>>> boundaries
>>>>>> vcres at mpGeophysicalLineColor = "Navy"           ; color of cont.
>>>>>> outlines
>>>>>> vcres at mpGeophysicalLineThicknessF = 1.5         ; thickness of
>>>> outlines
>>>>>>
>>>>>> vcres at mpMaxLatF = 90                            ;maximum latitude
>>>>>> vcres at mpMinLatF = 45                            ;minimum latitude
>>>>>> vcres at mpMaxLonF = 357.5                         ;maximum longitude
>>>>>> vcres at mpMinLonF = 270                           ;minimum longitude
>>>>>>
>>>>>> diff_u = uAvgTime_hi - uAvgTime_lo
>>>>>> diff_v = vAvgTime_hi - vAvgTime_lo
>>>>>>
>>>>>> printVarSummary(diff_u)
>>>>>> printVarSummary(diff_v)
>>>>>>
>>>>>> vcres at gsnLeftString = "DJF High NAO"
>>>>>> plot(0) = gsn_csm_vector_map_ce(wks,uAvgTime_hi,vAvgTime_hi,vcres)
>>>>>>
>>>>>> vcres at gsnLeftString = "DJF Low NAO"
>>>>>> plot(1) = gsn_csm_vector_map_ce(wks,uAvgTime_lo,vAvgTime_lo,vcres)
>>>>>>
>>>>>>
>>>>>> vcres at vcRefMagnitudeF = 1.0                     ; define vector ref
>>>> mag
>>>>>> vcres at vcRefLengthF = 0.045                      ; define length of
>>>> vec
>>>>>> ref
>>>>>> vcres at gsnLeftString = "Difference of High - Low"
>>>>>> plot(2) = gsn_csm_vector_map_ce(wks, diff_u, diff_v,vcres)
>>>>>>
>>>>>> ;************************************************
>>>>>> ; create panel
>>>>>> ;************************************************
>>>>>> resP = True                                     ; modify the panel
>>>> plot
>>>>>> resP at txString = "NAO"
>>>>>> gsn_panel(wks,plot,(/3,1/),resP)                ; now draw as one
>>>> plot
>>>>>>
>>>>>>
>>>>>>
>>>>>> end
>>>>>>
>>>>>>
>>>>>>
>>>>>> OUTPUT
>>>>>> *******************************************************
>>>>>> 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: 17
>>>>>>  NMO : 0
>>>>>>  _FillValue :  -9.96921e+36
>>>>>>  actual_range :        ( -15.43516, 19.79167 )
>>>>>>  parent_stat : Other
>>>>>>  statistic :   Mean
>>>>>>  level_desc :  Surface
>>>>>>  dataset :     CDC Derived NCEP Reanalysis Products
>>>>>>  var_desc :    v-wind
>>>>>>  least_significant_digit :     1
>>>>>>  precision :   2
>>>>>>  missing_value :       -9.96921e+36
>>>>>>  scale_factor :         1
>>>>>>  add_offset :   0
>>>>>>  units :       m/s
>>>>>>  valid_range : ( -102.2, 102.2 )
>>>>>>  long_name :   DJF: Monthly Mean Meridional Wind at sigma level
>>>> 0.995
>>>>>>  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: 17
>>>>>>  NMO : 0
>>>>>>  _FillValue :  -9.96921e+36
>>>>>>  actual_range :        ( -15.43516, 19.79167 )
>>>>>>  parent_stat : Other
>>>>>>  statistic :   Mean
>>>>>>  level_desc :  Surface
>>>>>>  dataset :     CDC Derived NCEP Reanalysis Products
>>>>>>  var_desc :    v-wind
>>>>>>  least_significant_digit :     1
>>>>>>  precision :   2
>>>>>>  missing_value :       -9.96921e+36
>>>>>>  scale_factor :         1
>>>>>>  add_offset :   0
>>>>>>  units :       m/s
>>>>>>  valid_range : ( -102.2, 102.2 )
>>>>>>  long_name :   DJF: Monthly Mean Meridional Wind at sigma level
>>>> 0.995
>>>>>>  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:   [19] x [36]
>>>>>> Coordinates:
>>>>>> Number Of Attributes: 1
>>>>>>  _FillValue :  -9.96921e+36
>>>>>>
>>>>>> Variable: diff_v
>>>>>> Type: float
>>>>>> Total Size: 2736 bytes
>>>>>>            684 values
>>>>>> Number of Dimensions: 2
>>>>>> Dimensions and sizes:   [19] x [36]
>>>>>> Coordinates:
>>>>>> Number Of Attributes: 1
>>>>>>  _FillValue :  -9.96921e+36
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> ncl-talk mailing list
>>>>>> ncl-talk at ucar.edu
>>>>>> List instructions, subscriber options, unsubscribe:
>>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>
>




More information about the ncl-talk mailing list