<div dir="ltr"><span style="font-size:12.8px">Wrf_user_ll_to_ij does not do any bounds checking to ensure points are in the WRF domain because it can also be generically used to determine grid point indexes based only on a map projection and geographic points.  The underlying function is wrf_ll_to_ij (<a href="https://www.ncl.ucar.edu/Document/Functions/Built-in/wrf_ll_to_ij.shtml" target="_blank">https://www.ncl.ucar.edu/Docu<wbr>ment/Functions/Built-in/wrf_<wbr>ll_to_ij.shtml</a>), where the wrf_user_ll_to_ij version does the extraction of the map projection parameters for you.  So, it's possible to use the underlying function without any actual WRF data files.  I'd be leery of taking away the ability of the function to answer questions like "how big of a grid do I need to include this lat,lon point?".  So, we can probably create a new function, say "in_wrf_domain(...)", that applies the same bounds checking that you are doing on the result.  I'll make a ticket for it.</span><br><div><br></div><div>Regards,</div><div><br></div><div><span style="font-size:12.8px">Bill</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 21, 2017 at 2:24 PM, Jared Lee <span dir="ltr"><<a href="mailto:jaredlee@ucar.edu" target="_blank">jaredlee@ucar.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Also, as one more follow-up, I think I found an acceptable work-around to the issue of identifying which observations are within the WRF domain. I ran all the observation (lon,lat) pairs through wrf_user_ll_to_ij, and then found the indices of the (i,j) pairs that were actually within the WRF domain (that's the workaround for the bug in wrf_user_ll_to_ij). I've checked the remaining non-Alaska observations that make it through that process, and those are indeed within the domain. So I think that works for my needs.<span class="HOEnZb"><font color="#888888"><div><br></div><div>Jared</div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 21, 2017 at 11:34 AM, Jared Lee <span dir="ltr"><<a href="mailto:jaredlee@ucar.edu" target="_blank">jaredlee@ucar.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Mary,<div><br></div><div>I'm attaching both the mapgrid.png and another map of the domain I made earlier from my own script. (The landmask plot was made from a wrfout file that contained all the static fields, such as LANDMASK and HGT; the wrfout files I'm reading in are subsetted with only a small number of variables to minimize storage requirements.)</div><div><br></div><div>I have also written a demo script to show what I believe are bugs both in the wrf_user_ll_to_ij and rcm2points_Wrap functions. That script points to a sample wrfout and madis file on glade. I've attached that script here as well. The wrf_user_ll_to_ij function returns nonsense (i,j) values for (lon,lat) points outside the WRF domain. rcm2points also interpolates WRF data to many of these points outside the WRF domain. I set up some print statements in stages of thinning the data to progressively highlight the problems with both functions.</div><div><br></div><div>Preferred behavior (from my perspective) would be to return missing values for (lat,lon) points outside the WRF domain, both for wrf_user_ll_to_ij and rcm2points. At the very least, wrf_user_ll_to_ij should not give non-existing (i,j) coordinates. And rcm2points should only be an interpolation function, not an extrapolation function.</div><span class="m_-2208427067507987577HOEnZb"><font color="#888888"><div><br></div><div>Jared</div><div><br></div><div><br></div></font></span></div><div class="m_-2208427067507987577HOEnZb"><div class="m_-2208427067507987577h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 20, 2017 at 9:59 PM, Mary Haley <span dir="ltr"><<a href="mailto:haley@ucar.edu" target="_blank">haley@ucar.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-size:small">Hi Jared,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">It would help if I could see a picture of your WRF grid. You said that it is polar stereographic, yet it crosses the dateline. </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I think that gc_inout might still work for you, but I agree there could be issues if it crosses the dateline. However, it's possible we could break this up into two grids, but I first need to see what it looks like.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Can you take the attached script, plug in your WRF file, run it, and send me the mapgrid.png file?</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Or, even better, if have the WRF and MADIS files on the NCAR supers, can you point me to them?</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Thanks,</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 class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-2208427067507987577m_-7119682153212300051h5">On Mon, Nov 20, 2017 at 6:17 PM, Jared Lee <span dir="ltr"><<a href="mailto:jaredlee@ucar.edu" target="_blank">jaredlee@ucar.edu</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-2208427067507987577m_-7119682153212300051h5"><div dir="ltr">Hi Dave,<div><br></div><div>Thanks for the suggestion, but I'm not optimistic that that will work for my problem. I think finding the boundaries of an arbitrary WRF grid as a spherical polygon would be a non-trivial task; I don't know how I would even go about doing that.</div><div><br></div><div>Thinking about it, I can probably approximately solve this problem in a few steps with a combination of wrf_user_ll_to_ij and then gc_latlon (by calculating the distance between obs and "nearest grid points" along the edge of the WRF domain and then applying a distance threshold). I'll try that tomorrow. I think I've found a bug with wrf_user_ll_to_ij, though (it gives me non-existent (i,j) values for (lon,lat) points outside the domain), and I'll submit a separate ticket on that.</div><span class="m_-2208427067507987577m_-7119682153212300051m_2621940527012229656HOEnZb"><font color="#888888"><div><br></div><div>Jared</div></font></span></div><div class="gmail_extra"><div><div class="m_-2208427067507987577m_-7119682153212300051m_2621940527012229656h5"><br><div class="gmail_quote">On Mon, Nov 20, 2017 at 5:39 PM, Dave Allured - NOAA Affiliate <span dir="ltr"><<a href="mailto:dave.allured@noaa.gov" target="_blank">dave.allured@noaa.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Jared,<div><br></div><div>See whether the function gc_inout will work in your case.  You would need to get the boundaries of the WRF grid as a spherical polygon.  There may already be published WRF polygons as shape files; I am not familiar with that.  Then use the function gc_inout to determine inside or outside for each obs location.</div><div><br></div><div>In essence you would be applying two mask tests to each obs point, because you also say you want to select within a lat/lon box.  Use gc_inout to test against the larger WRF grid, and use simple arithmetic comparisons for the lat/lon box.</div><div><br></div><div>Caution, there is a little trap here.  Do not use gc_inout for testing simple four-sided lat/lon bounding boxes.  You would probably get something unexpected.  gc_inout uses spherical polygons on the earth's surface.  Such polygons have curved edges on the simple lat/lon plane.</div><span class="m_-2208427067507987577m_-7119682153212300051m_2621940527012229656m_3517731975536789802HOEnZb"><font color="#888888"><div><br></div><div>--Dave</div></font></span><span><div><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 20, 2017 at 4:26 PM, Jared Lee <span dir="ltr"><<a href="mailto:jaredlee@ucar.edu" target="_blank">jaredlee@ucar.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi, I have a WRF domain on a polar stereographic grid (which also happens to span the dateline), and I want to interpolate model data to MADIS observation locations that are within my domain. Is there a straightforward way to evaluate which observation lat/lon points are outside the WRF grid?<div><br></div><div>Because it's a polar stereographic grid, doing a first pass to eliminate MADIS stations by comparing to the min/max latitude and longitude of the WRF grid still leaves a ton of geographic area that would be inside that lat/lon box but outside the WRF grid (and that's complicated further by the WRF domain spanning the dateline).<div><br></div><div>I tried using rcm2points to do horizontal interpolation, but that function is still interpolating to numerous grid points that are thousands of km outside my WRF domain. I also tried feeding wrf_user_ll_to_ij some lat/lon values for points well outside my domain, and it gives me nonsense (but non-missing) values for nearest grid points.</div><div><br></div><div>Anyone have any ideas? Or is there a function that already exists to do this that I'm apparently not seeing? It seems like a function to return the (i,j) values of the four surrounding grid points would be an ideal way to accomplish this and be useful in additional contexts and applications.</div><div><br></div><div>Jared</div></div></div></blockquote></div></div></div></span></div>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span>-- <br><div class="m_-2208427067507987577m_-7119682153212300051m_2621940527012229656m_3517731975536789802gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div><div><div><div><font face="courier new, monospace">==============================<wbr>=<br>Jared A. Lee, Ph.D.<br></font></div><font face="courier new, monospace">Project Scientist I<br></font></div><font face="courier new, monospace">Research Applications Laboratory<br></font></div><font face="courier new, monospace">National Center for Atmospheric Research<br>Boulder, Colorado, USA</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Member, AMS Planning Commission<br><br></font></div><font face="courier new, monospace">Email: <a href="mailto:jaredlee@ucar.edu" target="_blank">jaredlee@ucar.edu</a> (w)<br></font></div><font face="courier new, monospace">Phone: <a href="tel:(303)%20497-8485" value="+13034978485" target="_blank">303.497.8485</a> (w)</font><div><font face="courier new, monospace">Web: <a href="https://staff.ucar.edu/users/jaredlee" target="_blank">https://staff.ucar.edu/users/j<wbr>aredlee</a><br>==============================<wbr>=</font><br></div></div></div></div></div>
</span></div>
<br></div></div>______________________________<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" rel="noreferrer" target="_blank">http://mailman.ucar.edu/mailma<wbr>n/listinfo/ncl-talk</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_-2208427067507987577m_-7119682153212300051gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div><div><div><div><font face="courier new, monospace">==============================<wbr>=<br>Jared A. Lee, Ph.D.<br></font></div><font face="courier new, monospace">Project Scientist I<br></font></div><font face="courier new, monospace">Research Applications Laboratory<br></font></div><font face="courier new, monospace">National Center for Atmospheric Research<br>Boulder, Colorado, USA</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Member, AMS Planning Commission<br><br></font></div><font face="courier new, monospace">Email: <a href="mailto:jaredlee@ucar.edu" target="_blank">jaredlee@ucar.edu</a> (w)<br></font></div><font face="courier new, monospace">Phone: <a href="tel:(303)%20497-8485" value="+13034978485" target="_blank">303.497.8485</a> (w)</font><div><font face="courier new, monospace">Web: <a href="https://staff.ucar.edu/users/jaredlee" target="_blank">https://staff.ucar.edu/users/j<wbr>aredlee</a><br>==============================<wbr>=</font><br></div></div></div></div></div>
</div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_-2208427067507987577gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div><div><div><div><font face="courier new, monospace">==============================<wbr>=<br>Jared A. Lee, Ph.D.<br></font></div><font face="courier new, monospace">Project Scientist I<br></font></div><font face="courier new, monospace">Research Applications Laboratory<br></font></div><font face="courier new, monospace">National Center for Atmospheric Research<br>Boulder, Colorado, USA</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Member, AMS Planning Commission<br><br></font></div><font face="courier new, monospace">Email: <a href="mailto:jaredlee@ucar.edu" target="_blank">jaredlee@ucar.edu</a> (w)<br></font></div><font face="courier new, monospace">Phone: <a href="tel:(303)%20497-8485" value="+13034978485" target="_blank">303.497.8485</a> (w)</font><div><font face="courier new, monospace">Web: <a href="https://staff.ucar.edu/users/jaredlee" target="_blank">https://staff.ucar.edu/users/<wbr>jaredlee</a><br>==============================<wbr>=</font><br></div></div></div></div></div>
</div>
</div></div><br>______________________________<wbr>_________________<br>
ncl-talk mailing list<br>
<a href="mailto:ncl-talk@ucar.edu">ncl-talk@ucar.edu</a><br>
List instructions, subscriber options, unsubscribe:<br>
<a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank">http://mailman.ucar.edu/<wbr>mailman/listinfo/ncl-talk</a><br>
<br></blockquote></div><br></div>