[ncl-talk] Wind Speed Vector plots on contour plot using ECMWF analysis
Alan Brammer
abrammer at albany.edu
Tue Jul 18 10:09:17 MDT 2017
addition, subtraction etc on a variable and returning to a new variable
doesn't retain any of the original metadata.
U10_0 = (u10*u1)+u2 ;y=ax+b siendo x=u10
V10_0 = (v10*v1)+v2 ;y=ax+b siendo x=v10
Your printVarSummary() will have shown U10_0 as an array with no attributes
and no coordinates.
You can apply a copy_VarCoords(u10, U10_0) to copy over the needed info
after you've defined the new variable. Also similar for the meridional
wind and magnitude variable.
I'm also not sure you have to apply the offset and scale factor yourself.
I was under the impression that NCL did this automatically, but you'll work
this out pretty quickly once you can plot the data.
Good luck,
Alan
On Tue, Jul 18, 2017 at 11:34 AM, Lara Quitián Hernández <
laraquitianhernandez at gmail.com> wrote:
> Good afternoon from Spain,
>
> I'm attempting to produce a vector/contour plot of a specific area from
> ECMWF analysis data. Firstly, my script decodes the ECMWF variables u10
> and v1 with the "doubletofloat" function. Secondly, I calculate the wind
> module (SPD) in order to generate a contour plot of the wind speed
> (succesfully obtained).
> The problem arises when I try to overlay the vector plot on this contour
> plot. In this case, I obtained a vector plot that has nothing to do with
> the contour plot.
>
> Appear to be specific problems associated with coordinates and other
> issues, because I received error messages such as: "A valid longitude
> coordinate array should have a 'units' attribute equal to one of the
> following values: (0) 'degrees_east' 'degrees-east' 'degree_east'
> 'degrees east' 'degrees_E' 'Degrees_east' 'degree_E' 'degreeE' 'degreesE'
> 'deg east' "
>
> Here is the script:
>
> 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/wrf/WRFUserARW.ncl"
>
>
> begin
>
> input = addfile("../10wind_an.nc", "r")
>
> Lon = input->longitude
> Lat = input->latitude
> v10 = input->v10
> u10 = input->u10
> timean =input->time
>
> ;;;;;;;; variables u10 y v10 se encuentran codificadas ;;;;;;;;;;;;;;
>
> u1 = doubletofloat(u10 at scale_factor) ;a=scale_factor
> u2 = doubletofloat(u10 at add_offset) ;b=add_offset
>
> v1 = doubletofloat(v10 at scale_factor)
> v2 = doubletofloat(v10 at add_offset)
>
>
> U10_0 = (u10*u1)+u2 ;y=ax+b siendo x=u10
> V10_0 = (v10*v1)+v2 ;y=ax+b siendo x=v10
>
> ;printVarSummary(U10_0) ;24x141x201
>
> ;Wind Speed module
> SPD_0=(U10_0^2+V10_0^2)^(0.5)
>
> ; Set basic resources
> res=True
> pltres = True ; Plotting resources
> mpres = True ; Map resources
> time_utc=cd_calendar(timean,3)
> ntimes = dimsizes(time_utc)
>
> do it = 0,ntimes-1,1 ; TIME LOOP
>
> SPD = SPD_0(it,:,:)
> U10 = U10_0(it,:,:)
> V10 = V10_0(it,:,:)
>
> ;printVarSummary(U10) ;141x201
>
> SPD at description = "Wind Speed"
> SPD at units = "m/s"
>
> wks_type = "png"
> wks_type at wkWidth = 2000
> wks_type at wkHeight = 2000
> wks = gsn_open_wks(wks_type, "../spd_AN/SPD_AN_" + time_utc(it) + "")
> gsn_define_colormap(wks,"BlAqGrYeOrRe")
>
>
> res at cnFillOn = True ; turn on color for
> contours
> res at cnLinesOn = False ; turn off contour lines
> res at cnLineLabelsOn = False ; turn off contour line
> labels
> res at gsnScalarContour = True ; contours desired
> res at cnFillPalette = "WhiteBlueGreenYellowRed"
>
> res at mpLandFillColor = "gray" ; set land to be gray
> res at mpMinLatF = 26.50 ; set the
> minimum latitude
> res at mpMaxLatF = 40.00 ; set the
> maximum latitude
> res at mpMinLonF = -30.50 ; set the
> minimum longitude
> res at mpMaxLonF = -11.50
>
> res at lbOrientation = "Vertical" ; vertical label bar
> res at pmLabelBarOrthogonalPosF = -0.01 ; move label bar closer
>
> ; note, when doing a subregion, NCL determines the range of the data from
> ; the full domain. If you wish to just consider the domain you are
> plotting,
> ; you must manually set those levels.
>
> res at cnLevelSelectionMode = "ManualLevels" ; set manual contour
> levels
> res at cnMinLevelValF = 0.0 ; set min contour level
> res at cnMaxLevelValF = 24 ; set max contour level
> res at cnLevelSpacingF = 2.0 ; set contour spacing
>
> res at vcRefMagnitudeF = 4.0 ; define vector ref mag
> res at vcRefLengthF = 0.045 ; define length of vec
> ref
> res at vcRefAnnoOrthogonalPosF = -1.0 ; move ref vector
> res at vcRefAnnoArrowLineColor = "black" ; change ref vector
> color
> res at vcRefAnnoArrowUseVecColor = False ; don't use vec color
> for ref
>
> res at vcGlyphStyle = "WindBarb" ; turn on curly vectors
> res at vcLineArrowColor = "white" ; change vector color
> res at vcLineArrowThicknessF = 2.0 ; change vector
> thickness
> res at vcVectorDrawOrder = "PostDraw" ; draw vectors last
>
> plot=gsn_csm_vector_scalar_map_ce(wks,U10,V10,SPD,res)
>
> draw(plot)
> frame(wks)
>
> end do
> end
>
> ----
>
> Any help would be really appreciated. Thank you in advance.
>
> Regards,
> Lara
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170718/e265bce7/attachment.html
More information about the ncl-talk
mailing list