[ncl-talk] Polymarker on lon/lat grid does not appear

Mary Haley haley at ucar.edu
Mon Oct 31 09:17:02 MDT 2016


Orestis,

Whenever people try to draw markers and lines on a map plot using lat/lon
coordinates and they don't show up, it's usually because the lat/lon values
they used were out-of-range of the plot.

You are using these values:

thissio_lat = 0.2732

thissio_lon =0.1720


Which seems a bit suspicious to me.  You must use values of degrees, and
not radians or any other units. Maybe what you meant to do was this:


thissio_lat  = f1[0]->lat({0.2732},{0.1720})

thissio_lon = f1[0]->lon({0.2732},{0.1720})


The second issue is that you are setting this, which tells NCL to draw the
marker before drawing other plot components:


  mkres at tfPolyDrawOrder = "PreDraw"

Try setting this instead:

  mkres at tfPolyDrawOrder = "PostDraw"


The third issue may be the size of the marker you chose:


  mkres at gsMarkerSizeF = 0.03

I would comment this out initially, and if you don't see anything, try a
value like:

  mkres at gsMarkerSizeF = 5.0


There are a number of other issues with your script that makes me worry
that the data is not being plotted correctly.


For starters, if you set this:


  res at tfDoNDCOverlay        = True

Then you are telling NCL that you know the exact map projection that your
data is in, and hence you do NOT want to set these resources:

  res at sfXCStartV = nbeglon                               ; minimal length
(rotated): embedd data into map

  res at sfXCEndV =  nendlon                                 ; maximal length
(rotated): embedd data into map

  res at sfYCStartV = nbeglat                               ; minimal length
(rotated): embedd data into map

  res at sfYCEndV = nendlat                                  ; maximal length
(rotated): embedd data into map




--Mary




On Fri, Oct 28, 2016 at 12:37 AM, Orestis Speyer <ospeyer at noa.gr> wrote:

> Dear all,
>
>
>
> I am trying to plot a dot (a station) in a map but the dot does not
> appear.  I looked into the archive search but could not find a solution. I
> attach the relevant code below. I am not sure if the problem is a
> map/transform/projection issue, an issue of Draw priority or simply NCL
> does not know where to plot the dot (as the main plot coordinates are
> created "dynamically"). The frustrating/interesting part is that with
> overlay (ovelay countour lines to a basic countour map plot in another
> script) the dot appears.
>
>
>
> *Here is the code (sorry for the length). Thank you for your time*.
>
>
>
> ;================================================;
>
> ; horizontal contour plot with station
>
> ;================================================;
>
>
>
> 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"
>
>
>
> ; ================================================;
>
> begin
>
> ;=================================================;
>
> ; choose wks
>
> ;=================================================;
>
>
>
> nbeglon = (/-0.20/)
>
> nbeglat = (/-0.2/) ; chooses begin of lon/lat(rotated coordinates of the
> data)
>
> nendlon = (/0.55/)
>
> nendlat = (/0.58/)
>
>
>
> starthour = 0
>
> endhour   = 2      ;for three days
>
> ndata     = 72
>
> aa = starthour+1;
>
> bb = endhour;
>
> name = "1month"
>
>
>
> PRM = "totDRE_surface" ;SOBS_RAD";"T_2M";
>
> UNIT = "  [delta W/m^2]"
>
> SCL1 = -2.6;2.5;.4;0.2 ;-0.5;-1
>
> SCL2 = 2.6;2.5;.4;0.2  ;0.5;1
>
> SCL3 = 0.2;0.05;0.25 ;0.1
>
>
>
> IYR = 2013;
>
> MON = "12" ; MONTH DEC OR JAN (01)
>
>
>
> filename = ("winter."+IYR+"."+PRM+name+"")
>
>
>
> ;=================================================;
>
> ; choose level
>
> ;=================================================;
>
>   lvl  = 39
>
> ;=================================================;
>
> ; open file and read in data, I cut this out as It does not matter
>
> ;=================================================;
>
>
>
>
>
> ;================================================;
>
> ; read in data    I cut this out as It does not matter
>
> ;================================================;
>
>
>
> ;vardumbs is the variable I'm going to countour (The basic countour plot
> to which I want to add a dot)
>
>
>
> dum1    = dim_avg_n(vardumbs,0)
>
>
>
> plotvar = (dum1)   ; in ppb
>
> aveplotvar = dim_avg_n(plotvar,0)   ;
>
> aveplotvar2 = dim_avg_n(aveplotvar,0)
>
>
>
> printVarSummary (plotvar)
>
> printMinMax (plotvar, True)
>
> delete(dum1)
>
>
>
>
>
>   lat = f1[0]->lat({nbeglat:nendlat},{nbeglon:nendlon}) ;to retrieve lat
>
>   lon = f1[0]->lon({nbeglat:nendlat},{nbeglon:nendlon}) ;to retrieve lon
>
>   nlat = dimsizes(lat)                                  ;this gives
> nlat=330
>
>   nlon = dimsizes(lon)                                  ;this gives
> nlon=384
>
>
>
> ;================================================;
>
> ; Create wks according to definition
>
> ;================================================;
>
>
>
>  wks   = gsn_open_wks ("png",filename)
>
>
>
> ;================================================;
>
> ; Define Colormap
>
> ;================================================;
>
>
>
> cmap = (/"white","black","white","lemonchiffon1",\
>
>         "lightblue1", "lightblue2","deepskyblue1","
> deepskyblue3","orchid3",\
>
>         "darkorchid","blueviolet","darkorchid4","deeppink2"/)
>
>
>
> gsn_define_colormap(wks,"temp_19lev")   ;meteoro
>
>
>
> ;===================================;
>
> ; Manage ressources and title
>
> ;===================================;
>
> title = ""+PRM+" "+UNIT+""
>
> tdate = "20.12.2013 - 21.1.2014 "
>
>
>
> ;================================================;
>
> ; Set some resources that will apply to the base
>
> ; contour/map plot
>
> ;================================================;
>
>
>
>
>
>  res                       = True
>
>  res at tiMainString          = " "
>
>  res at cnLevelSelectionMode  = "ManualLevels"                             ;
> set manual contour levels
>
>  res at lbLabelAngleF         = 45
> ; angle labels
>
>  res at cnMinLevelValF        =  SCL1
>
>  res at cnMaxLevelValF        =  SCL2
>
>  res at cnLevelSpacingF       =  SCL3
>
>  res at cnLabelBarEndStyle    =  "ExcludeOuterBoxes"
>
>
>
>  res at cnFillPalette = "temp_19lev"   ;meteor
>
>
>
>  res at gsnLeftString         = " "
>
>  res at gsnRightString        = " "
>
> ;===============================================;
>
> ; standard stuff
>
> ;===============================================;
>
>
>
>  res at gsnDraw                = False             ; Do not draw plot now
> (helps adding stuff to the plot or producing labels etc)
>
>  res at gsnFrame               = False             ; Do not advance frame
>
>
>
>  res at cnFillOn               = True              ; color Fill
>
>  res at cnFillMode             = "AreaFill"        ; raster mode
>
>  res at cnRasterSmoothingOn    = True
>
>  res at cnRasterMinCellSizeF   = 0.0005
>
>  res at cnLinesOn              = True              ; Turn off contour lines
>
>  res at cnLineLabelsOn         = False             ; Turn off label of
> contour lines
>
>  res at cnMaxLevelCount        = 100
>
>
>
>  res at cnInfoLabelOn          = False             ; do not plot info label
>
>  res at gsnAddCyclic           = False             ; data is not cyclic
>
>
>
>  res at mpDataBaseVersion      = "MediumRes"       ; map resolution
>
>  res at mpProjection           = "CylindricalEquidistant"
>
>  res at mpOutlineBoundarySets  = "National"
>
>  res at mpFillOn               = True
>
>  res at mpPerimOn              = False
>
>  res at mpMaskAreaSpecifiers   = (/"land"/)
>
>  res at mpFillDrawOrder        = "PreDraw"
>
>
>
>  res at mpGridAndLimbOn        = True             ; en- or disable lon lat
> lines
>
>  res at mpGeophysicalLineThicknessF = 2.5
>
>
>
>  res at pmTickMarkDisplayMode  = "Always"
>
>  res at tmXTMinorOn            = False
>
>  res at tmYRMinorOn            = False
>
>
>
> ;=================================================;
>
> ; map projection
>
> ;=================================================;
>
>
>
>   res at tfDoNDCOverlay        = True
>
>   res at mpDataBaseVersion     = "HighRes"               ; map resolution
>
>   res at mpProjection          = "CylindricalEquidistant"  ; map projection
>
>   res at mpOutlineBoundarySets = "National"
>
>   res at mpCenterLonF = lon({rlon|0},{rlat|0})
>
>   res at mpCenterLatF = lat({rlon|0},{rlat|0})
>
>   res at mpLimitMode = "Corners"
>
>   res at mpLeftCornerLatF = lat(0,0)                     ; latitude left
> lower corner from model output
>
>   res at mpLeftCornerLonF = lon(0,0)                     ; longitude left
> lower corner from model output
>
>   res at mpRightCornerLatF = lat(nlat(0)-1,nlat(1)-1)    ; latitude right
> upper corner from model output
>
>   res at mpRightCornerLonF = lon(nlon(0)-1,nlat(1)-1)    ; longitutde right
> upper corner from model output
>
>
>
>   res at sfXCStartV = nbeglon                               ; minimal length
> (rotated): embedd data into map
>
>   res at sfXCEndV =  nendlon                                 ; maximal
> length (rotated): embedd data into map
>
>   res at sfYCStartV = nbeglat                               ; minimal length
> (rotated): embedd data into map
>
>   res at sfYCEndV = nendlat                                  ; maximal
> length (rotated): embedd data into map
>
>
>
> ;=================================================;
>
> ; Scaling
>
> ;=================================================;
>
>
>
>   res at vpWidthF  = 0.6                    ; change the aspect ratio
>
>   res at vpHeightF = 0.6
>
>   res at vpXF      = .1                     ; location of where plot starts
>
>   ;res at vpYF      = 1
>
>
>
>  bot_plot = gsn_csm_contour_map(wks,plotvar(:,:),res)
>
>
>
> ;-----------add polymarker-----------------;
>
>
>
>   light_gray = NhlNewColor(wks,0.85,0.85,0.85)         ; Add light gray
>
>
>
> mkres =True
>
> thissio_lat = 0.2732
>
> thissio_lon =0.1720
>
> mkres at gsMarkerIndex = 17     ; Filled circle
>
>   mkres at tfPolyDrawOrder = "PreDraw"
>
>   mkres at gsMarkerSizeF = 0.03
>
> Station = gsn_add_polymarker(wks,bot_plot,thissio_lon,thissio_lat,mkres)
>
>
>
> draw (bot_plot)
>
>
>
> ;*****************************************************
>
> ; Manually create and attach titles
>
> ;*****************************************************
>
>
>
> ;
>
> ; Attach some titles at the top.
>
> ;
>
>
>
>   res_text               = True
>
>   res_text at txFontHeightF = 0.03                       ; change font size
>
>   txid_top = gsn_create_text(wks, title, res_text)
>
>
>
>   amres                  = True
>
>   amres at amJust           = "BottomCenter"
>
>   amres at amParallelPosF   =  0.0    ; This is the center of the plot.
>
>   amres at amOrthogonalPosF = -0.72   ; This is above the top edge of the
> plot.
>
>   annoid_top = gsn_add_annotation(bot_plot, txid_top, amres)
>
>
>
>   res_text at txFontHeightF = 0.02                       ; change font size
>
>   txid_mid = gsn_create_text(wks, tdate,res_text)
>
>
>
>   amres at amOrthogonalPosF = -0.62  ; This is just below the previous title.
>
>   annoid_mid = gsn_add_annotation(bot_plot, txid_mid, amres)
>
>
>
>   pres = True
>
>   maximize_output(wks,pres)
>
>
>
> frame (wks)
>
> delete(plotvar)
>
>
>
>
>
> end
>
>
>
>
>
>
>
>
>
>
>
> Once again thank you,
>
>
>
>
>
> Orestis Speyer,
>
> Research Fellow, National Observatory of Athens
> Institute for Environmental Research and Sustainable Development
>
>
>
> _______________________________________________
> 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/20161031/fdbdc8e3/attachment.html 


More information about the ncl-talk mailing list