Hi all,
I was having problems on making 2D interpolations on irregular data
points. I read the past posts on this news group, I read the articles
in David's website, and I read Ken's sample chapter on this subject.
However, there are still some aspects that I would like to ask about.
1. Is it possible to construct an irregular data interpolation scheme
that reduced to bilinear interpolation at the limit of regular grid?
Let me elaborate on this a little bit: The interpolation schemes for
regular grids all take the neighboring 4-pts to do the job, whereas
that for irregular grids takes only 3. Sometimes, we do have cases
where the grid is just slightly distorted and a reasonable 4-pt
interpolation *seems* possible.(namely, it is possible to define the
"neighboring four points," and one starts to wonder if a 4-pt scheme
is superior than the 3-pt scheme.
If 3-pt scheme is superior, then we shouldn't be using 4-pt scheme
even in the case of regular grids. If 4-pt scheme is better, there
should be a way to do 4-pt irregular interpolation, at least when some
conditions are met, right?
2. There is a very good property about 1D linear interpolation, which
can be shown as follows:
IDL> x=dindgen(5)
IDL> y=[1.2,3.2,4.5,6.1,6.2] ; just some arbitrary irregular spaced
data.
IDL> plot, x, y
IDL> print, interpol(y,x,2.1)
4.6599998
IDL> print, interpol(x,y,4.6599998)
2.0999999
that is, INTERPOL(x,y,INTERPOL(y,x,?))=? (? is just any number or
vector.)
I believe this really lies in the fact that the inverse of linear
transformation is still a linear transformation. Therefore, a linear
mapping from x to y is the inverse of the linear mapping from y to x.
(you can add a /spline keyword and INTERPOL(x,y,INTERPOL(y,x,?))=?
won't be true anymore)
Thus, I can claim that linear interpolation in 1-D is a good scheme
(even better than spline) in the sense that I can answer the question
"what x should I use in order to get y?" in a relative simple way when
I use IDL. (if you use spline, then you'll probably need to solve for
a cubic equation to get the job done)
In 2D case, what is the corresponding "good scheme" ? My intuition
tells me that the answer is the TRIGRID method, but I would like to
discuss with you guys before I feel too certain about it. (Or, shall
we suggest ITT built a "backtrace" keyword in all their interpolation
routines?)
3. What is the real difference between INTERPOLATE and BILINEAR? It
seems to me that INTERPOLATE can do everything BILINEAR does, with
more accuracy.
4. What is the real difference between GRIDDATA and TRIANGULATE
+TRIGRID? Does the capability of GRIDDATA covers TRIGRID?
5. In GRIDDATA, there is an option "/linear," However, I wonder what
does linear means when we only have 3 neighbouring points?
|