I'm trying to find an optimized spatial interpolation method that deals with fixed-location sample data points. Say if I have fixed-location sampling sites and collect data daily, and then use these data to create interpolation surfaces. Is there a method that pre-process the spatial relationships among those sampling sites and then integrate this spatial relationship into the interpolation method to speed up the whole interpolation process? I googled some information but couldn't find what I want. Can anyone put me on the right direction? Thanks.
-
$\begingroup$ What is the relationship between the data? Can you give more detail? It is very hard to point you in the right direction without any examples or more detailed explanation of what it is you are trying to do. It sounds like a very specific and problem dependent solution. I think you may have to come up with the method yourself. $\endgroup$– Isopycnal OscillationCommented Oct 30, 2014 at 17:39
-
1$\begingroup$ Sounds more like a question for GIS Stack Exchange. $\endgroup$– f.thorpe ♦Commented Oct 30, 2014 at 22:08
-
$\begingroup$ @Isopycnal Oscillation: I don't have real data, what I'm trying to find is a method that will do preprocessing on input data sets if they are collected repeatedly on same sites. Instead of generating interpolation surfaces independently, the optimized method should be less time-consuming. $\endgroup$– l.z.lzCommented Oct 31, 2014 at 1:32
-
$\begingroup$ @farrenthorpe Thanks.I would repost the question there. $\endgroup$– l.z.lzCommented Oct 31, 2014 at 1:34
-
1$\begingroup$ I think there are many datasets that require interpolation in Earth Science that are not managed by existing GIS methods. While this specific question might be relevant to GIS discussions, it can also be part of Earth Science in my view $\endgroup$– arkaiaCommented Dec 17, 2014 at 16:17
3 Answers
Welcome to an interesting and important field of research!
Interpolation is a large topic and there are many techniques. I agree that the GIS or math forum could be more initiated, but for completeness, I'll post some thoughts here.
The choice of method depends on the type of data you are using and the implementation depends on your environment. GIS software should always have a number of methods and parameters to adjust. It's also rather easy to create a script in e.g python or matlab to test and evaluate interpolation methods (E.g this).
Some questions to answer before you chose your method are:
- Can I trust all my data? How much noise do I have?
- Should only the nearest points be considered for the interpolation? How far should I 'feel' the values from data points?
- How many dimensions should be interpolated? E.g. should I take time into consideration?
- Should the curves be as smooth as possible?
- Should all interpolated values be in a specific range, within min-max of the whole data set or between the nearest points?
- Do I know the total value? E.g. when interpolating population density I might know the total population and this could help me find the right interpolation method.
- Process speed, that is an issue in your case might force you to choose a simpler technique.
Wikipedia has an overview and Caruso, C., and F. Quarta. "Interpolation methods comparison." Gives a rather good introduction of the techniques and there are some good webpages on GIS and interpolation.
The most important step is to test the method you choose. Again, there are various ways to do so, but the easiest is to simply leave points out from you data set and interpolate the values without them. Try to make the interpolated value as close to the data value as possible.
Kriging are methods based on the actual data instead of a curve. It's often a good first try on spatial data but also in other application like this. Spline methods produces smoother curves. People doing computer graphics are experts on this, but there can also be applications where you'll aspect smooth changes in a model.
Naturally, more complex methods (e.g. kriging) take longer time to process, whiles simpler algorithms (e.g. bilinear or nearest-neighbor) are faster. Lower resolution of your output raster (array) would also speed up the process. You can let your resolution depend on the variance of the data, so that you interpolate less points in a flat surface and more points for a surface with higher relief. This techniques are common practice in signal processing and the experts are here.
A good place to looking is geostatistics. It is a branch of statistics focusing on spatial or spatiotemporal datasets. In its earlier days, geostatistics was also known as the theory of regionalized variables.
Geostatistics was initially developed by George Matheron, a French mathematician and geologist - though when I first heard about him in the 1980s he was described as a mining engineer.
Matheron developed geostatistics to find a better way to determined ore reserves more accurately. His other other aim was to try to ascertain a level of accuracy for ore reserves (i.e x ounces of gold at a confidence of y %) . Since the initial development of geostatistics in the 1960s for ore reserves in mining, the technique has been used in other fields where there is a spatial co-relation between data samples, such a forestry, pollution contamination around metal smelters, soil science, geochemistry, etc.
One of the key tools of geostatistics is the variogram. The variogram is used to determine the distance at which samples can be regarded as being independent of each other.
The mathematics for variograms can look bewildering, but variograms can be explained simply. Consider a line of 100 equally spaced sample points, say 1 metre apart.
- Determine the variance for all data points 1 m apart, i.e 1 & 2, 2 & 3, ... 19 & 20 ...
- Next calculate the variance for all points 2 m apart: 1 & 3, 3 & 5, ... 17 & 19, also 2 & 4, 4 & 6, ... 18 & 20 ...
- Then find the variance for samples 4 m apart and then 5 m apart and 10 m, 20 m, 25 m and 50 m
The sample distances must be factors of the total distance. You can find the variance for samples 3 m apart because 3 doesn't divide into 100 evenly, but if there were only 99 samples then things are totally different.
The distance between samples is known as the lag distance. On a plot of variance versus lag distance, for low lag values the curve will rise. Where the curve flatten out is the distance at which samples can be regarded as being independent of each other. The variogram has its roots in the correlation diagrams.
For data on a 2D grid, it is prudent to obtain a suite of variograms along the directions north-south, east-west, northwest-southeast and northeast-southwest to obtain an initial variance rosette. Any trend in the data will be seen from this and a better variogram orientation can then be tried.
Where the distance between samples is strictly not uniform, but within accepted tolerances, adjustments will need to be made to the data. Also if data is clustered within areas, the data will need to be declustered first.
When data points are being considered it is common for a search ellipse to be used and for the search ellipse to be orientated. For example, is the data set is soil contamination samples around a metal smelter, or seed dispersal from trees, the search ellipse would be orientated so the major axis would be aligned with the direction of the prevailing winds.
Because of the amount of calculations involved and the size of some data set, particularly metal grades in geological ore bodies, computers are heavily involved with geostatistical analyses.
An initial reference on geostatistics is Isobel Clark, 1979, Practical Geostatistics, Applied Science Publishers
If you want to estimate a value between sample points then either some form of weighting of samples will need to be used. Within geostatistics, kriging is usually used, but there are many forms of kriging, just to name a few: ordinary, disjunctive, log-normal, indicator. What some people also do is to use other forms of weighting such as inverse distance squared, or inverse distance to another power, usually between 1.5 and 3, but inverse distance squared is the more common of these. The results from kriging and inverse distance squared are then compared. The two techniques will rarely give the same results, but the results should be similar.
Assuming there is spatial correlation between the data points, the interpolation can be done using ordinary Kriging or another variant of the method.
-
1$\begingroup$ This answer is not entirely correct. Ordinary kriging is one of many forms of kriging: disjunctive, lognormal, indicator, etc. Kriging is a means of applying weights to samples. It is a weighting system commonly used in geostatistics, also known as the theory of regionalized variables. Applying the wrong kriging method can lead to errors. $\endgroup$– FredCommented Mar 19, 2015 at 11:59