1v.surf.bspline(1)             Grass User's Manual            v.surf.bspline(1)
2
3
4

NAME

6       v.surf.bspline    -  Bicubic  or  bilinear  spline  interpolation  with
7       Tykhonov regularization
8

KEYWORDS

10       vector, interpolation
11

SYNOPSIS

13       v.surf.bspline
14       v.surf.bspline help
15       v.surf.bspline   [-c]   input=name     [sparse=name]      [output=name]
16       [raster=name]        [sie=float]        [sin=float]       [type=string]
17       [lambda_i=float]   [layer=integer]   [column=string]   [--overwrite]
18
19   Flags:
20       -c  Find best parameters using a cross validation method
21
22       --overwrite
23
24   Parameters:
25       input=name
26           Name of input vector map
27
28       sparse=name
29           Name of input vector map of sparse points
30
31       output=name
32           Name for output vector map
33
34       raster=name
35           Name for output raster map
36
37       sie=float
38           Interpolation spline step value in east direction Default: 4
39
40       sin=float
41           Interpolation spline step value in north direction Default: 4
42
43       type=string
44           Spline type of  interpolation  Options:  bilinear,bicubic  Default:
45           bilinear
46
47       lambda_i=float
48           Thychonov regularization weigth Default: 1
49
50       layer=integer
51           Field  value. If set to 0, z coordinates are used. (3D vector only)
52           Default: 0
53
54       column=string
55           Attribute table column with values to interpolate (if layer>0)
56

DESCRIPTION

58       v.surf.bspline  makes  a  bilinear/bicubic  spline  interpolation  with
59       Tykhonov regularization. The required input is an only 3d points vector
60       map that will be used to interpolate a reference surface.
61       Interpolation is carried out by adjusting a Least-Squares  (LS)  system
62       in  which  the parameters to estime are spline functions. The number of
63       splines doesn't depend on the resolution region, but it depends on  the
64       spline  steps values in the north-south and west-east directions. These
65       spline steps are set by "sin=" and "sie=", respectively. If the  number
66       of  splines  is  bigger than the number of points, the LS system is bad
67       conditioned because there are more unkowns than observations.  In  that
68       case the LS normal matrix can't be inverted.  To allow the inversion of
69       the normal matrix a Tykhonov regularization  is  done.  The  minimizing
70       function  is  the gradient in the case of a bilinear interpolation, and
71       the curvature in the  bicubic  interpolation.  The  lambda_i  parameter
72       associated  with  the  regularization  smooths  the  interpolation. The
73       higher the lambda_i parameter, the smoother the interpolation.
74       The number of splines has a great influence on two things, mainly.  The
75       first  thing is the module's execution time. The second is the RAM use.
76       The higher the number of splines, the longer the time of execution  and
77       the  higher RAM use. A numerical example: 100 splines in each direction
78       imply 10e4 splines in total, that is, a square LS normal matrix of 10e4
79       size.  Inverting this matrix means inverting 100 millions elements!  To
80       improve this problems a Tcholebsky method with triangulars matrixes  is
81       used in the normal matrix inversion. It has also fixed a maximum number
82       of splines for each direction. However, it is also possible running the
83       module  with  a higher number of splines. For a number of spline higher
84       than the fixed maximum,  the  whole  region  is  divided  into  smaller
85       regions. Each subregion is 150x150 splines wide. To avoid contour prob‐
86       lems, the subregions are overlaped one to each  other.  To  estimate  a
87       single  value  within  the overlaped zones, a weighted mean considering
88       the point positions into each subregion is carried out.
89       The required input is a 3d points vector. If nothing  is  specified  z-
90       coordinates  will be used in the interpolation. It could be also possi‐
91       ble to consider an attribute value by specifying "layer=" and "column="
92       parameters. If a vector map with another type of features is used, only
93       points will be  considered.  If  the  "sparse="  vector  is  used,  the
94       "input="  vector  map  will be used to create a reference surface. This
95       surface will be used to make an estimation on  the  points  within  the
96       "sparse=". In this case a vector output ("output=") must be specify. If
97       the "sparse=" is not supplied, the final interpolation output  will  be
98       the  interpolated  reference  surface  from the "input=" vector map. In
99       this case, one of both the  raster  or  vector  output  format  can  be
100       choosen.  For  raster  format ("raster="), the point estimation will be
101       done on a regular grid with a resolution equal to the GRASS region. For
102       vector  format, the estimation will be done on the sparse points of the
103       "input=" vector supplied. Both,  vector  and  raster  output,  are  not
104       allowed simultaneously.
105       A  cross  validation  method has been implemented. It helps to find the
106       optimal lambda_i value that fits the data. It shows the mean and rms of
107       the  residuals  from  the  true  point value and the estimated from the
108       interpolation made with all the data without  the  point  itself.  This
109       procedure  is  done for fixed lambda_i values. The results of the cross
110       validation will appear in the stdout and no vector  nor  raster  output
111       will be created. The external input ("sparse=") will be not considered.
112       Due to the nature of the algorithm, it is advised the user  no  to  try
113       the  cross-  validation  with more than 100 points at a time because it
114       will take too long.  The execution time could be reduced by considering
115       a  lower number of splines.  Although, as seen, it is possible to use a
116       high number of splines, more than 150x150 splines is not recommended.
117       In a raster map output ("raster="),  region  resolution  implying  more
118       than 2000x2000 (4 mill) cells are not allowed. If the user tries with a
119       more than those cells an error message will ask for a lower region res‐
120       olution.
121

EXAMPLES

123   Basic interpolation
124
125       v.surf.bspline input=point_vector output=interpolate_surface type=bicu‐
126       bic
127        In this case, a bicubic spline interpolation will be done and an esti‐
128       mation on the points of point_vector will be the output.
129
130   Basic interpolation and raster output with a long spline step
131
132       v.surf.bspline   input=point_vector  raster=interpolate_surface  sie=25
133       sin=25
134        Now, a bilinear spline interpolation will  be  done  on  a  grid.  The
135       spline  steps  are set to 25. It doesn't mean that the grid will have a
136       resolution equal to 25, but that each 25 units there will be a spline.
137
138   Estimation of lambda_i parameter with a cross validation proccess
139
140       v.surf.bspline -c input=point_vector
141
142
143   Estimation on sparse points
144
145       v.surf.bspline input=point_vector sparse=sparse_points  output=interpo‐
146       late_surface
147         In  this  last case, an estimation on the points of the sparse_points
148       vector will be done. The reference surface  used  for  this  estimation
149       will be that interpolated using the point_vector vector.
150
151   Using attribute values instead Z-coordinates
152
153       v.surf.bspline  input=point_vector  raster=interpolate_surface  layer=1
154       column=attrib_column
155        This last case, the module uses the attribute values in  attrib_column
156       in the table associated to layer 1.
157

BUGS

159       Known issues:
160       In order to avoid RAM memory problems, an auxiliar table will be needed
161       for recording some intermediate calculi. Since the "GROUP BY" SQL func‐
162       tion  is  used, which is not supported by the "dbf" driver, this driver
163       is not allowed with the vector map output "output=". There is no  prob‐
164       lem with the raster map output.
165       At  this  time,  using  the  external  vector input ("sparse=") implies
166       interpoling with Z-coordinates. Updates to allow using attribute values
167       will be done in a near future (I hope).
168

SEE ALSO

170       v.surf.rst
171

AUTHORS

173       Original version in GRASS 5.4: (s.bspline.reg)
174       Maria  Antonia  Brovelli,  Massimiliano  Cannata, Ulisse Longoni, Mirko
175       Reguzzoni
176       Update for GRASS 6.X and improvements:
177       Roberto Antolin
178

REFERENCES

180       Brovelli M. A., Cannata M., and Longoni U.M., 2004, LIDAR Data  Filter‐
181       ing  and  DTM  Interpolation  Within  GRASS, Transactions in GIS, April
182       2004, vol. 8, iss. 2, pp. 155-174(20), Blackwell Publishing Ltd
183       Brovelli M. A. and Cannata M., 2004, Digital Terrain model  reconstruc‐
184       tion   in urban areas from airborne laser scanning data: the method and
185       an  example for Pavia (Northern Italy). Computers and  Geosciences  30,
186       pp.325-331
187       Brovelli  M. A e Longoni U.M., 2003, Software per il filtraggio di dati
188       LIDAR, Rivista dell'Agenzia del Territorio, n. 3-2003, pp. 11-22  (ISSN
189       1593-2192)
190       Brovelli  M.  A., Cannata M. and Longoni U.M., 2002, DTM LIDAR in  area
191       urbana, Bollettino SIFET N.2, 2002, pp. 7-26
192
193       Last changed: $Date: 2007/04/16 21:36:04 $
194
195       Full index
196
197
198
199GRASS 6.2.2                                                  v.surf.bspline(1)
Impressum