[ncl-talk] changing tick marks

Mary Haley haley at ucar.edu
Mon Jul 28 21:46:32 MDT 2014


Hi Michael,

It looks like you have a curvilinear grid.  The information I gave you was
assuming you had a rectilinear grid, which means your data contains 1D
lat/lon coordinate arrays attached to it.

With a curvilinear grid, you have to read the 2D lat/lon coordinate values
off the file separately and attach them to your data.

Can you do a "printVarSummary" on the two variables you are trying to plot,
so I can see what kind of metadata they have:

printVarSummary(potTavg)
printVarsummary(Tavg)

This will help me determine what kind of grid you have, and hopefully what
the lat/lon arrays associated with it are.

Better yet, if you can provide me with your full script and data (you can
do this offline), then I can probably quickly provide you with an NCL
script that will plot it.

Thanks,

--Mary


On Mon, Jul 28, 2014 at 1:14 AM, Michael Hemming <
michael.hemming at mpimet.mpg.de> wrote:

>  Hi Mary,
>
> Thanks for replying but it doesn't seem to work, it complains:
>
> 'check_for_y_lat_coord: Warning: data does not contain a valid latitude
> coordinate array or doesn't contain one at all..'
>
> and the same for the lon_coord
>
> I'm confused as Ferret plots the data with the correct lat and lon.
>
> Is there something else I am missing? the only thing I changed within the
> code was the removal of the two lines you stated below and the addition of
> '_map' to the gsn command.
>
> thanks,
> Michael
>
>
> On 27/07/2014 19:48, Mary Haley wrote:
>
>  Hi Michael,
>
>  Part of the problem is that you've set the minimum of your X axis (the
> longitude axis to 0):
>
>  res at trXMinF                 = 0                    ; set minimum X-axis
> value
> res at trXMaxF                = 30                    ; set maximum X-axis
> value
>
>  This is causing your longitudes to only go from 0 to 30, and hence you
> are not going to see any labels or tickmarks at negative longitude values.
>
>  I suggest not setting the tr*M**F resources at all, unless you need to
> zoom in on the plot for some reason.
>
>  Also, if you are indeed plotting lat/lon data, you should be calling
> "gsn_csm_contour_map" and not "gsn_csm_contour".  The former will put draw
> contours over a map, whereas the latter only draws a contour plot. For
> examples of using gsn_csm_contour_map, see:
>
>  http://www.ncl.ucar.edu/Applications/cylineq.shtml
>
>  Note that some of these examples are using "gsn_csm_contour_map_ce",
> which is the same thing.  gsn_csm_contour_map will draw a cylindrical
> equidistant map plot by default, unless you change the map projection.
>
>  --Mary
>
>
>
> On Sat, Jul 26, 2014 at 7:44 AM, Hemming, Michael <
> michael.hemming at mpimet.mpg.de> wrote:
>
>>  Hey everyone,
>>
>> I am having trouble understanding how to alter tickmarks on a contour
>> plot. I want to change my index numbers on the x and y axis to lat and lon
>> values. I have been trying to use the example given here:
>> http://www.ncl.ucar.edu/Applications/Scripts/tm_2.ncl
>>
>> Here is my code ( I have only tried altering the second plot out of the 2
>> e.g. for plot1(1)..):
>>
>> ;----------MPIOM vs. ICON comparison plots
>>
>>
>>
>> wks = gsn_open_wks("x11","MPIOM_vs_ICON_panelplot_surface")
>> gsn_define_colormap(wks,"gui_default")
>>
>>
>> plot1 = new(2,graphic)
>>
>> res at gsnDraw            = False                    ; don't draw
>> res at gsnFrame               = False                              ; don't
>> advance frame
>> resP                = True
>> res at tiYAxisString           = "Latitude"
>> res at tiXAxisString           = "Longitude"
>> resP at txString               = "Surface T averaged for years 01-99"
>> res at lbOrientation         = "vertical"                ; vertical label
>> bar
>>
>> res at trXMinF                 = 0                      ; set minimum
>> X-axis value
>> res at trXMaxF                 = 40                    ; set maximum X-axis
>> value
>> res at trYMinF                = 0                    ; set minimum Y-axis
>> value
>> res at trYMaxF                 = 120                    ; set maximum
>> Y-axis value
>> res at tiMainString           = "MPIOM exp 12"
>>
>>
>> plot1(0)             = gsn_csm_contour(wks,Tavg(1,:,:),res)
>>
>>
>> res at trXMinF                 = 0                    ; set minimum X-axis
>> value
>> res at trXMaxF                = 30                    ; set maximum X-axis
>> value
>> res at trYMinF                 = 0                    ; set minimum Y-axis
>> value
>> res at trYMaxF                 = 80                    ; set maximum Y-axis
>> value
>> res at tiMainString            = "ICON NOSH.UPW"
>>
>> res at tmXBMode        = "Explicit"
>> res at tmXBValues      = (/-44.5,-27.5,-5.5,14.5,34.5/)
>> res at tmXBLabels      = "" + res at tmXBValues
>> res at tmXBMinorValues = ispan(0,30,1)
>>
>>
>>
>>
>> plot1(1)             = gsn_csm_contour(wks,potTavg(1,:,:),res)
>>
>>
>> gsn_panel(wks,plot1,(/1,2/),resP)
>>
>>
>> I want longitude from -44.5 E to 34.5 W, once I know how to do it for
>> longitude, I can then apply the code to the lat.
>>
>> thanks in advance!
>>
>> Michael
>>
>> _______________________________________________
>> ncl-talk mailing list
>> 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/20140728/8052e002/attachment.html 


More information about the ncl-talk mailing list