Re: coloring vectors using a scalar

From: Nicole Schiffer <nschiff2_at_nyahnyahspammersnyahnyah>
Date: Tue Nov 17 2009 - 14:41:46 MST

Mary-

Thank you for your help. I think I implemented the changes you suggested, but it is still coloring the vectors by magnitude. I attached the full script--relevant resources start at line 208 . Please let me know if any more information would be helpful.

Nicole

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Nicole Schiffer
* Graduate Research Assistant
* Department of Atmospheric Sciences
* University of Illinois, Urbana-Champaign
* Email: nschiff2 [at] illinois [dot] edu
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

----- "Mary Haley" <haley@ucar.edu> wrote:
| Hi Nicole,

|
I think you're almost there. The ***FieldData and sfDataArray resources should not be set by you. These are being set internally by the gsn_csm_vector_xxx routine.

Also, you don't need to set vcUseScalarArray, as this is set internally when you call gsn_csm_vector_scalar_map.

|
By default, the gsn_csm_vector_scalar_map routine should be coloring your vectors according to the given scalar field.

|
I've attached a sample script and PNG image to show this. Please let me know if you are not seeing the same results.

|
--Mary

|
| [image/png:vector-1.png]
|
|

|

|

|

On Nov 13, 2009, at 7:32 PM, Nicole Schiffer wrote:

| I'm trying to color vectors using a scalar with the gsn_csm_vector_scalar_map function. My understanding is that this should be the default behavior, but the vectors are still colored by magnitude. I've included a code snippet below. Commented code are options that I have tried in various combinations. Thanks.
|
| ; Open a workspace to begin creating the plot
| wsplot = gsn_open_wks("ps", "./graphs/anomavgNARR."+filemidout+"."+i)
|
| ; Change options for plot (res=True)
| res = True
|
| ; Color fill on, contours off, line labels off, manual level selection
| ; mode, spacing every 1.0 units, min value 270, max value 320, use
| ; entire color spectrum
| res@gsnSpreadColors = True
|
| ; set vector resources
| res@vfXCStride = 4
| res@vfYCStride = 4
| res@vcRefMagnitudeF = 100000.0
| res@vcRefLengthF = 0.008
| res@vcGlyphStyle = "LineArrow"
| res@vcRefAnnoOrthogonalPosF = -1.0
| res@vcRefAnnoParallelPosF = 1.0
| res@vcLineArrowThicknessF = 3.0
| res@vcVectorDrawOrder = "PostDraw"
| res@vcMapDirection = False
|
| ;res@sfDataArray = vectorcolor
| ;res@vcLevelSelectionMode = "ExplicitLevels"
| res@vcScalarFieldData = vectorcolor
| ;res@vcVectorFieldData =
| res@vcMonoLineArrowColor = False
| ;res@sfMissingValueV = -999
| res@vcScalarMissingValColor = -1
| res@vcUseScalarArray = True
| ;res@vcLevelColors = (/0,1,2,3/)
| ;res@vcLevels = (/-0.5,0,0.5/)
| ;res@vcLevelCount = 3
|
| ; Draw map boundaries: coastlines, national boundaries, and states/provinces
| res@mpAreaMaskingOn = False
| res@mpFillOn = False
| res@mpDataBaseVersion="Ncarg4_1"
| res@mpOutlineBoundarySets = "National"
| res@mpOutlineSpecifiers = (/"Canada:Provinces", "United States:States", "Mexico:States"/)
|
| ; Always display tick marks
| res@pmTickMarkDisplayMode = "Always"
| ; Do not add cyclic reference point, maximize plot to workstation size,
| ; orient paper horizontally, 0.5 inch paper margin
| res@gsnAddCyclic = False
| res@gsnMaximize = True
| res@gsnPaperOrientation = "landscape"
| res@gsnPaperMargin = 0.5
| ; blank strings above image
| res@gsnCenterString = ""
| res@gsnRightString = ""
| res@gsnLeftString = ""
| res@gsnScalarContour = False
|
| ; Define map projection properties
| res@mpProjection = "LambertConformal"
| res@mpLambertMeridianF = 253
| res@mpLambertParallel1F = 50
| res@mpLambertParallel2F = 50
|
| ; Define display boundaries
| res@mpLimitMode = "Corners"
| res@mpLeftCornerLatF = lat2d(0,nlat/6)
| res@mpLeftCornerLonF = lon2d(0,nlat/6)
| res@mpRightCornerLatF = lat2d(mlon/2,nlat-nlat/3)
| res@mpRightCornerLonF = lon2d(mlon/2,nlat-nlat/3)
| ; map perimeter on, map fill on, no map rotation
| res@mpPerimOn = True
| res@mpCenterRotF = 0
| ; 10deg lat-lon grid spacing, show lat-lon grid, make lat-lon lines
| ; dashed
| res@mpGridSpacingF = 10.0
| res@mpGridAndLimbOn = True
| res@mpGridLineDashPattern = 16
| ; NCDOverlay is false
| res@tfDoNDCOverlay = False
|
| ; Create the label bar for the colored contours
| res@lbLabelFontHeightF = 0.020
| res@lbTitleString = ""
| res@lbLabelFont = 21
| res@lbLabelAutoStride = False
| res@lbLabelStride = 10
| res@lbOrientation = "Vertical"
| res@pmLabelBarOrthogonalPosF = 0.02
| res@pmLabelZone = 2
| res@lbBoxLinesOn = True
|
| ; Define the colorscale for the plot and reverse it (R-W-B)
| gsn_define_colormap(wsplot, "cosam")
|
| ; Create the plot
| plot = gsn_csm_vector_scalar_map(wsplot, plotthisu(:,:), plotthisv(:,:), vectorcolor(:,:), res)
|
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| * Nicole Schiffer
| * Graduate Research Assistant
| * Department of Atmospheric Sciences
| * University of Illinois, Urbana-Champaign
| * Email: nschiff2 [at] illinois [dot] edu
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
| _______________________________________________
| ncl-talk mailing list
| List instructions, subscriber options, unsubscribe:
| http://mailman.ucar.edu/mailman/listinfo/ncl-talk
|

Received on Tue Nov 17 14:42:00 2009

This archive was generated by hypermail 2.1.8 : Tue Nov 17 2009 - 17:27:42 MST