<div dir="ltr"><div class="gmail_default" style="font-size:small">Stuart,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">One procedure that I know Dennis likes (and I should use more) is <a href="http://www.ncl.ucar.edu/Document/Functions/Contributed/stat_dispersion.shtml">stat_dispersion</a>. It calculates robust statistics on your data, including how it is distributed:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style=""><div class="gmail_default" style="font-size:small">  opt = True</div><div class="gmail_default" style="font-size:small">  opt@PrintStat = True</div><div class="gmail_default" style="">  stat_var = stat_dispersion(Tair_f_tavg,opt)</div><div class="gmail_default" style=""><span></span><br>Otherwise, using printMinMax and printVarSummary are the two main ways we tell people to look at data. I only use the "num" and "ismissing" functions if I suspect something is wrong with the data itself, or the lat/lon values.</div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">Personally, I like to plot the data to get a better look at it. If I suspect that the lat/lon values are questionable, then I'll also add a gsn_coordinates all to plot the lat/lon locations on the contour plot to see what the grid looks like.</div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">I've included a basic NCL script that loops through your 2D variables and creates a simple contour plot over a map, and then adds lat/lon points at locations where your 2D lat/lon are not missing.  I attached one of the PNG images, which is the plot of Tair_f_tavg.</div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">--Mary</div><div class="gmail_default" style=""><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 3, 2018 at 6:21 AM, Smith, Stuart <span dir="ltr"><<a href="mailto:smit1770@purdue.edu" target="_blank">smit1770@purdue.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div class="m_-3181119674419482670WordSection1"><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Mary,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Thank you for your assistance. I had no idea so much information was missing. I have been looking at the dimensions and sizes (ex. [ncl_join | 4017] x [north_south | 29] x [east_west | 45]) along with the total size values (Total Size: 20968740 bytes; 5242185 values) as a method to confirm that my model was simulating the correct extent and that it was outputting data, but this was not sufficient. <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Thank you so much for teaching me another method to confirm how many valid values I have, and how many I am missing. This tells me that there is a wrong input in my model simulation. If you have any other preliminary data checks that you would recommend please let me know. Thank you for yours and Dennis’s time.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Regards,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">-Stuart <u></u><u></u></span></p><p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Mary Haley <<a href="mailto:haley@ucar.edu" target="_blank">haley@ucar.edu</a>> <br><b>Sent:</b> Wednesday, May 2, 2018 10:19 AM<br><b>To:</b> Smith, Stuart <<a href="mailto:smit1770@purdue.edu" target="_blank">smit1770@purdue.edu</a>><br><b>Cc:</b> Ncl-talk <<a href="mailto:ncl-talk@ucar.edu" target="_blank">ncl-talk@ucar.edu</a>><br><b>Subject:</b> Re: [ncl-talk] Extracting Output Results from Specific Grid Cells<u></u><u></u></span></p><div><div class="h5"><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">Stuart,<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Sorry for the delay.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">The answer follows, but I want to point out that almost half of your lat/lon values on the file are missing. I'll discuss this in a little bit.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">If you look at one of your data files using ncl_filedump, you will see that the lat/lon arrays are two-dimensional (I edited the output for clarity):<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><div><p class="MsoNormal"><span style="font-family:"Courier New"">    Variable: lat</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">    Type: float</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">    Number of Dimensions: 2</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">    Dimensions and sizes: [ 29 <north_south> x 45 <east_west> ]</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">    Coordinates:</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">        Number of Attributes:        9</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">            units : degree_north</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">            standard_name : latitude</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">            long_name : latitude</span><u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">    Variable: lon</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">    Type: float</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">    Number of Dimensions: 2</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">    Dimensions and sizes: [ 29 <north_south> x 45 <east_west> ]</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">    Coordinates:</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">        Number of Attributes:        9</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">            units : degree_east</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">            standard_name : longitude</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">            long_name : longitude</span><u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Data that is defined by two-dimensional lat/lon arrays is said to be on a "curvilinear" grid. In order to sub-select regions from curvilinear data, you need to use either getind_latlon2d or region_ind.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Also, you don't want to use the [:] syntax to read the lat/lon arrays off the file, because then you will get back 2 x 29 x 45 arrays, which is unnecessary if your lat/lon arrays don't change with each time step.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Instead, simply read off one timestep of the lat / lon using [0]:<span style="font-family:"Courier New"">                                                                                                                             </span><u></u><u></u></p></div><div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  a         = addfiles(fils,"r")</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  ListSetType (a, "join")</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  data      = a[:]->Tair_f_tavg</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  data@time = a[:]->time</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  lon2d     = a[0]->lon</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  lat2d     = a[0]->lat</span><u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">You can then get the index locations into lat2d and lon2d that are equal to LAT and LON as follows:<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  LAT  = (/ 48.5625/)</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  LON  = (/-98.9375/)</span><u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  nm = getind_latlon2d (lat2d,lon2d, LAT, LON)</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  n = nm(0,0)</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  m = nm(0,1)</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  print("=======================<wbr>===========================")</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  print("Original lat/lon : " + LAT       +"   "+LON)</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  print("Actual lat/lon   : " + lat2d(n,m)+"   "+lon2d(n,m))</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  print("=======================<wbr>===========================")</span><u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">To slice the data at that particular location:<u></u><u></u></p></div><div><p class="MsoNormal">                                                                                                               <u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  data_slice = data(:,n,m)</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  printVarSummary(data)</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  printVarSummary(data_slice)</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  printMinMax(data_slice,0)</span><u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">We have some examples of using these functions. Please see:<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><a href="http://www.ncl.ucar.edu/Applications/latlon_subset.shtml" target="_blank">http://www.ncl.ucar.edu/<wbr>Applications/latlon_subset.<wbr>shtml</a><u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">These examples show the difference between region_ind and getind_latlon2d, which is important if you want to grab a sub-region of data, rather than just a single slice.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Back to the lat/lon values being missing. It's always incredibly important to look at your data and understand it before you start doing calculations on it, or try to plot it.  Dennis Shea mentioned to me offline that your lat/lon arrays had a high number of missing values, so I simply added the following two lines to check this:<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  print("=======================<wbr>===========================")</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  print("# of valid latitude values    = "  + num(.not.ismissing(lat2d)))</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  print("# of missing latitude values  = "  + num(ismissing(lat2d)))</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  print("=======================<wbr>===========================")</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  print("# of valid longitude values   = " + num(.not.ismissing(lon2d)))</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  print("# of missing longitude values = " + num(ismissing(lon2d)))</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">  print("=======================<wbr>===========================")</span><u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">which gave me the following output:<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><div><p class="MsoNormal"><span style="font-family:"Courier New"">==============================<wbr>====================</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New""># of valid latitude values    = 703</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New""># of missing latitude values  = 602</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">==============================<wbr>====================</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New""># of valid longitude values   = 703</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New""># of missing longitude values = 602</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">==============================<wbr>====================</span><u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">It's likely that the lat/lon arrays have missing values in the same location.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Now maybe this is perfectly valid for your data, but it's something we wanted to be sure you were aware of. It's somewhat unusual to see this many missing values in lat / lon arrays.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div></div></div><div><p class="MsoNormal">--Mary<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div></div><div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">On Sat, Apr 28, 2018 at 12:32 PM, Smith, Stuart <<a href="mailto:smit1770@purdue.edu" target="_blank">smit1770@purdue.edu</a>> wrote:<u></u><u></u></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><div><p class="MsoNormal">Hello,<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Attached is a NCL script I have been using to output model simulation results.  My goal is to enhance this script to plot outputs from specific grid cells. <u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">The plotting script was originally designed to read in netCDF files, which were outputted from the model simulation in a daily time step as a netCDF file  (ex. <a href="http://200903180000.d01.nc" target="_blank">200903180000.d01.nc</a>). In order to create a timeseries, the script joins the files into an array and plots the total average data. I would like to enhance the NCL script to plot a time series of the raw outputted data from a defined grid cell.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">I have been able to do this successfully looking at individual files, but when I try joining the data into an array for time series analysis of the grid cell I get the following error “fatal:Dimension (east_west) of (data) does not have an associated coordinate variable fatal" on line 28. Could I please have assistance on understanding the error and correcting this issue? Attached are example output results from a model simulation as well. Thank you for your time.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Regards,<u></u><u></u></p><p class="MsoNormal"><span style="color:#888888"> <u></u><u></u></span></p><p class="MsoNormal"><span style="color:#888888">-Stuart <u></u><u></u></span></p></div></div><p class="MsoNormal" style="margin-bottom:12.0pt"><br>______________________________<wbr>_________________<br>ncl-talk mailing list<br><a href="mailto:ncl-talk@ucar.edu" target="_blank">ncl-talk@ucar.edu</a><br>List instructions, subscriber options, unsubscribe:<br><a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" target="_blank">http://mailman.ucar.edu/<wbr>mailman/listinfo/ncl-talk</a><u></u><u></u></p></blockquote></div><p class="MsoNormal"><u></u> <u></u></p></div></div></div></div></div></blockquote></div><br></div>