[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 dont know the example pages well so I cant 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 dont
> 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 Im 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