 |
This is a satellite image of a forested area near Uppsala, Sweden.
The green dots are sample plots in clusters where a number of forest variables
are measured. We are investigating ways of making estimates of these variables
over larger areas (for each cell on a raster grid) for forestry planning
purposes using the sample plots together with satellite imagery. Our initial
attempts at using kriging, co-kriging and least-squares regression yielded
fairly poor results when evaluated at a number of randomly distributed
validation plots. One of the conclusions was that spatial interpolation
methods perform poorly in areas where there are well-defined boundaries
in the landscape.
To address this, we are now looking at using image processing and computer
vision methods to detect these sharp boundaries in the satellite image.
Spatial interpolation can then be locally controlled so that boundaries
are not crossed when interpolating from the sample plots. This is similar
to other 'stratified' interpolation methods, except we don't require that
our detected boundaries form closed polygons.
We believe this is a novel and sensible approach to mapping forest variables.
The result is a continuous description of forest parameters on a raster
grid, with a separately-stored vector layer describing natural and artifical
boundaries in the landscape. There is no longer a requirement to define
closed polygons that represent an assumed homogeneous forest stand.
|
 |
This image shows typical results of making ordinary kriging estimates
of wood volume (in m3/ha) using only the sample plot data. The scale is
represented by a pseudocolor lookup table from blue (0) to red (360). You
can compare this to the satellite image above where high volume stands
would generally appear dark and recent cuts appear brighter.
Kriging was done with GSTAT
1.9c (Pebesma, 1996) with extensions for reading ER-Mapper datasets
using the following command file:
## Local ordinary kriging on a grid
points(vol): 'c:/ermapper/dataset/jec/kol_s.eas', x=1, y=2, v=4,
min=4, max=24, radius=600;
variogram(vol): 4590 Nug(0) + 12540 exp(191);
# points(): 'c:/ermapper/dataset/jec/valid.eas', x=1, y=2;
# set output='c:/ermapper/dataset/valid_vol.eas';
mask: 'c:/ermapper/dataset/jec/mask20m.ers';
predictions(vol): 'c:/ermapper/gstat/output/vol_ok.ers';
variances(vol): 'c:/ermapper/gstat/output/vol_var_ok.ers';
|
 |
This shows the results of applying ordinary kriging from the sample
plots but this time rejecting all plots that are on the opposite side of
a boundary from the estimation point. Boundary crossings are checked using
a line-of-sight from the estimation point to each potential data point.
In practice, checking this line of sight is rather complex because one
must allow for an even number of crossings of the same boundary indicating
you are still 'on the same side'. Even this criteria is not a sufficient
indicator when dealing with open boundaries, or if the line of sight passes
through a node.
The corresponding command file, with the addition of an ER-Mapper vector
layer which is a mixture of polylines (open) and polygons (closed) describing
the edges in the image.
## Local ordinary kriging on a grid with boundaries
points(vol): 'c:/ermapper/dataset/jec/kol_s.eas', x=1, y=2, v=4,
min=2, max=24, radius=600;
variogram(vol): 4590 Nug(0) + 12540 exp(191);
# points(): 'c:/ermapper/dataset/jec/valid.eas', x=1, y=2;
# set output='c:/ermapper/dataset/valid_vol.eas';
mask: 'c:/ermapper/dataset/jec/mask20m.ers';
predictions(vol): 'c:/ermapper/gstat/output/vol_ok_edg.ers';
variances(vol): 'c:/ermapper/gstat/output/vol_var_ok_edg.ers';
edges: 'c:/ermapper/dataset/can_vect_fix.erv';
|