<div dir="ltr"><div class="gmail_default" style="font-size:small">I echo Dennis&#39; recommendation about not using lat2d/lon2d for writing NetCDF.  This should *never* be done for production files.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">The lat2d/lon2d usage was adopted for plotting purposes, and, as Dave pointed out, because it is more understandable than &quot;sfXArray&quot; and &quot;sfYArray&quot;.  Note that lat2d/lon2d also work for vector and streamline plotting routines, where you would normally have to set &quot;vfXArray&quot; and &quot;vfYArray&quot;.<br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">--Mary</div><div class="gmail_default" style="font-size:small"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Sep 13, 2015 at 7:04 AM, Dennis Shea <span dir="ltr">&lt;<a href="mailto:shea@ucar.edu" target="_blank">shea@ucar.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">A bit more ...<br>
<br>
Another issue is that if someone writes one or more variables (eg, x,<br>
y, z) containing lat2d/lon2d attributes to a netCDF (or HDF) file,<br>
*each* variable would have the same set of coordinates associated with<br>
it. This results in a bloated file size. The lat2d/lon2d attributes<br>
for each variable should be deleted prior to netCDF creation and<br>
separate variables created to contain the associated coordinate<br>
information.<br>
<br>
   delete( x@lat2d )<br>
   delete( x@lon2d )<br>
   delete(y@lat2d)<br>
   delete(y@lon2d)<br>
   delete(z@lat2d)<br>
   delete(z@lon2d)<br>
<br>
or,<br>
<br>
   delete( [/ x@lat2d, x@loned, y@lat2d, y@loned, z@lat2d, z@loned /] )<br>
<br>
and, not required, but recommended<br>
<br>
   x@coordinates = &quot;LAT2D LON2D&quot;       ; variable names are arbitrary<br>
   y@coordinates = &quot;LAT2D LON2D&quot;<br>
   z@coordinates = &quot;LAT2D LON2D&quot;<br>
<br>
...<br>
<br>
   fcn = addfile9&quot;...&quot;,&quot;c&quot;)<br>
   X = f-&gt;x<br>
   Y = f-&gt;y<br>
   Z = f-&gt;z<br>
<br>
   LAT2D =  lat2d<br>
   LON2D = lon2d<br>
<br>
On Fri, Sep 11, 2015 at 5:56 PM, Dave Allured - NOAA Affiliate<br>
<div class="HOEnZb"><div class="h5">&lt;<a href="mailto:dave.allured@noaa.gov">dave.allured@noaa.gov</a>&gt; wrote:<br>
&gt; Mary and Dennis,<br>
&gt;<br>
&gt; Mary showed several advantages of the use of the lat2d/lon2d special<br>
&gt; attributes for 2-D coordinates.  I would like to retract my suggestion for<br>
&gt; changing existing examples.<br>
&gt;<br>
&gt; It seems to me that it is best to use sfXArray and sfYArray attributes only<br>
&gt; in special cases when lat2d and lon2d are not sufficient.  Also, lat2d and<br>
&gt; lon2d seem more understandable to me.  Perhaps the decision process for<br>
&gt; which method could be enhanced on the &quot;Overlaying data&quot; documentation page:<br>
&gt;<br>
&gt; <a href="http://www.ncl.ucar.edu/Document/Graphics/overlays_on_map.shtml" rel="noreferrer" target="_blank">http://www.ncl.ucar.edu/Document/Graphics/overlays_on_map.shtml</a><br>
&gt;<br>
&gt; Dennis mentioned a performance problem:  &quot;Each variable having an associated<br>
&gt; @lat2d, @lon2d takes up memory.&quot;  Technically, I agree.  However, modern<br>
&gt; workstations have many Gbytes of RAM, so carrying around a few extra medium<br>
&gt; size 2-D arrays is not noticeable unless you are repeating full variable<br>
&gt; assignments within major processing loops.  So I think this is not a<br>
&gt; significant problem for retaining lat2d/lon2d.<br>
&gt;<br>
&gt; --Dave<br>
&gt;<br>
&gt;<br>
&gt; On Fri, Sep 11, 2015 at 11:15 AM, Mary Haley &lt;<a href="mailto:haley@ucar.edu">haley@ucar.edu</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi Dave,<br>
&gt;&gt;<br>
&gt;&gt; I&#39;m a bit torn about what to do with the examples, because ideally, we<br>
&gt;&gt; (NCL) would come up with a way to represent all types of &quot;coordinate values&quot;<br>
&gt;&gt; (true 1D coordinate arrays, 2D coordinate arrays, 1D arrays for &quot;random&quot;<br>
&gt;&gt; arrays, and something else for unstructured grids, like hexagonal or<br>
&gt;&gt; triangular meshes) through the NCL variable model.  We&#39;ve always tried to<br>
&gt;&gt; model the NetCDF way of handling these variables, and it doesn&#39;t yet have a<br>
&gt;&gt; way to recognize all types of coordinates.<br>
&gt;&gt;<br>
&gt;&gt; We have kept the use of lat2d/lon2d attributes in the examples partly<br>
&gt;&gt; because we have advertised them for so long. Because of our strict backwards<br>
&gt;&gt; compatibility rule, we hope to always support this feature unless it becomes<br>
&gt;&gt; unreasonable to do so (which I don&#39;t foresee).<br>
&gt;&gt;<br>
&gt;&gt; We also use this method in our ESMF regridding, because it&#39;s the only way<br>
&gt;&gt; to &quot;sneak&quot; in these special coordinate arrays to the &quot;ESMF_regrid&quot; routine.<br>
&gt;&gt; ESMF_regrid will look for &quot;lat2d/lon2d&quot; attached to the variable, and it<br>
&gt;&gt; will also return lat2d/lon2d if regridding to a curvilinear grid. The same<br>
&gt;&gt; is true for &quot;lon1d/lat1d&quot;, which is a quick-and-dirty way to pass in 1D<br>
&gt;&gt; arrays of lat/lon for a 1D variable that is potentially &quot;random&quot;.<br>
&gt;&gt;<br>
&gt;&gt; There&#39;s one minor correction to what Dennis said about using one method<br>
&gt;&gt; over the other for plotting: if you have lat2d/lon2d attributes attached to<br>
&gt;&gt; your data when plotting, and you set res@gsnAddCyclic = True, then the<br>
&gt;&gt; gsn_csm_xxxx plotting routines will know how to properly add the cyclic<br>
&gt;&gt; point.  However, if you use sfXArray and sfYArray resources, gsnAddCyclic<br>
&gt;&gt; doesn&#39;t know anything about these.<br>
&gt;&gt;<br>
&gt;&gt; We have it on our list to modernize many of our aging NCL scripts, and we<br>
&gt;&gt; will add more examples that show the two ways of doing things.<br>
&gt;&gt;<br>
&gt;&gt; --Mary<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Fri, Aug 28, 2015 at 4:15 PM, Dave Allured - NOAA Affiliate<br>
&gt;&gt; &lt;<a href="mailto:dave.allured@noaa.gov">dave.allured@noaa.gov</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Dennis,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thank you for the information about preferred resources sfXArray and<br>
&gt;&gt;&gt; sfYArray for 2-D coordinates, and the reason why this is optimal.  I learned<br>
&gt;&gt;&gt; something new here.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Several NCL examples and at least one documentation page are advocating<br>
&gt;&gt;&gt; the less optimal method using lat2d and lon2d attributes.  Perhaps these<br>
&gt;&gt;&gt; examples and pages could eventually be updated to use sfXArray and sfYArray<br>
&gt;&gt;&gt; instead.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; --Dave<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Fri, Aug 28, 2015 at 3:54 PM, Dennis Shea &lt;<a href="mailto:shea@ucar.edu">shea@ucar.edu</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Will&#39;s suggestion is correct.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; -----<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; FYI: The ***only*** time you should assign the reserved attributes:<br>
&gt;&gt;&gt;&gt; @lat2d,   @lon2d is for plotting.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; In fact, the NCL-team would prefer that people use the following<br>
&gt;&gt;&gt;&gt; rather than the reserved attributes.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;      res@sfXArraya   = lon2d<br>
&gt;&gt;&gt;&gt;      res@sfYArray     = lat2d<br>
&gt;&gt;&gt;&gt;      res@trGridType  = &quot;TriangularMesh&quot;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; ---<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Each variable having an associated  @lat2d, @lon2d takes up memory.<br>
&gt;&gt;&gt;&gt; If 5 variables  a, a@lat2d, a@lon2d, ...  b, c, d, e then each will<br>
&gt;&gt;&gt;&gt; require the necessary memory.<br>
&gt;&gt;&gt;&gt; Firther, if you write to netCDF via<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;      fnc-&gt;A = a<br>
&gt;&gt;&gt;&gt;      fnc-&gt;B = b<br>
&gt;&gt;&gt;&gt;      fnc-&gt;C = c<br>
&gt;&gt;&gt;&gt;      fnc-&gt;D = d<br>
&gt;&gt;&gt;&gt;      fnc-&gt;E = e<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Then the lat2d/lon2d arrays will be written 5 times (one for each<br>
&gt;&gt;&gt;&gt; variable).<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;     fnc-&gt;LAT2D = lat2d<br>
&gt;&gt;&gt;&gt;     fnc-&gt;LON2D = lon2d<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Will write each variable  only once!<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Cheers<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Fri, Aug 28, 2015 at 3:38 PM, Will Hobbs &lt;<a href="mailto:Will.Hobbs@utas.edu.au">Will.Hobbs@utas.edu.au</a>&gt;<br>
&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt; Mira<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; To keep all the attributes from &#39;sf&#39;....<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; sf_total = sf(0,:,:)     ;sf_total is now a 2-da array with all the<br>
&gt;&gt;&gt;&gt; &gt;&gt;attributes and rightmost dimensions of sf<br>
&gt;&gt;&gt;&gt; &gt;&gt; sf_total = dim_sum_n(sf,0)<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; Will<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; On 29/08/15 5:26 AM, &quot;<a href="mailto:mberdahl@envsci.rutgers.edu">mberdahl@envsci.rutgers.edu</a>&quot;<br>
&gt;&gt;&gt;&gt; &gt; &lt;<a href="mailto:mberdahl@envsci.rutgers.edu">mberdahl@envsci.rutgers.edu</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;Excellent, this worked!  Thank you!<br>
&gt;&gt;&gt;&gt; &gt;&gt;I just have a quick follow-up question.  Once I assign the lat and lon<br>
&gt;&gt;&gt;&gt; &gt;&gt; to<br>
&gt;&gt;&gt;&gt; &gt;&gt;my variables (for example:  sf@lon2d = lon2d, sf@lat2d = lat2d), and<br>
&gt;&gt;&gt;&gt; &gt;&gt; then<br>
&gt;&gt;&gt;&gt; &gt;&gt;I would like to do a calculation with sf (eg. sf_total =<br>
&gt;&gt;&gt;&gt; &gt;&gt; dim_sum_n(sf,0)),<br>
&gt;&gt;&gt;&gt; &gt;&gt;it seems I have to assign the the new variable the lat and lon again.<br>
&gt;&gt;&gt;&gt; &gt;&gt; Is<br>
&gt;&gt;&gt;&gt; &gt;&gt;there a way to keep the lat and lon following through the calculations<br>
&gt;&gt;&gt;&gt; &gt;&gt;without always reassigning them?<br>
&gt;&gt;&gt;&gt; &gt;&gt;I hope that makes sense.<br>
&gt;&gt;&gt;&gt; &gt;&gt;Thanks,<br>
&gt;&gt;&gt;&gt; &gt;&gt;Mira<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; Here is more information about dat with 2-D coordinates.  I was<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; typing<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; this<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; up when I saw Will&#39;s reply.  Some of the other examples indicate<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; that trGridTrype may not be needed with some data sets.<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; Please see section #2 on this documentation page, for a basic<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;description.<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; Notice the several different working examples:<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; <a href="https://www.ncl.ucar.edu/Document/Graphics/overlays_on_map.shtml" rel="noreferrer" target="_blank">https://www.ncl.ucar.edu/Document/Graphics/overlays_on_map.shtml</a><br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; (Please ignore the link &quot;2D vertical coordinates&quot;, that is not about<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; geographic surface maps, and can be confusing.)<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; The simplest example for making map plots with 2-D coordinates is<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;example<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; 3<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; on this page:<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; <a href="https://www.ncl.ucar.edu/Applications/ice.shtml" rel="noreferrer" target="_blank">https://www.ncl.ucar.edu/Applications/ice.shtml</a><br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; I also like NARR example 4 because it shows how the 2-D coordinate<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;method<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; can be used with different map projections:<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; <a href="http://www.ncl.ucar.edu/Applications/narr.shtml" rel="noreferrer" target="_blank">http://www.ncl.ucar.edu/Applications/narr.shtml</a><br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; --Dave<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; On Thu, Aug 27, 2015 at 9:35 PM, Will Hobbs &lt;<a href="mailto:Will.Hobbs@utas.edu.au">Will.Hobbs@utas.edu.au</a>&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; Mira<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; It looks like you have 2-d lat and lon arrays associated with your<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;data,<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; as is often the case with models (especially ocean models).<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; This can be plotted by NCL without regridding, see the examples<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; here:<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; <a href="http://www.ncl.ucar.edu/Applications/ease.shtml" rel="noreferrer" target="_blank">http://www.ncl.ucar.edu/Applications/ease.shtml</a><br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; Although you are not using the EASE grid, the principal is exactly<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; the<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; same:<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; 1. Set your map plot grid type resource<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;res@trGridTrype = &quot;TriangularMesh&quot;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; 2. Set the lat and lon arrays as attributes of the array you are<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; plotting,<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; so if your array is &#39;x&#39;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; x@lat2d = LAT<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; x@lon2d = LON<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; The just use one of the gsn_csm contour map plotting functions as<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; normal.<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; I hope that&#39;s clear.<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; Will<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; On 28/08/15 1:27 PM, &quot;Yuqiang Zhang&quot; &lt;<a href="mailto:yuqiangzhang.thu@gmail.com">yuqiangzhang.thu@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;wrote:<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;Hi Mira,<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;Check the link here<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<a href="http://www.ncl.ucar.edu/FAQ/" rel="noreferrer" target="_blank">http://www.ncl.ucar.edu/FAQ/</a><br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;For Q 27:<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;When I call one of the gsn_csm_xxxx_map plotting scripts, I get an<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; error<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;message about a units attribute not being correct.<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;If you are using one of the gsn_csm_xxx_map functions to overlay<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; data<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; on a<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;map, and seeing one or both of the following error messages:<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;    (0)   is_valid_lat_ycoord: Warning: The units attribute of<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;    the Y coordinate array is not set to one of the allowable<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;    units values (i.e. &#39;degrees_north&#39;). Your latitude labels<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;    may not be correct.<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;    (0)   is_valid_lat_xcoord: Warning: The units attribute of<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;    the X coordinate array is not set to one of the allowable<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;    units values (i.e. &#39;degrees_east&#39;). Your longitude labels<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;    may not be correct.<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;then this means that your data contains coordinate arrays, but the<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;coordinate arrays either don&#39;t have the necessary &quot;units&quot;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; attribute,<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;or<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;it&#39;s<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;not set to one of the allowable values (&quot;degrees_east&quot; for<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; longitude<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;values<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;and &quot;degrees_north&quot; for latitude values).<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;If your coordinate arrays are indeed degrees east and degrees<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; north,<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; then<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;you can set the units attribute as follows (this code snippet<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; assumes<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; your<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;data array is called &quot;data&quot; and that the coordinate arrays are<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; called<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;&quot;lat&quot;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;and &quot;lon&quot;):<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;  data&amp;lat@units = &quot;degrees_north&quot;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;  data&amp;lon@units = &quot;degrees_east&quot;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;Regards,<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;Yuqiang<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;-----Original Message-----<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;From: <a href="mailto:ncl-talk-bounces@ucar.edu">ncl-talk-bounces@ucar.edu</a> [mailto:<a href="mailto:ncl-talk-bounces@ucar.edu">ncl-talk-bounces@ucar.edu</a>]<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; On<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;Behalf<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;Of <a href="mailto:mberdahl@envsci.rutgers.edu">mberdahl@envsci.rutgers.edu</a><br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;Sent: Thursday, August 27, 2015 10:21 PM<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;To: <a href="mailto:ncl-talk@ucar.edu">ncl-talk@ucar.edu</a><br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;Subject: [ncl-talk] plotting model output where x/y are not<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; lat/lon<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;Hi all,<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;I&#39;m trying to make a simple plot of cumulative snowfall with data<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; from<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; a<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;model I did not run.  When I try to make a simple plot, I receive<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; the<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;following error:<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;(0)     check_for_y_lat_coord: Warning: Data either does not<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; contain a<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;valid latitude coordinate array or doesn&#39;t contain one at all.<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;(0)     A valid latitude coordinate array should have a &#39;units&#39;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; attribute<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;equal to one of the following values:<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;(0)         &#39;degrees_north&#39; &#39;degrees-north&#39; &#39;degree_north&#39;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; &#39;degrees<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; north&#39;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;&#39;degrees_N&#39; &#39;Degrees_north&#39; &#39;degree_N&#39; &#39;degreeN&#39; &#39;degreesN&#39; &#39;deg<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;north&#39;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;(0)     check_for_lon_coord: Warning: Data either does not contain<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; a<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; valid<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;longitude coordinate array or doesn&#39;t contain one at all.<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;(0)     A valid longitude coordinate array should have a &#39;units&#39;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; attribute<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;equal to one of the following values:<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;(0)         &#39;degrees_east&#39; &#39;degrees-east&#39; &#39;degree_east&#39; &#39;degrees<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; east&#39;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;&#39;degrees_E&#39; &#39;Degrees_east&#39; &#39;degree_E&#39; &#39;degreeE&#39; &#39;degreesE&#39; &#39;deg<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; east&#39;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;&gt;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;When I dump the file it looks like this:<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;netcdf ICE.1983.01-12.f77 {<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;dimensions:<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;        TIME = UNLIMITED ; // (365 currently)<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;        X10_69 = 60 ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;        Y18_127 = 110 ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;        SECTOR = 2 ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;        SECTOR1_1 = 1 ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;        ATMLAY14_23 = 10 ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;        bnds = 2 ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;        ATMLAY23_23 = 1 ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;        ATM6H3_3 = 1 ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;        OUTLAY = 20 ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;        OUTLAY1_1 = 1 ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;variables:<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;        double TIME(TIME) ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                TIME:units = &quot;HOURS since 1901-01-15 00:00:00&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                TIME:long_name = &quot;time&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                TIME:time_origin = &quot;15-JAN-1901 00:00:00&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                TIME:axis = &quot;T&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;        float DATE(TIME) ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                DATE:units = &quot;YYYYMMDDHH&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                DATE:long_name = &quot;Date(YYYY MM DD HH)&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                DATE:history = &quot;From ICE.f77.1983.01.01-15&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;        double X10_69(X10_69) ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                X10_69:units = &quot;km&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                X10_69:long_name = &quot;x&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                X10_69:point_spacing = &quot;even&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                X10_69:axis = &quot;X&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; double Y18_127(Y18_127) ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                Y18_127:units = &quot;km&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                Y18_127:long_name = &quot;y&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                Y18_127:point_spacing = &quot;even&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                Y18_127:axis = &quot;Y&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;        float LON(Y18_127, X10_69) ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                LON:units = &quot;degrees&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                LON:long_name = &quot;Longitude&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                LON:history = &quot;From ICE.f77.1983.01.01-15&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;        float LAT(Y18_127, X10_69) ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                LAT:units = &quot;degrees&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                LAT:long_name = &quot;Latitude&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;                LAT:history = &quot;From ICE.f77.1983.01.01-15&quot; ;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;Clearly there are lats and lons associated with the x and y<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; spacing,<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; but<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;I&#39;m<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;not sure how to tell NCL how to use those.  Does anyone have<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt; advice on<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;this?<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;Thanks in advance,<br>
&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt; &gt;Mira<br>
&gt;<br>
&gt;<br>
</div></div><div class="HOEnZb"><div class="h5">&gt; _______________________________________________<br>
&gt; ncl-talk mailing list<br>
&gt; <a href="mailto:ncl-talk@ucar.edu">ncl-talk@ucar.edu</a><br>
&gt; List instructions, subscriber options, unsubscribe:<br>
&gt; <a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank">http://mailman.ucar.edu/mailman/listinfo/ncl-talk</a><br>
&gt;<br>
</div></div></blockquote></div><br></div>