Re: Issue with X-Axis Labeling and Values; Using tmXBValues/Labels, ispan

From: Mary Haley <haley_at_nyahnyahspammersnyahnyah>
Date: Sun Sep 15 2013 - 20:43:39 MDT

Hi Mike,

Sorry to be late on this. I've been out for an NCL workshop.

Usually if the labels are not showing up on an axis, and you are using "explicit" labeling, it's because the values you are passing to "tmXBValues" are out of range of the actual X axis.

You set xcoord equal to:

> xcoord = ispan(0,dimsizes(pm_plane(0,:)) - 1, 1)

Do your X values actually go from 0 to dimsizes(pm_plane(0,:)) ?

You need to make sure that the data you are plotting, "pm_plane", doesn't actually already have it's own 1D coordinate array for the X axis:

   printVarSummary(pm_plane)

Do you see anything that looks like coordinate values for the X axis? If so, then you need to use values that are in this range for tmXBValues.

--Mary

On Sep 10, 2013, at 2:42 PM, James Madden <jmmadden@alaska.edu> wrote:

> Hello everyone,
>
> I am having a small difficulty with the x-axis labeling. I am trying to do a simple cross section of my WRF data, from point A to point B, as dictated by certain specified latitude and longitude data (which comes from my CALIPSO data).
>
> I am getting x-axis labels in the correct format, however the x-axis is not complete. The x-axis only has the first several pieces of latitude and longitude data, and the rest doesn't appear; basically, there is way more latitude and longitude information than what the x-axis indicates.
>
> I have attempted to stride the data in an attempt to have all of the coordinate information, and to use the 'npts' mechanism in ispan, but the latter method only spaces the coordinate data even further.
>
> I have attached a graphic of my plot, and I have also attached a txt file that contains all my latitude and longitude information.
>
> The problem is most likely near tmXBValues / tmXBLabels, or at "xcoord".
>
> My code is below. Thank you very much.
>
> Mike
>
> Code:
>
> ; This script will take a cross section of your WRF data, with specified
> ; latitude and longitude coordinates.
>
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.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
>
> type = "x11"
> wks = gsn_open_wks(type,"WRF Cross Section")
> gsn_define_colormap(wks,"BlAqGrYeOrReVi200")
>
> ; Load CALIPSO latitude and longitude data
>
> b = addfile("/import/archive/u1/uaf/jmmadden/WILDFIRE2009/CALIPSOdata/SUBSETS/CAL_LID_L1-ValStage1-V3-01.2009-06-21T12-23-05ZD.hdf_Subset.hdf","r")
>
> ; Work with the time fields to get a valid time string
> time = (/b->Profile_Time/)
> time@units = "seconds since 1993-01-01 00:00"
> tstring = ut_string(time(:,0), "%Y-%N-%D %H:%M:%S")
>
> xlat = (/b->Latitude/)
> xlon = (/b->Longitude/)
> xlabel = sprintf("%.2f",xlat)+"~C~"+sprintf("%.2f",xlon)
>
> ;print(xlat) ; xlat descends from 67.. to 63...
> ;print(xlon) ; xlon goes from -150 to ~-154....
>
> asciiwrite("xlabel",xlabel)
>
> n = dimsizes(xlat(:,0))
> nn = dimsizes(xlon(:,0))
>
>
> ;print(n) ; n is 1319 (1318 in some files, that's ok)
> ;print(nn) ; n is 1319 (1318 in some files, that's ok)
>
> minlat = xlat(n-1,0)
> maxlat = xlat(0,0)
> minlon = xlon(nn-1,0)
> maxlon = xlon(0,0)
>
> ;print(maxlat) ; this is 67...
> ;print(maxlon) ; this is -150...
>
> lats = (/maxlat,minlat/)
> lons = (/maxlon,minlon/)
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> ; Read WRF Output File
>
> a = addfile("/import/archive/u1/uaf/jmmadden/WILDFIRE2009/WRFouts/wrfout_d01_2009-06-21_00:00:00"+".nc","r")
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> times = wrf_user_getvar(a,"times",-1) ; get times in the file
> ntimes = dimsizes(times) ; number of times in the file
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> ; Set some basic resources
> res = True
> res@MainTitle = "REAL-TIME WRF"
> res@Footer = False
>
> pltres = True
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> ; HOURLY LOOP OF PARTICULATE MATTER
>
> do it = 12,14 ; loop over 24 hours, focused only on 12th and 13th hour
>
> print("Working on time: " + times(it) )
> res@TimeLabel = times(it) ; Set Valid time to use on plots
>
> ; First get the variables we will need
> tc = wrf_user_getvar(a,"tc",it) ; T in C
> z = wrf_user_getvar(a, "z",it) ; grid point height
> pm = a->PM2_5_DRY(it,:,:,:)
>
>
> loc = wrf_user_latlon_to_ij(a,lats,lons)
>
> ys = loc(0,0) ; Starting y (j) location
> ye = loc(1,0) ; Ending y (j) location
> xs = loc(0,1) ; Starting x (i) location
> xe = loc(1,1) ; Ending x (i) location
>
>
> ; Interpolate WRF Model data vertically
> angle = 0
> opts = False ; start and end points not specified
>
>
> ; Establish starting and end points in domain
> plane = new(4,float)
> plane = (/ xs,ys, xe,ye /) ; start x;y & end x;y point
> pm_plane = wrf_user_intrp3d(pm,z,"v",plane,angle,opts)
> tc_plane = wrf_user_intrp3d(tc,z,"v",plane,angle,opts)
>
>
> ; Plotting Options for PM
> opts_pm = res
> opts_pm@cnLevelSelectionMode = "ExplicitLevels"
> Levels = (/3.,3.5,4.,4.5,5.,5.5,6.,6.5,7.,8.,9.,11.,13.,15./)
> opts_pm@cnFillOn = True
> opts_pm@cnFillMode = "RasterFill"
> opts_pm@cnRasterSmoothingOn = True
> opts_pm@cnLinesOn = False ; turn off contour lines
> opts_pm@cnLineLabelsOn = True ; turn off contour labels
> opts_pm@tiYAxisOn = True
>
>
> ; Set stride intervals for x-axis
>
> ; xcoord = ispan(0,dimsizes(xlat(:,0))-1,1)
> xcoord = ispan(0,dimsizes(pm_plane(0,:)) - 1, 1)
> stride = dimsizes(tstring)/15
>
> opts_pm@tmXTOn = False
> opts_pm@tmYROn = False
> opts_pm@tmXBMode = "Explicit"
> opts_pm@tmXBValues = xcoord(::stride)
> opts_pm@tmXBLabels = xlabel(::stride,0)
> opts_pm@tmXBLabelFontHeightF = 0.001
>
> ; Plotting options for Temperature
> opts_tc = res
> opts_tc@cnInfoLabelOrthogonalPosF = 0.00
> opts_tc@ContourParameters = (/ 5. /)
>
> contour_pm = wrf_contour(a,wks,pm_plane,opts_pm)
> contour_tc = wrf_contour(a,wks,tc_plane,opts_tc)
>
> plot = wrf_overlays(a,wks,(/contour_pm,contour_tc/),pltres)
>
> end do
> end
>
> --
> 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
> <graphic for ncl forum.GIF><xlabel>_______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Sun Sep 15 20:43:46 2013

This archive was generated by hypermail 2.1.8 : Mon Sep 16 2013 - 13:43:52 MDT