The people at STScI put me in touch with Peter Verveer, the author of nd_image. Unfortunately Peter is currently unable to maintain the code (either in numarray or scipy), but he did send me some comments on the problem discussed in this thread. Here's what he said:
James. ----- Hi James, Yes, it could be that you see some mirroring. Let me first explain what the mode options do: If you try to interpolate a value that falls outside of the boundaries, then that is done by either setting it constant (mode='constant') or by mapping to a position inside the boundaries, i.e. by mirroring, and then interpolating. So the mode argument really deals with extrapolating. Problem is when you are mapping a value that is inside the boundaries, but very close. Interpolation is done by splines which require that a window is placed around the point you are interpolating, and the result is calculated from the values inside that window. Thus, if you are close to the boundary, part of that window will fall outside the boundaries, and the algorithm must choose how to set the values outside the boundary. Ideally that would be done in the same way as above, i.e. you should have the choice if that is done by a constant value, or by mirroring etc. Unfortunately, the spline algorithms that I use (references for the algorithm are in the manual) have an intrinsic mirroring assumption build in. Thus for interpolating values inside the boundaries, a mirror boundary is the only option. I did not figure out a way to modify the interpolation algorithms. Therefore, if you choose a mode different from mirroring, then you end up with small artifacts at the boundaries. Presumably these artifacts will get bigger if the order of spline interpolation you select is larger. So, its not really a bug, its a undesired feature... Cheers, Peter _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion