Re: Irregular coordinate array: Plotting CALIPSO data, X-Axis latitude and longitude values

From: David Brown <dbrown_at_nyahnyahspammersnyahnyah>
Date: Thu Aug 29 2013 - 12:58:51 MDT

Hi James,
Glad to hear it worked.
 -dave

On Aug 29, 2013, at 12:39 PM, James Madden <jmmadden@alaska.edu> wrote:

> Hello Dave,
>
> This was great! I had to do a minor change, but your advice was amazing. My plot is way better now.
>
> Other than your recommendations, I just had to tweak res@tmXBValues:
>
> res@tmXBValues = xcoord(::stride)
>
> Thank you again,
>
> Mike
>
>
>
>
>
> On Wed, Aug 28, 2013 at 5:30 PM, David Brown <dbrown@ucar.edu> wrote:
> Hi Mike,
> The message is telling you that the array you are using for the 2nd dimension of the data variable (used for the X Axis, i.e.:
>
> lat(:,0)
> assigned as
> back!1 = "lat"
> back&lat = lat(:,0)
>
> is non-monotonic. (It increases in some places and decreases in others.) NCL cannot handle non-monotonic 1d coordinates. The other problem is that you are trying to assign the tmXBValues resource using a string array.
> I would suggest that you make the X coordinate array a simple array of ascending integers and then use it for tmXBValues.
>
> xcoord = ispan(0,dimsizes(lat(:,0)) - 1,1)
>
> back!1 = "xcoord"
> back&xccord = xcoord
>
> .
>
>
> res@tmXBMode = "Explicit"
> res@tmXBValues = xcoord(::stride,0)
> res@tmXBLabels = xlabel(::stride,0)
>
>
>
> Obviously I can't test this so it may need a little tweaking.
> -dave
>
>
> On Aug 28, 2013, at 6:33 PM, James Madden <jmmadden@alaska.edu> wrote:
>
>> Hello,
>>
>> I am experiencing trouble plotting the x-axis latitude and longitude coordinates.
>>
>> It seems that the x-axis latitude and longitude values are crunched to the bottom left of the plot. Additionally, a message is accompanied: "warning:ScalarFieldSetValues: irregular coordinate array sfXArray non-monotonic: defaulting sfXArray."
>>
>> I have looked for help in this forum, but the help doesn't seem to be applicable to my situation. I am a little confused - what am I missing? I have altered the TickMark resources several times, but I don't seem to be making progress.
>>
>> I have attached the code below, and a picture of the current plot is attached.
>>
>> Thanks in advance.
>>
>> Code:
>>
>> ;**************************************************
>> ; This program intends to plot CALIPSO data.
>> ; Author: Cory Wolff from UCAR (thank him in thesis), edits by J. Madden
>> ;**************************************************
>> 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"
>> load "$NCARG_ROOT/lib/ncarg/nclscripts/contrib/ut_string.ncl"
>> load "color_map.ncl"
>>
>> ;**************************************************
>>
>> begin
>>
>> ; --- Read Calipso------------;
>> f = addfile("/import/archive/u1/uaf/jmmadden/WILDFIRE2009/CALIPSOdata/HDF/CAL_LID_L1-ValStage1-V3-01.2009-06-20T21-33-08ZD.hdf","r")
>>
>> back1 = f->Total_Attenuated_Backscatter_532
>> dims = getvardims(back1)
>>
>> ; Reverse the vertical array
>> back1 = back1(:,::-1)
>>
>> ; Reorder using string dimension names
>> back = back1($dims(1)$|:,$dims(0)$|:)
>> back@_FillValue = -9999
>> back@units = "km~S~-1~NN~ sr~S~-1~NN~"
>>
>> ; Get the lat and lon arrays for the x-axis
>> lat = f->Latitude
>> lon = f->Longitude
>> xlabel = sprintf("%.2f",lat)+"~C~"+sprintf("%.2f",lon)
>>
>> ; Work with the time fields to get a valid time string
>> time = f->Profile_Time
>> time@units = "seconds since 1993-01-01 00:00"
>> tstring = ut_string(time(:,0), "%Y-%N-%D %H:%M:%S")
>> tstring2 = ut_string(time(:,0), "%Y-%N-%D_%H-%M-%S")
>>
>>
>> ; Set stride intervals for x-axis
>> stride = dimsizes(tstring)/15
>>
>> ; Get the altitude values.
>> hgt = asciiread("lidar_altitudes.txt", -1, "float")
>> hgt = hgt(::-1) ; Reverse this array too
>> hgt!0 = "hgt"
>>
>> hgt@long_name = "Altitude, km"
>> hgt@units = "km"
>>
>> ; Assign new dimensions and attributes
>> back!0 = "hgt"
>> back&hgt = hgt
>> back!1 = "lat"
>> back&lat = lat(:,0)
>>
>> ; Get the surface elevation
>> topo = f->Surface_Elevation(:,0)
>> topo!0 = "lat"
>> topo&lat = lat(:,0)
>>
>> ;*************************
>> ; create plot
>> ;*************************
>>
>> wks = gsn_open_wks("x11", "backscatter")
>>
>> cmap = new((/36,3/), float)
>> gen_backscatter_cmap(cmap)
>> setvalues wks
>> "wkColorMap" : cmap
>> end setvalues
>>
>> setvalues NhlGetWorkspaceObjectId()
>> "wsMaximumSize": 300000000
>> end setvalues
>>
>> res = True
>> res@cnFillOn = True ; color plot desired
>> res@cnLinesOn = False
>> res@cnRasterModeOn = True
>>
>> res@gsnSpreadColors = True ; use all colors
>> res@gsnAddCyclic = False
>> res@gsnMaximize = True
>> res@gsnLeftString = "UTC: "+tstring(0)+" to "+tstring(dimsizes(tstring)-1)
>>
>> res@tiMainString = "Total Attenuated Backscatter"
>> res@tiMainFontHeightF = 0.025
>> res@tiYAxisFontHeightF = 0.02
>>
>> res@cnLevelSelectionMode = "ExplicitLevels"
>> res@cnLevels = (/0.0001,0.0002,0.0003,0.0004,0.0005,0.0006,0.0007,0.0008,0.0009,0.001,0.0015,0.002,0.0025,0.003,0.0035,0.004,0.0045,0.005,0.0055,0.006,0.0065,0.007,0.0075,0.008,0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.1/)
>>
>> res@tmXTOn = False
>> res@tmXBMode = "Explicit"
>> res@tmXBValues = xlabel(::stride,0)
>> res@tmXBLabels = xlabel(::stride,0)
>> res@tmXBLabelFontHeightF = 0.015
>>
>> res@lbLabelFontHeightF = 0.015
>> res@lbLabelAngleF = -90.0
>>
>> res@vpWidthF = 1.0
>>
>> res@gsnDraw = True
>> res@gsnFrame = False
>>
>> plot = gsn_csm_contour(wks,back,res)
>> frame(wks)
>> end
>>
>> --
>> Mike Madden
>> Graduate Research Assistant
>> Department of Atmospheric Sciences
>> University of Alaska Fairbanks
>> IARC 338N
>> Office: (907) 474-7618
>> ---------------------------------------------------------------------
>> "Buy the ticket, take the ride." Hunter S. Thompson
>> <CALIPSO Plot for NCL forum.GIF>_______________________________________________
>> ncl-talk mailing list
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
>
>
> --
> Mike Madden
> Graduate Research Assistant
> Department of Atmospheric Sciences
> University of Alaska Fairbanks
> IARC 338N
> Office: (907) 474-7618
> Cell: (417) 439-2830
> ---------------------------------------------------------------------
> "Buy the ticket, take the ride." Hunter S. Thompson

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Thu Aug 29 12:59:03 2013

This archive was generated by hypermail 2.1.8 : Fri Aug 30 2013 - 14:04:57 MDT