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

NAME

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

KEYWORDS

10       vector, surface, interpolation, LIDAR
11

SYNOPSIS

13       v.surf.bspline
14       v.surf.bspline --help
15       v.surf.bspline   [-ce]   input=name    [layer=string]     [column=name]
16       [sparse_input=name]          [output=name]         [raster_output=name]
17       [mask=name]     [ew_step=float]     [ns_step=float]     [method=string]
18       [lambda_i=float]     [solver=name]     [maxit=integer]    [error=float]
19       [memory=integer]    [--overwrite]   [--help]   [--verbose]    [--quiet]
20       [--ui]
21
22   Flags:
23       -c
24           Find   the   best   Tykhonov   regularizing   parameter   using   a
25           "leave-one-out" cross validation method
26
27       -e
28           Estimate point density and distance
29           Estimate point density and distance in map units for the input vec‐
30           tor points within the current region extents and quit
31
32       --overwrite
33           Allow output files to overwrite existing files
34
35       --help
36           Print usage summary
37
38       --verbose
39           Verbose module output
40
41       --quiet
42           Quiet module output
43
44       --ui
45           Force launching GUI dialog
46
47   Parameters:
48       input=name [required]
49           Name of input vector point map
50           Or data source for direct OGR access
51
52       layer=string
53           Layer number or name
54           Vector  features can have category values in different layers. This
55           number determines which layer to use. When  used  with  direct  OGR
56           access this is the layer name.
57           Default: 1
58
59       column=name
60           Name  of the attribute column with values to be used for approxima‐
61           tion
62           If not given and input is 3D  vector  map  then  z-coordinates  are
63           used.
64
65       sparse_input=name
66           Name of input vector map with sparse points
67           Or data source for direct OGR access
68
69       output=name
70           Name for output vector map
71
72       raster_output=name
73           Name for output raster map
74
75       mask=name
76           Raster map to use for masking (applies to raster output only)
77           Only cells that are not NULL and not zero are interpolated
78
79       ew_step=float
80           Length of each spline step in the east-west direction
81           Default: 4 * east-west resolution
82
83       ns_step=float
84           Length of each spline step in the north-south direction
85           Default: 4 * north-south resolution
86
87       method=string
88           Spline interpolation algorithm
89           Options: bilinear, bicubic
90           Default: bilinear
91           bilinear: Bilinear interpolation
92           bicubic: Bicubic interpolation
93
94       lambda_i=float
95           Tykhonov regularization parameter (affects smoothing)
96           Default: 0.01
97
98       solver=name
99           The type of solver which should solve the symmetric linear equation
100           system
101           Options: cholesky, cg
102           Default: cholesky
103
104       maxit=integer
105           Maximum number of iteration used to solve the linear equation  sys‐
106           tem
107           Default: 10000
108
109       error=float
110           Error break criteria for iterative solver
111           Default: 0.000001
112
113       memory=integer
114           Maximum memory to be used (in MB)
115           Cache size for raster rows
116           Default: 300
117

DESCRIPTION

119       v.surf.bspline  performs  a  bilinear/bicubic spline interpolation with
120       Tykhonov regularization. The input is a 2D or  3D  vector  points  map.
121       Values to interpolate can be the z values of 3D points or the values in
122       a user-specified attribute column in a 2D or 3D vector map. Output  can
123       be  a  raster  (raster_output)  or  vector (output) map.  Optionally, a
124       "sparse point" vector map can be input which indicates the location  of
125       output vector points.
126

NOTES

128       From a theoretical perspective, the interpolating procedure takes place
129       in two parts: the first is an estimate of the linear coefficients of  a
130       spline  function  is  derived from the observation points using a least
131       squares regression; the second is the computation of  the  interpolated
132       surface  (or interpolated vector points). As used here, the splines are
133       2D piece-wise non-zero polynomial functions calculated  within  a  lim‐
134       ited,  2D  area.  The  length (in mapping units) of each spline step is
135       defined by ew_step for the east-west  direction  and  ns_step  for  the
136       north-south  direction.  For  optimal performance, the length of spline
137       step should be no less than the distance  between  observation  points.
138       Each  vector  point  observation is modeled as a linear function of the
139       non-zero splines in the area around the observation. The least  squares
140       regression  predicts  the  the  coefficients of these linear functions.
141       Regularization, avoids the need to have one observation and one coeffi‐
142       cient for each spline (in order to avoid instability).
143
144       With  regularly distributed data points, a spline step corresponding to
145       the maximum distance between two points in  both  the  east  and  north
146       directions  is sufficient. But often data points are not regularly dis‐
147       tributed and require statistial regularization or estimation.  In  such
148       cases, v.surf.bspline will attempt to minimize the gradient of bilinear
149       splines or the curvature of bicubic  splines  in  areas  lacking  point
150       observations.  As  a general rule, spline step length should be greater
151       than the mean distance between observation points (twice  the  distance
152       between  points  is  a  good  starting  point).  Separate east-west and
153       north-south spline step length arguments allows the user to account for
154       some  degree  of  anisotropy in the distribution of observation points.
155       Short spline step lengths - especially spline  step  lengths  that  are
156       less  than  the  distance  between  observation  points  -  can greatly
157       increase the processing time.
158
159       Moreover, the maximum number of splines for each direction at each time
160       is  fixed, regardless of the spline step length. As the total number of
161       splines used increases (i.e., with  small  spline  step  lengths),  the
162       region  is  automatically split into subregions for interpolation. Each
163       subregion can contain no more than 150x150 splines. To avoid  subregion
164       boundary  problems,  subregions  are  created to partially overlap each
165       other. A weighted mean of observations, based on  point  locations,  is
166       calculated within each subregion.
167
168       The  Tykhonov  regularization  parameter  (lambda_i) acts to smooth the
169       interpolation. With a small lambda_i, the interpolated surface  closely
170       follows  observation  points;  a  larger  value will produce a smoother
171       interpolation.
172
173       The input can be a 2D or 3D vector points map. If input is 3D and  col‐
174       umn is not given than z-coordinates are used for interpolation. Parame‐
175       ter column is required when input is 2D vector map.
176
177       v.surf.bspline can produce a raster_output OR a output (but NOT  simul‐
178       taneously).  Note  that  topology  is not build for output vector point
179       map. The topology can be built if required by v.build.
180
181       If output is a vector points map and a sparse vector points map is  not
182       specified,  the output vector map will contain points at the same loca‐
183       tions as observation points in the input map, but  the  values  of  the
184       output  points  are  interpolated  values.  If  instead a sparse vector
185       points map is specified, the output vector map will contain  points  at
186       the  same locations as the sparse vector map points, and values will be
187       those of the interpolated raster surface at those points.
188
189       A cross validation "leave-one-out" analysis is  available  to  help  to
190       determine  the  optimal  lambda_i  value that produces an interpolation
191       that best fits the original observation data. The more points used  for
192       cross-validation, the longer the time needed for computation. Empirical
193       testing indicates a threshold of a maximum  of  100  points  is  recom‐
194       mended. Note that cross validation can run very slowly if more than 100
195       observations are used. The cross-validation output reports mean and rms
196       of  the  residuals from the true point value and the estimated from the
197       interpolation for a fixed series of  lambda_i  values.  No  vector  nor
198       raster output will be created when cross-validation is selected.
199

EXAMPLES

201   Basic interpolation
202       v.surf.bspline input=point_vector output=interpolate_surface method=bicubic
203       A  bicubic  spline  interpolation  will be done and a vector points map
204       with estimated (i.e., interpolated) values will be created.
205
206   Basic interpolation and raster output with a longer spline step
207       v.surf.bspline input=point_vector raster=interpolate_surface ew_step=25 ns_step=25
208       A bilinear spline interpolation will be done with a spline step  length
209       of 25 map units. An interpolated raster map will be created at the cur‐
210       rent region resolution.
211
212   Estimation of lambda_i parameter with a cross validation process
213       v.surf.bspline -c input=point_vector
214
215   Estimation on sparse points
216       v.surf.bspline input=point_vector sparse=sparse_points output=interpolate_surface
217       An output map of vector points will be created,  corresponding  to  the
218       sparse vector map, with interpolated values.
219
220   Using attribute values instead z-coordinates
221       v.surf.bspline input=point_vector raster=interpolate_surface layer=1 \
222         column=attrib_column
223       The  interpolation  will  be done using the values in attrib_column, in
224       the table associated with layer 1.
225
226   North carolina location example using z-coordinates for interpolation
227       g.region region=rural_1m res=2 -p
228       v.surf.bspline input=elev_lid792_bepts raster=elev_lid792_rast \
229         ew_step=5 ns_step=5 method=bicubic lambda_i=0.1
230

KNOWN ISSUES

232       Known issues:
233
234       In order to avoid RAM memory problems, an auxiliary table is needed for
235       recording  some  intermediate  calculations. This requires the GROUP BY
236       SQL function is used, which is not supported by  the  DBF  driver.  For
237       this  reason,  vector map output (output) is not permitted with the DBF
238       driver. There are no problems with the raster map output from  the  DBF
239       driver.
240

REFERENCES

242           ·   Brovelli  M. A., Cannata M., and Longoni U.M., 2004, LIDAR Data
243               Filtering and DTM Interpolation Within GRASS,  Transactions  in
244               GIS,  April  2004,  vol.  8, iss. 2, pp. 155-174(20), Blackwell
245               Publishing Ltd
246
247           ·   Brovelli M. A. and Cannata  M.,  2004,  Digital  Terrain  model
248               reconstruction  in  urban  areas  from  airborne laser scanning
249               data: the method and an example  for  Pavia  (Northern  Italy).
250               Computers and Geosciences 30, pp.325-331
251
252           ·   Brovelli  M. A e Longoni U.M., 2003, Software per il filtraggio
253               di dati LIDAR, Rivista dell’Agenzia del Territorio, n.  3-2003,
254               pp. 11-22 (ISSN 1593-2192)
255
256           ·   Antolin  R.  and Brovelli M.A., 2007, LiDAR data Filtering with
257               GRASS GIS for the Determination of Digital Terrain Models. Pro‐
258               ceedings  of  Jornadas  de  SIG Libre, Girona, España. CD ISBN:
259               978-84-690-3886-9
260

SEE ALSO

262        v.surf.idw, v.surf.rst
263
264       Overview: Interpolation and Resampling in GRASS GIS
265

AUTHORS

267       Original version (s.bspline.reg) in GRASS 5.4: Maria Antonia  Brovelli,
268       Massimiliano Cannata, Ulisse Longoni, Mirko Reguzzoni
269       Update for GRASS 6 and improvements: Roberto Antolin
270
271       Last changed: $Date: 2017-07-24 23:59:39 +0200 (Mon, 24 Jul 2017) $
272

SOURCE CODE

274       Available at: v.surf.bspline source code (history)
275
276       Main  index  | Vector index | Topics index | Keywords index | Graphical
277       index | Full index
278
279       © 2003-2019 GRASS Development Team, GRASS GIS 7.6.0 Reference Manual
280
281
282
283GRASS 7.6.0                                                  v.surf.bspline(1)
Impressum