[ncl-talk] Dimension (nlon) of (var0) does not have an associated coordinate variable
Alan Brammer
abrammer at albany.edu
Thu Feb 2 10:20:49 MST 2017
Yeah, Guido is right.
I didn’t test the code I wrote. Do a printVarSummary(ll_ind) and read the docs and you’ll see getind_latlon2d always returns a 2-d array.
for a single point it should be (0,0) and (0,1) for lat | lon indices. Examples in the docs show you how to double check that it is all working as desired.
Alan.
> On 2 Feb 2017, at 12:17, Guido Cioni <guidocioni at gmail.com> wrote:
>
> I'm pretty sure NCL is referring to ll_ind, which is 2-Dimensional :) (see https://www.ncl.ucar.edu/Document/Functions/Contributed/getind_latlon2d.shtml <https://www.ncl.ucar.edu/Document/Functions/Contributed/getind_latlon2d.shtml>).
>
> Guido Cioni
> http://guidocioni.altervista <http://guidocioni.altervista/>.org
>
>> On 02 Feb 2017, at 18:14, Hughlett, Taylor M <taylor.hughlett at uta.edu <mailto:taylor.hughlett at uta.edu>> wrote:
>>
>> Good afternoon,
>>
>> Thank you very much for the suggestion! I have used the function that you recommended, but now I am receiving the following error:
>>
>> Number of subscripts do not match number of dimensions of variable,(1) Subscripts used, (2) Subscripts expected
>>
>> It occurs at the line where I actually create the plot:
>>
>> plot(0) = gsn_csm_xy (wks,years,var0(:,ll_ind(0),ll_ind(1)),res)
>>
>> I have checked that var0 is three dimensional, and I have specified three subscripts required…
>>
>> Have I missed something?
>>
>> Taylor M Hughlett, Ph.D.
>> UTA Earth and Environmental Sciences
>> 500 Yates St.
>> Geoscience Bldg Rm 117
>> Arlington, TX 76013-0049
>>
>> The Full Code:
>>
>> 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
>>
>> ;**************************************************
>> ; Set file paths and plot specifics
>> ;**************************************************
>>
>> print("Setting File Paths")
>>
>> ;***** File Paths and Names *****
>>
>> case = "b.e12.B1850C5CN.f09_g16.YD13ka.003"
>> filen = "b.e12.B1850C5CN.f09_g16.YD13ka.003.pop.SFWF.1_cat_840.nc"
>> file_loc = "/glade/scratch/hughlett/csm/b.e12.B1850C5CN.f09_g16.YD13ka.003/ocn/tseries/cat/"
>> grid = "b.e12.B1850C5CN.f09_g16.YD13ka.003.pop.h.0810.nc"
>> grid_loc = "/glade/scratch/hughlett/csm/b.e12.B1850C5CN.f09_g16.YD13ka.003/ocn/hist/"
>> plot_loc = "/glade/scratch/hughlett/plots/b.e12.B1850C5CN.f09_g16.YD13ka.003/timeseries"
>>
>> ;***** Variable to Plot *****
>>
>> var = "SFWF"
>>
>> ;***** Text for Plot *****
>>
>> CenterString = "Surface Freshwater Flux"
>> YAxisString = "SFWF (Sverdrups)"
>> XAxisString = "Years"
>>
>> ;***** Start and End Time for Plot *****
>>
>> plot_begin = 0001
>> plot_end = 840
>>
>> ;***** Data Options (0 = no, 1 = yes) *****
>>
>> smooth = 0
>> dtrd = 0
>> ncwrite = 0
>>
>> ;**************************************************
>> ; Read In and Process Data
>> ;**************************************************
>>
>> print("Reading in and processing data")
>> ;***** Read in All Variables *****
>>
>> fvar = addfile(file_loc+filen,"r")
>> fgrid = addfile(grid_loc+grid,"r")
>>
>> var0 = fvar->SFWF(:,:,:)
>> lat2d = fgrid->TLAT
>> lon2d = fgrid->TLONG
>>
>> lat = 50
>> lon = 28
>>
>> ;***** Create a More Plottable Timeline *****
>>
>> years = ispan(plot_begin,plot_end,1)
>> nyrs = dimsizes(years)
>>
>> ;***** Get indicies of the point to plot *****
>>
>> ll_ind = getind_latlon2d( lat2d, lon2d, lat, lon)
>>
>> ;**************************************************
>> ; Open workstation, set plot resources, and plot
>> ;**************************************************
>>
>> print("Creating Plot")
>>
>> ;***** Create Plot Name *****
>>
>> pname = var + "." + case + "_" + "timeseries_0m" + plot_begin + "-" + plot_end
>>
>> ;***** Open workstation *****
>>
>> wks = gsn_open_wks("ps",plot_loc+pname)
>>
>> ;***** Set Resources *****
>>
>> res = True
>> res at gsnMaximize = True
>> res at gsnFrame = False
>> res at gsnDraw = False
>> res at vpHeightF = .23
>> res at vpWidthF = .783
>> res at tiXAxisFontHeightF = .015
>> res at tiYAxisFontHeightF = .015
>> res at tmYLLabelFontHeightF = .015
>> res at tmXBLabelFontHeightF = .015
>> res at gsnLeftString = " "
>> res at gsnRightString = " "
>> res at xyLineColor = (/"black"/)
>> res at gsnCenterString = CenterString
>> res at tiYAxisString = YAxisString
>> res at tiXAxisString = XAxisString
>> res at trYMinF = 15
>> res at trYMaxF = 19
>>
>> ;***** Create New Plot *****
>>
>> plot = new(1,graphic)
>> plot(0) = gsn_csm_xy (wks,years,var0(:,ll_ind(0),ll_ind(1)),res)
>>
>> print("Plot Created")
>>
>> end
>>
>>
>>
>> From: Alan Brammer <abrammer at albany.edu <mailto:abrammer at albany.edu>>
>> Date: Wednesday, February 1, 2017 at 2:15 PM
>> To: "Hughlett, Taylor M" <taylor.hughlett at uta.edu <mailto:taylor.hughlett at uta.edu>>
>> Cc: "ncl-talk at ucar.edu <mailto:ncl-talk at ucar.edu>" <ncl-talk at ucar.edu <mailto:ncl-talk at ucar.edu>>
>> Subject: Re: [ncl-talk] Dimension (nlon) of (var0) does not have an associated coordinate variable
>>
>> If you were plotting a map, like Barry Lynn's similar question today also on ncl-talk, you would want to do:
>>
>> var0 at lon2d = lon2d
>> var0 at lat2d = lat2d
>>
>> The below lines are not needed.
>> ; LON2D = lon2d(::1,::1) ;; I don’t think (::1,::1) does anything, it will take all values with an increment of 1, i.e. the whole array.
>> ; LAT2D = lat2d(::1,::1) ; so this is just redundant characters which aren’t needed.
>> You don’t need to replicate a variable that already exists.
>>
>> To set coordinate variables named nlon and nlat, you want to use the & syntax not the @ syntax, but coordinate subscripting won’t work with 2d coordinates anyway.
>>
>> So instead get the index of the point you want using:
>> https://www.ncl.ucar.edu/Document/Functions/Contributed/getind_latlon2d.shtml <https://www.ncl.ucar.edu/Document/Functions/Contributed/getind_latlon2d.shtml>
>> e.g.
>>
>> ll_ind = getind_latlon2d( lat2d, lon2d, 28,50)
>> …
>> …
>> plot(0) = gsn_csm_xy (wks, years, var0(:, ll_ind(0), ll_ind(1) ), res)
>>
>>
>>
>> Good luck,
>>
>> Alan
>>
>>
>> ##############################
>> Alan Brammer,
>> Post-Doc Researcher
>>
>> Department of Atmospheric and Environmental Sciences,
>> University at Albany, State University of New York, Albany, NY, 12222
>> abrammer at albany.edu <mailto:abrammer at albany.edu>
>> ##############################
>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at ucar.edu <mailto: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/20170202/834082f7/attachment.html
More information about the ncl-talk
mailing list