From: Jeff Whitaker <jeffrey.whitaker@no...>  20110307 13:04:06

On 3/6/11 8:58 PM, Juan A. Saenz wrote: > Hi, > > I use Basemap and netCDF4python on a regular basis, and find them > very useful tools. Thank you for developing them! > > I noticed that when using basemap.interp for nearest neighbor > (order=0) the interpolation is not masked, and nearest neighbor masked > values will be used in the interpolation. I was wondering if you could > suggest a way to do nearest neighbor interpolation where masked are > supported, i.e. nearest neighbor values that are not masked. > > Thanks for your help, > Juan > Juan: I agree that this would be desirable behavior. Unfortunately, it's not obvious to me how to do it. I'll think about it and get back to you. (cc'ing matplotlibusers list). Jeff 
From: Jeff Whitaker <jeffrey.whitaker@no...>  20110307 13:04:06

On 3/6/11 8:58 PM, Juan A. Saenz wrote: > Hi, > > I use Basemap and netCDF4python on a regular basis, and find them > very useful tools. Thank you for developing them! > > I noticed that when using basemap.interp for nearest neighbor > (order=0) the interpolation is not masked, and nearest neighbor masked > values will be used in the interpolation. I was wondering if you could > suggest a way to do nearest neighbor interpolation where masked are > supported, i.e. nearest neighbor values that are not masked. > > Thanks for your help, > Juan > Juan: I agree that this would be desirable behavior. Unfortunately, it's not obvious to me how to do it. I'll think about it and get back to you. (cc'ing matplotlibusers list). Jeff 
From: Jeff Whitaker <jswhit@fa...>  20110307 13:37:16

On 3/7/11 5:50 AM, Jeff Whitaker wrote: > On 3/6/11 8:58 PM, Juan A. Saenz wrote: >> Hi, >> >> I use Basemap and netCDF4python on a regular basis, and find them >> very useful tools. Thank you for developing them! >> >> I noticed that when using basemap.interp for nearest neighbor >> (order=0) the interpolation is not masked, and nearest neighbor masked >> values will be used in the interpolation. I was wondering if you could >> suggest a way to do nearest neighbor interpolation where masked are >> supported, i.e. nearest neighbor values that are not masked. >> >> Thanks for your help, >> Juan >> > Juan: I agree that this would be desirable behavior. Unfortunately, > it's not obvious to me how to do it. I'll think about it and get back > to you. (cc'ing matplotlibusers list). > > Jeff > Juan: On second thought, I'm not sure this is desirable behavior. I would guess that most of the time, if a nearest neighbor is masked, the user would expect the interpolation routine to return a masked value. I would be interested to hear what others think. Jeff 
From: Juan A. Saenz <u4968525@an...>  20110307 21:25:54

Jeff, thanks for your reply. One situation where one might require masked nearest neighbor interpolation is when, on a given fixed grid, interpolating velocities on cell corners (Bgrid) to faces (Cgrid). Cells will be defined as either land or ocean cells, masked or unmasked respectively. The masked or unmasked character of cells does not change. Interpolating velocities from corners adjacent to masked cells, to cell centers on unmasked cells will require the behavior in question. Imagine two adjacent cells, one masked and the other not. The velocities on the cell corners that lie on the coast (adjacent to a masked and an unmasked cell) are masked. A desireable behavior of the interpolator would be to produce an unmasked cell centered velocity on the unmasked cell that uses values from adjacent unmasked velocity values. Thanks, Juan On 8/03/11 12:23 AM, Jeff Whitaker wrote: > On 3/7/11 5:50 AM, Jeff Whitaker wrote: >> On 3/6/11 8:58 PM, Juan A. Saenz wrote: >>> Hi, >>> >>> I use Basemap and netCDF4python on a regular basis, and find them >>> very useful tools. Thank you for developing them! >>> >>> I noticed that when using basemap.interp for nearest neighbor >>> (order=0) the interpolation is not masked, and nearest neighbor masked >>> values will be used in the interpolation. I was wondering if you could >>> suggest a way to do nearest neighbor interpolation where masked are >>> supported, i.e. nearest neighbor values that are not masked. >>> >>> Thanks for your help, >>> Juan >>> >> Juan: I agree that this would be desirable behavior. Unfortunately, >> it's not obvious to me how to do it. I'll think about it and get back >> to you. (cc'ing matplotlibusers list). >> >> Jeff >> > > Juan: On second thought, I'm not sure this is desirable behavior. I > would guess that most of the time, if a nearest neighbor is masked, > the user would expect the interpolation routine to return a masked > value. I would be interested to hear what others think. > > Jeff >  Juan A. Saenz Postdoctoral Fellow Geophysical Fluid Dynamics Research School of Earth Sciences Australian National University Building 61 Mills Road Canberra, ACT 0200 AUSTRALIA Office: +61 2 6125 9968 Admin: +61 2 6125 5502 Fax: +61 2 6257 2737 
From: Aman Thakral <aman.thakral@gm...>  20110307 14:39:01
Attachments:
Message as HTML

On a similar note, are there any alternatives available to nearest neighbor? For example, kriging? I remember seeing a geostats library in python (hpgl i think), but I found the API rather impractical and difficult to use. Thanks, Aman On Mon, Mar 7, 2011 at 8:23 AM, Jeff Whitaker <jswhit@...> wrote: > On 3/7/11 5:50 AM, Jeff Whitaker wrote: > > On 3/6/11 8:58 PM, Juan A. Saenz wrote: > >> Hi, > >> > >> I use Basemap and netCDF4python on a regular basis, and find them > >> very useful tools. Thank you for developing them! > >> > >> I noticed that when using basemap.interp for nearest neighbor > >> (order=0) the interpolation is not masked, and nearest neighbor masked > >> values will be used in the interpolation. I was wondering if you could > >> suggest a way to do nearest neighbor interpolation where masked are > >> supported, i.e. nearest neighbor values that are not masked. > >> > >> Thanks for your help, > >> Juan > >> > > Juan: I agree that this would be desirable behavior. Unfortunately, > > it's not obvious to me how to do it. I'll think about it and get back > > to you. (cc'ing matplotlibusers list). > > > > Jeff > > > > Juan: On second thought, I'm not sure this is desirable behavior. I > would guess that most of the time, if a nearest neighbor is masked, the > user would expect the interpolation routine to return a masked value. I > would be interested to hear what others think. > > Jeff > > > >  > What You Don't Know About Data Connectivity CAN Hurt You > This paper provides an overview of data connectivity, details > its effect on application quality, and explores various alternative > solutions. http://p.sf.net/sfu/progressd2d > _______________________________________________ > Matplotlibusers mailing list > Matplotlibusers@... > https://lists.sourceforge.net/lists/listinfo/matplotlibusers > 
From: Jeff Whitaker <jswhit@fa...>  20110307 15:03:16
Attachments:
Message as HTML

On 3/7/11 7:38 AM, Aman Thakral wrote: > On a similar note, are there any alternatives available to nearest > neighbor? For example, kriging? I remember seeing a geostats library > in python (hpgl i think), but I found the API rather impractical and > difficult to use. > > Thanks, > Aman Aman: The basemap interp function is just a convenience function for simple regridding (linear, cubic and nearest neighbor). scipy.interpolate (http://docs.scipy.org/doc/scipy/reference/interpolate.html) provides many more options. Jeff > > On Mon, Mar 7, 2011 at 8:23 AM, Jeff Whitaker <jswhit@... > <mailto:jswhit@...>> wrote: > > On 3/7/11 5:50 AM, Jeff Whitaker wrote: > > On 3/6/11 8:58 PM, Juan A. Saenz wrote: > >> Hi, > >> > >> I use Basemap and netCDF4python on a regular basis, and find them > >> very useful tools. Thank you for developing them! > >> > >> I noticed that when using basemap.interp for nearest neighbor > >> (order=0) the interpolation is not masked, and nearest neighbor > masked > >> values will be used in the interpolation. I was wondering if > you could > >> suggest a way to do nearest neighbor interpolation where masked are > >> supported, i.e. nearest neighbor values that are not masked. > >> > >> Thanks for your help, > >> Juan > >> > > Juan: I agree that this would be desirable behavior. > Unfortunately, > > it's not obvious to me how to do it. I'll think about it and > get back > > to you. (cc'ing matplotlibusers list). > > > > Jeff > > > > Juan: On second thought, I'm not sure this is desirable behavior. I > would guess that most of the time, if a nearest neighbor is > masked, the > user would expect the interpolation routine to return a masked > value. I > would be interested to hear what others think. > > Jeff > > >  > What You Don't Know About Data Connectivity CAN Hurt You > This paper provides an overview of data connectivity, details > its effect on application quality, and explores various alternative > solutions. http://p.sf.net/sfu/progressd2d > _______________________________________________ > Matplotlibusers mailing list > Matplotlibusers@... > <mailto:Matplotlibusers@...> > https://lists.sourceforge.net/lists/listinfo/matplotlibusers > > 
From: Jeff Whitaker <jswhit@fa...>  20110307 23:52:28

On 3/7/11 2:25 PM, Juan A. Saenz wrote: > Jeff, thanks for your reply. > > One situation where one might require masked nearest neighbor > interpolation is when, on a given fixed grid, interpolating velocities > on cell corners (Bgrid) to faces (Cgrid). Cells will be defined as > either land or ocean cells, masked or unmasked respectively. The > masked or unmasked character of cells does not change. Interpolating > velocities from corners adjacent to masked cells, to cell centers on > unmasked cells will require the behavior in question. Imagine two > adjacent cells, one masked and the other not. The velocities on the > cell corners that lie on the coast (adjacent to a masked and an > unmasked cell) are masked. A desireable behavior of the interpolator > would be to produce an unmasked cell centered velocity on the > unmasked cell that uses values from adjacent unmasked velocity values. > > Thanks, > Juan > Juan: I can see why you want it in this case, but I think in general users would expect a masked value if the nearest neighbor is masked. In addition, I don't see how to implement it easily. How far are you willing to go to find a nearest neighbor that is not masked? In short, for your use case you'll have to implement your own custom solution. Of course, if you can show me a simple modification to the Basemap interp function that does what you want, and can be enabled with a kwarg, I'll reconsider. Jeff > > On 8/03/11 12:23 AM, Jeff Whitaker wrote: >> On 3/7/11 5:50 AM, Jeff Whitaker wrote: >>> On 3/6/11 8:58 PM, Juan A. Saenz wrote: >>>> Hi, >>>> >>>> I use Basemap and netCDF4python on a regular basis, and find them >>>> very useful tools. Thank you for developing them! >>>> >>>> I noticed that when using basemap.interp for nearest neighbor >>>> (order=0) the interpolation is not masked, and nearest neighbor masked >>>> values will be used in the interpolation. I was wondering if you could >>>> suggest a way to do nearest neighbor interpolation where masked are >>>> supported, i.e. nearest neighbor values that are not masked. >>>> >>>> Thanks for your help, >>>> Juan >>>> >>> Juan: I agree that this would be desirable behavior. Unfortunately, >>> it's not obvious to me how to do it. I'll think about it and get back >>> to you. (cc'ing matplotlibusers list). >>> >>> Jeff >>> >> >> Juan: On second thought, I'm not sure this is desirable behavior. I >> would guess that most of the time, if a nearest neighbor is masked, >> the user would expect the interpolation routine to return a masked >> value. I would be interested to hear what others think. >> >> Jeff >> > >  Jeffrey S. Whitaker Phone : (303)4976313 Meteorologist FAX : (303)4976449 NOAA/OAR/PSD R/PSD1 Email : Jeffrey.S.Whitaker@... 325 Broadway Office : Skaggs Research Cntr 1D113 Boulder, CO, USA 803033328 Web : http://tinyurl.com/5telg 
From: Juan A. Saenz <juan.saenz@an...>  20110309 04:05:57

If I think of something, I'll let you know. In the meantime, I'd like to point out the following: Nearest neighbor returns a masked interpolation point if the nearest neighbor is masked (this is just what you've already told me). If there are two equidistant neighbors, it returns the one on the "bottom". I, naively, expected it to return the unmasked one, but I suppose that this is just natural. It might be worth pointing this out in the documentation. Thanks again, Juan On 8/03/11 10:52 AM, Jeff Whitaker wrote: > On 3/7/11 2:25 PM, Juan A. Saenz wrote: >> Jeff, thanks for your reply. >> >> One situation where one might require masked nearest neighbor >> interpolation is when, on a given fixed grid, interpolating >> velocities on cell corners (Bgrid) to faces (Cgrid). Cells will be >> defined as either land or ocean cells, masked or unmasked >> respectively. The masked or unmasked character of cells does not >> change. Interpolating velocities from corners adjacent to masked >> cells, to cell centers on unmasked cells will require the behavior >> in question. Imagine two adjacent cells, one masked and the other >> not. The velocities on the cell corners that lie on the coast >> (adjacent to a masked and an unmasked cell) are masked. A desireable >> behavior of the interpolator would be to produce an unmasked cell >> centered velocity on the unmasked cell that uses values from >> adjacent unmasked velocity values. >> >> Thanks, >> Juan >> > > Juan: I can see why you want it in this case, but I think in general > users would expect a masked value if the nearest neighbor is masked. > In addition, I don't see how to implement it easily. How far are you > willing to go to find a nearest neighbor that is not masked? > > In short, for your use case you'll have to implement your own custom > solution. Of course, if you can show me a simple modification to the > Basemap interp function that does what you want, and can be enabled > with a kwarg, I'll reconsider. > > Jeff > >> >> On 8/03/11 12:23 AM, Jeff Whitaker wrote: >>> On 3/7/11 5:50 AM, Jeff Whitaker wrote: >>>> On 3/6/11 8:58 PM, Juan A. Saenz wrote: >>>>> Hi, >>>>> >>>>> I use Basemap and netCDF4python on a regular basis, and find them >>>>> very useful tools. Thank you for developing them! >>>>> >>>>> I noticed that when using basemap.interp for nearest neighbor >>>>> (order=0) the interpolation is not masked, and nearest neighbor >>>>> masked >>>>> values will be used in the interpolation. I was wondering if you >>>>> could >>>>> suggest a way to do nearest neighbor interpolation where masked are >>>>> supported, i.e. nearest neighbor values that are not masked. >>>>> >>>>> Thanks for your help, >>>>> Juan >>>>> >>>> Juan: I agree that this would be desirable behavior. Unfortunately, >>>> it's not obvious to me how to do it. I'll think about it and get back >>>> to you. (cc'ing matplotlibusers list). >>>> >>>> Jeff >>>> >>> >>> Juan: On second thought, I'm not sure this is desirable behavior. I >>> would guess that most of the time, if a nearest neighbor is masked, >>> the user would expect the interpolation routine to return a masked >>> value. I would be interested to hear what others think. >>> >>> Jeff >>> >> >> > > 